[hackers] [sbase] Use sysconf() instead of HOST_NAME_MAX || sin

From: <git_AT_suckless.org>
Date: Fri, 14 Feb 2014 16:08:23 +0100

commit efbce07f941f163a6705bb58250c1e3977d7e685
Author: sin <sin_AT_2f30.org>
Date: Fri Feb 14 15:01:15 2014 +0000

    Use sysconf() instead of HOST_NAME_MAX

diff --git a/hostname.c b/hostname.c
index 5a8b2eb..4d068c8 100644
--- a/hostname.c
+++ b/hostname.c
_AT_@ -15,7 +15,16 @@ usage(void)
 int
 main(int argc, char *argv[])
 {
- char host[HOST_NAME_MAX + 1];
+ long sz;
+ char *host;
+
+ sz = sysconf(_SC_HOST_NAME_MAX);
+ if (sz < 0)
+ sz = 255;
+
+ host = malloc(sz + 1);
+ if (!host)
+ eprintf("malloc:");
 
         ARGBEGIN {
         default:
_AT_@ -23,13 +32,15 @@ main(int argc, char *argv[])
         } ARGEND;
 
         if (argc < 1) {
- if (gethostname(host, sizeof(host)) < 0)
+ if (gethostname(host, sz + 1) < 0)
                         eprintf("gethostname:");
                 puts(host);
         } else {
- if (sethostname(argv[0], strlen(argv[0])) < 0)
+ if (sethostname(argv[0], sz + 1) < 0)
                         eprintf("sethostname:");
         }
 
+ free(host);
+
         return EXIT_SUCCESS;
 }
Received on Fri Feb 14 2014 - 16:08:23 CET

This archive was generated by hypermail 2.3.0 : Fri Feb 14 2014 - 16:12:25 CET