[vlc-devel] [PATCH v2 02/15] strings: add function to hex-encode binary data

Rémi Denis-Courmont remi at remlab.net
Wed Apr 8 11:01:07 CEST 2020


I disagree. The size is known. Checking it is going to achieve nothing, as there's nothing sane to do in case of error.

Le 8 avril 2020 09:38:14 GMT+03:00, Steve Lhomme <robux4 at ycbcr.xyz> a écrit :
>On 2020-04-08 0:04, Marvin Scholz wrote:
>> ---
>>   include/vlc_strings.h | 12 ++++++++++++
>>   src/libvlccore.sym    |  1 +
>>   src/text/strings.c    | 10 ++++++++++
>>   3 files changed, 23 insertions(+)
>> 
>> diff --git a/include/vlc_strings.h b/include/vlc_strings.h
>> index 411f4a8ceb..e229b32d5d 100644
>> --- a/include/vlc_strings.h
>> +++ b/include/vlc_strings.h
>> @@ -118,6 +118,18 @@ VLC_API void vlc_xml_decode(char *st);
>>    */
>>   VLC_API char *vlc_xml_encode(const char *str) VLC_MALLOC;
>>   
>> +/**
>> + * Encode binary data as hex string
>> + *
>> + * Writes a given data buffer to the output buffer as a null
>terminated
>> + * string in hexadecimal representation.
>> + *
>> + * \param      input    Input buffer
>> + * \param      size     Input buffer size
>> + * \param[out] output   Output buffer to write the string to
>> + */
>> +VLC_API void vlc_hex_encode_binary(const void *input, size_t size,
>char *output);
>> +
>>   /**
>>    * Base64 encoding.
>>    *
>> diff --git a/src/libvlccore.sym b/src/libvlccore.sym
>> index cc8098edd9..17561db932 100644
>> --- a/src/libvlccore.sym
>> +++ b/src/libvlccore.sym
>> @@ -483,6 +483,7 @@ vlc_b64_decode_binary
>>   vlc_b64_decode_binary_to_buffer
>>   vlc_b64_encode
>>   vlc_b64_encode_binary
>> +vlc_hex_encode_binary
>>   vlc_cancel
>>   vlc_clone
>>   VLC_CompileBy
>> diff --git a/src/text/strings.c b/src/text/strings.c
>> index 658249f890..5180f16a83 100644
>> --- a/src/text/strings.c
>> +++ b/src/text/strings.c
>> @@ -346,6 +346,16 @@ char *vlc_xml_encode (const char *str)
>>       return stream.ptr;
>>   }
>>   
>> +/* Hex encoding */
>> +void vlc_hex_encode_binary(const void *input, size_t size, char
>*output)
>> +{
>> +    unsigned char *buffer = input;
>> +
>> +    for (size_t i = 0; i < size; i++) {
>> +        sprintf(&output[i * 2], "%02" PRIx8, buffer[i]);
>
>You should check the size of the output. Which can be done early in the
>
>function.
>
>> +    }
>> +}
>> +
>>   /* Base64 encoding */
>>   char *vlc_b64_encode_binary(const void *src, size_t length)
>>   {
>> -- 
>> 2.24.1 (Apple Git-126)
>> 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>> 
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200408/7048ffdf/attachment.html>


More information about the vlc-devel mailing list