[libcamera-devel] [PATCH] cam: Fix cam --help crash
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Jun 10 16:27:14 CEST 2019
Hello,
On Mon, Jun 10, 2019 at 01:14:25PM +0100, Kieran Bingham wrote:
> 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>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > 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,
Laurent Pinchart
More information about the libcamera-devel
mailing list