[libcamera-devel] [PATCH 3/4] test: log: log_api: Close open fds on error paths

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Apr 14 15:42:54 CEST 2020


Hi Kieran,

On Tue, Apr 14, 2020 at 12:29:45PM +0100, Kieran Bingham wrote:
> On 13/04/2020 11:46, Umang Jain wrote:
> > Pointed out by Coverity DefectId=279091
> 
> Looking at testFile(), doesn't the fd also leak after the call to
> logSetFile(path) if that fails?
> 
> If there is the same issue in multiple places in a function I think it
> should be handled by a single patch.
> 
> 
> It would be nice of course if these releases could be handled
> automatically - so perhaps converting things to use FileDescriptor
> classes might help, though an initial glance looks like that will always
> dup() the FD which might not be particularly desirable ...

I think this should migrate to File, not FileDescriptor, when that class
will have read/write/seek support.

> I'll leave it to you to decide, either rework to convert to
> FileDescriptor objects on a per-test basis, or just do a v2 of this
> patch with all paths fixed, perhaps for now just fixing this would make
> coverity happy :-)
> 
> > Signed-off-by: Umang Jain <email at uajain.com>
> > ---
> >  test/log/log_api.cpp | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
> > index 33622f8..aeedbf9 100644
> > --- a/test/log/log_api.cpp
> > +++ b/test/log/log_api.cpp
> > @@ -96,6 +96,7 @@ protected:
> >  		lseek(fd, 0, SEEK_SET);
> >  		if (read(fd, buf, sizeof(buf)) < 0) {
> >  			cerr << "Failed to read tmp log file" << endl;
> > +			close(fd);
> >  			return TestFail;
> >  		}
> >  		close(fd);

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list