[libcamera-devel] [PATCH] cam: Fix cam --help crash
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Jun 10 14:14:25 CEST 2019
Hi Niklas,
Thanks for picking this up.
On 10/06/2019 12:49, Niklas Söderlund wrote:
> The cam utility do not terminate correctly if invoked with only --help.
'does not'
> It prints the help information and then segfaults as the application is
> not terminated correctly. Fix this by moving the return code check of
"segfaults due to the application incorrectly handling the return value." ?
> the option parsing to main().
>
> Reported-by: Emmanuel Arias <eamanu at eamanu.com>
> Suggested-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/cam/main.cpp | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/cam/main.cpp b/src/cam/main.cpp
> index dbf04917bcc5aa38..f03a9faf87fac865 100644
> --- a/src/cam/main.cpp
> +++ b/src/cam/main.cpp
> @@ -61,7 +61,7 @@ int CamApp::init(int argc, char **argv)
>
> ret = parseOptions(argc, argv);
> if (ret < 0)
> - return ret == -EINTR ? 0 : ret;
> + return ret;
>
> cm_ = CameraManager::instance();
>
> @@ -193,9 +193,11 @@ void signalHandler(int signal)
> int main(int argc, char **argv)
> {
> CamApp app;
> + int ret;
>
> - if (app.init(argc, argv))
> - return EXIT_FAILURE;
> + ret = app.init(argc, argv);
> + if (ret)
> + return ret == -EINTR ? 0 : EXIT_FAILURE;
>
> struct sigaction sa = {};
> sa.sa_handler = &signalHandler;
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list