qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCHv3 11/20] ui/vnc: simplify and avoid strncpy


From: Jim Meyering
Subject: Re: [Qemu-devel] [PATCHv3 11/20] ui/vnc: simplify and avoid strncpy
Date: Thu, 04 Oct 2012 20:56:03 +0200

Peter Maydell wrote:

> On 4 October 2012 12:09, Jim Meyering <address@hidden> wrote:
>> From: Jim Meyering <address@hidden>
>>
>> Don't bother with strncpy.  There's no need for its zero-fill.
>> Use g_strndup in place of g_malloc+strncpy+NUL-terminate.
>>
>> Signed-off-by: Jim Meyering <address@hidden>
>> ---
>>  ui/vnc-auth-sasl.c | 4 +---
>>  1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/ui/vnc-auth-sasl.c b/ui/vnc-auth-sasl.c
>> index 8fba770..bfdcb46 100644
>> --- a/ui/vnc-auth-sasl.c
>> +++ b/ui/vnc-auth-sasl.c
>> @@ -432,9 +432,7 @@ static int protocol_client_auth_sasl_start_len(VncState 
>> *vs, uint8_t *data, size
>>
>>  static int protocol_client_auth_sasl_mechname(VncState *vs, uint8_t *data, 
>> size_t len)
>>  {
>> -    char *mechname = g_malloc(len + 1);
>> -    strncpy(mechname, (char*)data, len);
>> -    mechname[len] = '\0';
>> +    char *mechname = g_strndup((const char *) data, len);
>>      VNC_DEBUG("Got client mechname '%s' check against '%s'\n",
>>                mechname, vs->sasl.mechlist);
>>
>
> (Does the compiler really insist on that cast?)

Yes.  Without it, I get a warning/failure when char is signed.
See below.

> Reviewed-by: Peter Maydell <address@hidden>

Thanks for the review.

    ui/vnc-auth-sasl.c: In function 'protocol_client_auth_sasl_mechname':
    ui/vnc-auth-sasl.c:435:5: error: pointer targets in passing argument 1 of 
'g_strndup' differ in signedness [-Werror=pointer-sign]
         char *mechname = g_strndup(data, len);
         ^
    In file included from /usr/include/glib-2.0/glib.h:81:0,
                     from ./qemu-common.h:41,
                     from ui/vnc.h:30,
                     from ui/vnc-auth-sasl.c:25:
    /usr/include/glib-2.0/glib/gstrfuncs.h:192:8: note: expected 'const gchar 
*' but argument is of type 'uint8_t *'
     gchar*               g_strndup        (const gchar *str,
            ^
    cc1: all warnings being treated as errors
    make: *** [ui/vnc-auth-sasl.o] Error 1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]