[FFmpeg-devel] [PATCH v2 02/14] bytestream: Make get_bytes_left compatible with overread

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Mon Dec 16 01:05:52 EET 2019


On Sun, Dec 15, 2019 at 11:53 PM Michael Niedermayer <michael at niedermayer.cc>
wrote:

> On Sat, Dec 14, 2019 at 11:19:14PM +0100, Andreas Rheinhardt wrote:
> > bytestream2_get_bytes_left returns an unsigned int; as a result,
> > it returns big positive numbers if an overread already happened,
> > making it unsuitable for scenarios where one wants to allow this
> > in a controlled way (because the buffer is actually padded so that
> > no segfaults can happen). So change it to return an ordinary int.
> >
> > Also, bytestream2_get_bytes_left_p has been modified in the same way.
> >
> > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> > ---
> > Implemented James' suggestion to return an int. I have not found a place
> > where this would pose a problem.
>
> How do we know that this doesnt break any code ?
>
> Well, first of all, the init functions take ints and assert that they are
>= 0, so the ordinary return value of bytestream2_get_bytes_left[_p] is
representable in an int. Second, I ran fate with asan and have only found a
memleak in the hls muxer (will send a patch soon), but no problem with this
patch. And finally, I have not found a problem in the places where these
functions are used that I looked at. If you want all to be checked, then
say so. I don't know how long this would take, though.

- Andreas


More information about the ffmpeg-devel mailing list