29.04.2014 13:11, Paolo Bonzini пишет: > Il 29/04/2014 10:42, Michael Tokarev ha scritto: >>>>>> >>> > Also replace single instance pstrcpy() in vcard_emul_nss.c >>>>>> >>> > to strncpy(). This reverts commit 2e679780ae86c6ca8. >>>> >> An alternative would be to use g_strlcpy which guarantees >>>> >> nul-termination. >>> > >>> > Yes, that is better. >> Actually in this very place it isn't really important, given we >> always know the exact length of the source and are able to adjust >> it to fit into the buffer. With g_strlcat() code becomes a bit >> more ugly... ;) > > Uh, now I looked at NEXT_TOKEN and g_strlcpy suddenly becomes less palatable.
Yess, that's exactly what I mean. > mempcpy would be nice actually, like > > *mempcpy(dest, src, type_params_length) = 0; > > but it is not portable and not wrapped by glib. > > Another good alternative is > > char *type_str; > ... > type_str = g_strndup(type_params, type_params_length); > type = vcard_emul_type_from_string(type_str); > g_free(type_str); Actually it is the best one, -- type_str is g_strndup'ed down the line. I'll do that, in a separate patch before this series. /mjt