sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

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:
Mhostname.c | 17++---------------
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; }