[FFmpeg-devel] [PATCH] avfilter/vf_lenscorrection: add assert to ensure there are not more planes than the correction array is large

Michael Niedermayer michaelni at gmx.at
Thu Aug 21 14:35:15 CEST 2014


On Thu, Aug 21, 2014 at 01:53:28PM +0200, Daniel Oberhoff wrote:
> 
> ---
>  Daniel Oberhoff 
>  daniel.oberhoff at gmail.com
> 
> 
> 
> On Aug 21, 2014, at 1:52 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> 
> > On Thu, Aug 21, 2014 at 12:57:08PM +0200, Daniel Oberhoff wrote:
> >> 
> >> ---
> >> Daniel Oberhoff 
> >> daniel.oberhoff at gmail.com
> >> 
> >> 
> >> 
> >> On Aug 21, 2014, at 12:34 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> 
> >>> Exceeding the count would write out of array, and should not occur with any
> >>> current pixel format
> >>> 
> >>> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> >>> ---
> >>> libavfilter/vf_lenscorrection.c |    3 +++
> >>> 1 file changed, 3 insertions(+)
> >>> 
> >>> diff --git a/libavfilter/vf_lenscorrection.c b/libavfilter/vf_lenscorrection.c
> >>> index 58184b0..01380fc 100644
> >>> --- a/libavfilter/vf_lenscorrection.c
> >>> +++ b/libavfilter/vf_lenscorrection.c
> >>> @@ -26,6 +26,7 @@
> >>> #include <stdlib.h>
> >>> #include <math.h>
> >>> 
> >>> +#include "libavutil/avassert.h"
> >>> #include "libavutil/opt.h"
> >>> #include "libavutil/intreadwrite.h"
> >>> #include "libavutil/pixdesc.h"
> >>> @@ -132,6 +133,8 @@ static int config_props(AVFilterLink *outlink)
> >>>    outlink->w = rect->width = inlink->w;
> >>>    outlink->h = rect->height = inlink->h;
> >>>    rect->nb_planes = av_pix_fmt_count_planes(inlink->format);
> >>> +    av_assert0(rect->nb_planes <= FF_ARRAY_ELEMS(rect->correction));
> >> 
> >> how many planes can there ever be?
> > 
> > I think the current pixel formats dont have more than 4 but
> > things like CMYKA would have 5, and formats could contain more planes
> > in principle, we dont support such stuff ATM but cameras exist that
> > record infrared in addition to vissible inforation. for example
> 
> But this data only comes from another part of ffmpeg, right?

yes


> Should then there not be some kind of config macro or such along FF_MAX_NUM_PLANES?

there is AV_NUM_DATA_POINTERS, but thats a limit for AVFrame and
does not limit the pixel format planes, audio formats exceed it
for example, which use AVFrames

also its not clear if adding a 5 plane pixel format would have to
imply bumping ABI which could change a compile time define

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140821/3ebb8c6a/attachment.asc>


More information about the ffmpeg-devel mailing list