Just use HOST_NAME_MAX in hostname(1)
Using sysconf() + malloc() is overkill.
This commit is contained in:
parent
44b3ea8f76
commit
e35d9e62a5
17
hostname.c
17
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user