summaryrefslogtreecommitdiff
path: root/src/hostid.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hostid.c')
-rw-r--r--src/hostid.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/hostid.c b/src/hostid.c
index 477d16e4a..090b8a04c 100644
--- a/src/hostid.c
+++ b/src/hostid.c
@@ -62,7 +62,7 @@ Print the numeric identifier (in hexadecimal) for the current host.\n\
int
main (int argc, char **argv)
{
- long int id;
+ unsigned int id;
initialize_main (&argc, &argv);
program_name = argv[0];
@@ -84,7 +84,13 @@ main (int argc, char **argv)
}
id = gethostid ();
- printf ("%lx\n", id);
+
+ /* POSIX says gethostid returns a "32-bit identifier" but is silent
+ whether it's sign-extended. Turn off any sign-extension. This
+ is a no-op unless unsigned int is wider than 32 bits. */
+ id &= 0xffffffff;
+
+ printf ("%08x\n", id);
exit (EXIT_SUCCESS);
}