commit e35d9e62a562e74964fa7aeccd2285d8e37c751a
parent 44b3ea8f762daa9b4f6bf13ebd58e2c3d1fc6e84
Author: sin <sin@2f30.org>
Date: Thu, 13 Nov 2014 17:21:37 +0000
Just use HOST_NAME_MAX in hostname(1)
Using sysconf() + malloc() is overkill.
Diffstat:
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/hostname.c b/hostname.c
@@ -1,7 +1,6 @@
/* See LICENSE file for copyright and license details. */
#include <limits.h>
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "util.h"
@@ -15,16 +14,7 @@ usage(void)
int
main(int argc, char *argv[])
{
- long sz;
- char *host;
-
- sz = sysconf(_SC_HOST_NAME_MAX);
- if (sz < 0)
- sz = 255;
-
- host = malloc(sz + 1);
- if (!host)
- eprintf("malloc:");
+ char host[HOST_NAME_MAX + 1];
ARGBEGIN {
default:
@@ -32,15 +22,12 @@ main(int argc, char *argv[])
} ARGEND;
if (argc < 1) {
- if (gethostname(host, sz + 1) < 0)
+ if (gethostname(host, sizeof(host)) < 0)
eprintf("gethostname:");
puts(host);
} else {
if (sethostname(argv[0], strlen(argv[0])) < 0)
eprintf("sethostname:");
}
-
- free(host);
-
return 0;
}