[FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Wed Sep 28 22:43:56 EEST 2022
Michael Niedermayer:
> On Wed, Sep 28, 2022 at 08:39:09PM +0200, Andreas Rheinhardt wrote:
>> Affected the fitsdec-gbrp16 FATE-test.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
>> ---
>> libswscale/swscale_unscaled.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
>> index 8838cc8b53..0b97377934 100644
>> --- a/libswscale/swscale_unscaled.c
>> +++ b/libswscale/swscale_unscaled.c
>> @@ -695,7 +695,7 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
>> }
>> }
>> for (i = 0; i < 4; i++)
>> - dst[i] += dstStride[i] >> 1;
>> + dst[i] = FF_PTR_ADD(dst[i], dstStride[i] >> 1);
>> }
>> }
>>
>> @@ -729,8 +729,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
>> }
>>
>> for(i=0; i<4; i++) {
>> - dst2013[i] += stride2013[i] * srcSliceY / 2;
>> - dst1023[i] += stride1023[i] * srcSliceY / 2;
>> + dst2013[i] = FF_PTR_ADD(dst2013[i], stride2013[i] * srcSliceY / 2);
>> + dst1023[i] = FF_PTR_ADD(dst1023[i], stride1023[i] * srcSliceY / 2);
>> }
>
> is there a reason not to check the pointer in the loop ?
> as in
> for (i = 0; i < 4 && dst[i]; i++)
>
I consider NULL + 0 to be sane and would be happy to see it being
defined in a future version of the spec. So I don't like adding checks
to workaround the insanities of the spec. Notice that FF_PTR_ADD() is
designed to allow the compiler to optimize the check away.
- Andreas
More information about the ffmpeg-devel
mailing list