Alex Converse <[email protected]> writes:

> 2011/6/12 Måns Rullgård <[email protected]>:
>> "Ronald S. Bultje" <[email protected]> writes:
>>
>>> Hi,
>>>
>>> On Tue, May 24, 2011 at 8:14 AM, Anton Khirnov <[email protected]> wrote:
>>>> From: Michael Niedermayer <[email protected]>
>>>>
>>>> This may be security relevant depending upon the used terminal.
>>>>
>>>> Signed-off-by: Michael Niedermayer <[email protected]>
>>>> Signed-off-by: Anton Khirnov <[email protected]>
>>>> ---
>>>>  libavutil/log.c |    9 +++++++++
>>>>  1 files changed, 9 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/libavutil/log.c b/libavutil/log.c
>>>> index c44130c..fe9a54e 100644
>>>> --- a/libavutil/log.c
>>>> +++ b/libavutil/log.c
>>>> @@ -80,6 +80,14 @@ const char* av_default_item_name(void* ptr){
>>>>     return (*(AVClass**)ptr)->class_name;
>>>>  }
>>>>
>>>> +static void sanitize(uint8_t *line){
>>>> +    while(*line){
>>>> +        if(*line < 0x08 || (*line > 0x0D && *line < 0x20))
>>>> +            *line='?';
>>>> +        line++;
>>>> +    }
>>>> +}
>>>> +
>>>
>>> What idiot (sorry) would av_log() such characters? Isn't this pebkac?
>>
>> The patch author presumably.
>>
>> I agree, this is pointless.  Such characters can end up in av_log()
>> output in one of two ways:
>>
>> 1. They are part of the format string.
>> 2. They are part of a %s argument.
>>
>> Only a complete idiot would do 1.  2 could happen only if a buffer with
>> unknown content were passed as argument to %s.  If the contents are not
>> known, it is probably not null-terminated either, and you have a much
>> bigger problem.  In other words, only an idiot would that too.
>>
>
> What about trying to print a fourcc or the like with "%.4s"?

Don't do that.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to