[FFmpeg-devel] [PATCH] qtpalette: make the color_* variables unsigned again
Ronald S. Bultje
rsbultje at gmail.com
Tue Jan 12 03:26:14 CET 2016
Hi,
On Mon, Jan 11, 2016 at 12:06 AM, Mats Peterson <
matsp888-at-yahoo.com at ffmpeg.org> wrote:
> On 01/10/2016 11:56 AM, Andreas Cadhalpun wrote:
>
>> This fixes segmentation faults due to out of bounds writes, when
>> color_start is interpreted as negative number.
>>
>> This regression was introduced in commit 57631f.
>>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> ---
>>
>> Seriously, changing the code behavior when "factoring out" is a
>> very bad practice.
>>
>> ---
>> libavformat/qtpalette.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/qtpalette.c b/libavformat/qtpalette.c
>> index a78b6af..666c6b7 100644
>> --- a/libavformat/qtpalette.c
>> +++ b/libavformat/qtpalette.c
>> @@ -48,7 +48,7 @@ int ff_get_qtpalette(int codec_id, AVIOContext *pb,
>> uint32_t *palette)
>>
>> /* If the depth is 1, 2, 4, or 8 bpp, file is palettized. */
>> if ((bit_depth == 1 || bit_depth == 2 || bit_depth == 4 ||
>> bit_depth == 8)) {
>> - int color_count, color_start, color_end;
>> + uint32_t color_count, color_start, color_end;
>> uint32_t a, r, g, b;
>>
>> /* Ignore the greyscale bit for 1-bit video and sample
>>
>>
> ping
Why are we using stdint types for non-vector data here? Our custom has
always been to used sized (stdint-style) data only for vector data (arrays
etc.), and use native-sized types (e.g. unsigned, int, whatever) for scalar
values. Why are we making exceptions here?
Ronald
More information about the ffmpeg-devel
mailing list