[PATCH libICE 3/3] Make sure string is never NULL

walter harms wharms at bfs.de
Mon Sep 4 11:37:54 UTC 2017



Am 04.09.2017 13:00, schrieb Emil Velikov:
> On 7 July 2017 at 11:23, Eric Engestrom <eric.engestrom at imgtec.com> wrote:
>> `error_message` is passed in to strncpy() without any check, which
>> doesn't handle NULL itself, so let's make it a valid empty string in
>> cases where it was NULL.
>>
> Strictly speaking strdup() can fail, thus we could still end with a NULL.
> In all fairness I'm not sure how much one should bother though.
> 
> 

I do not think this is a problem, what the patch catches is the case

	string=ProcessError();
	....
	free(string);

fatal is when the function returns a static string as seen in [PATCH libICE 2/3]
then you are lost. Perhaps the whole think can be converted to a preallocated
buffer, but that would be quit invasive and out of proportion for the problem.

Acked-by: wharms at bfs.de


re,
 wh

>> Signed-off-by: Eric Engestrom <eric.engestrom at imgtec.com>
>> ---
>>  src/process.c | 14 ++++++++++++--
>>  1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/process.c b/src/process.c
>> index 1ee1ceb..30d073f 100644
>> --- a/src/process.c
>> +++ b/src/process.c
>> @@ -704,6 +704,11 @@ ProcessError (
>>                 invokeHandler = 1;
>>             }
>>
>> +                       if (!errorStr)
>> +                       {
>> +                               errorStr = strdup("");
>> +                       }
>> +
>>             errorReply->type = ICE_CONNECTION_ERROR;
>>             errorReply->error_message = errorStr;
>>         }
>> @@ -794,6 +799,11 @@ ProcessError (
>>                 invokeHandler = 1;
>>             }
>>
>> +                       if (!errorStr)
>> +                       {
>> +                               errorStr = strdup("");
>> +                       }
>> +
> Skimming through the file, one could drop the curly brackets.
> Indentation also seems off, although it could be my MUA.
> 
> With the above nitpicks, the series is
> Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
> 
> -Emil
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list