On 01/27/2015 06:52 AM, Daniel Stone wrote:

POSIX.1-2001 says that if such
        truncation occurs, then it is unspecified whether the returned
buffer includes a terminating
        null byte.

I think the best thing to do here would be:
   for (i = 0; i < sizeof(name); i++) {
       if (name[i] == '\0')
           break;
   }
   if (i == sizeof(name))
       name[0] = '\0'; /* ignore stupid hostnames */

Or make the buffer 1 larger than you tell the function, and put a zero at the end:

   gethostname(buffer, sizeof(buffer)-1);
   buffer[sizeof(buffer)-1] = '\0';
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to