[libcamera-devel] [PATCH] cam: Fix cam --help crash
Niklas Söderlund
niklas.soderlund at ragnatech.se
Mon Jun 10 23:08:39 CEST 2019
Hi,
Thanks for reviewing this, I have pushed this to master with Kieran's
spelling improvements to the commit message.
On 2019-06-10 17:27:14 +0300, Laurent Pinchart wrote:
> 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
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list