[PATCH 4/5] kinput: allocate enough space for null character.
Jeremy Huddleston
jeremyhu at apple.com
Wed Oct 19 16:50:49 PDT 2011
>> tam_key = (strchr(string, '=') - string);
>> - newopt->key = (char *)malloc(tam_key);
>> + newopt->key = (char *)malloc(tam_key + 1);
>> strncpy(newopt->key, string, tam_key);
>> newopt->key[tam_key] = '\0';
>> newopt->value = strdup(strchr(string, '=') + 1);
>
> Is strndup() portable enough to be used here? I don't see any other
> instances yet in the xserver git master or any of the other X.Org
> trees I have checked out.
>
> It's not in our traditional Unix98 baseline, but
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/strdup.html
> says it's in the 2008 version of POSIX.
I added strndup to Apple's Libc during Lion development, so it is there for most recent release, but not previous releases. There are a non-trivial number of users who want to build X11 bits on older versions of the OS, and I'd rather not provide an in-project implementation of strndup just for these users of kdrive.
That being said, I wouldn't be opposed to bumping our baseline from Unix98 to something more modern, but SUSv4 doesn't even have a test suite yet, so I'd prefer picking SUSv3 as that target.
More information about the xorg-devel
mailing list