[mythtv] Invalid pointer de-ref in NuppelVideoRecorder.cpp

David Hampton mythtv at love2code.net
Tue Dec 3 16:02:58 UTC 2019


On Tue, 2019-12-03 at 08:08 +0000, Mark Kendall wrote:
> On Tue, 3 Dec 2019 at 06:37, David Hampton <mythtv at love2code.net>
> wrote:
> > Hi Mark,
> > 
> > The clang-tidy  program is spitting out a possible null-pointer de-
> > reference in NuppelVideoRecorder.cpp, function BufferIt, line 1846.
> > 
> >     memcpy(videobuffer[act]->buffer, buf, len);
> > 
> > Its complaining about the "buf" variable.  Backing up, this is
> > called
> > from DoV4L2() on line 1567 or line 1577, which both pass the
> > output_buffer variable to BufferIt.
> > 
> >      BufferIt(output_buffer, m_video_buffer_size);
> > 
> > Backing up a little further, the output_buffer pointer is assigned
> > at
> > line 1438 inside of an "if" statement, a conditional that doesn't
> > control the calls to BufferIt.  If this conditional is false,
> > output_buffer is never assigned, and is still nullptr when passed
> > to
> > BufferIt.
> 
> David
> 
> I'm not familiar with NuppelVideoRecorder  (though IMHO it should
> nuked/removed/deleted as soon as possible!).
> 
> Looking at the code, buffer_output is only ever set and used when the
> v4l2 pixel format is YUYV or UYVY. So the code should be safe but you
> could silence the warning by adding an extra check for '&&
> output_buffer' to the end of lines 1559 and 1569 - if that makes
> sense.

Sounds good. Thanks for looking at it.

David




More information about the mythtv-dev mailing list