diff options
Diffstat (limited to 'inet')
-rw-r--r-- | inet/inet_net.c | 2 | ||||
-rw-r--r-- | inet/tst-network.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/inet/inet_net.c b/inet/inet_net.c index e9331c5926..d58f1ae8e3 100644 --- a/inet/inet_net.c +++ b/inet/inet_net.c @@ -55,7 +55,7 @@ again: if (*cp == '0') digit = 1, base = 8, cp++; if (*cp == 'x' || *cp == 'X') - base = 16, cp++; + digit = 0, base = 16, cp++; while ((c = *cp) != 0) { if (isdigit(c)) { if (base == 8 && (c == '8' || c == '9')) diff --git a/inet/tst-network.c b/inet/tst-network.c index 4283888057..5491740e37 100644 --- a/inet/tst-network.c +++ b/inet/tst-network.c @@ -34,7 +34,10 @@ struct {"1.0", 0x100}, {"1", 0x1}, {"192.168.0.0", 0xC0A80000}, + {"0", 0}, + {"0x0", 0}, /* Now some invalid addresses. */ + {"0x", INADDR_NONE}, {"141.30.225.2800", INADDR_NONE}, {"141.76.1.1.1", INADDR_NONE}, {"141.76.1.11.", INADDR_NONE}, @@ -61,6 +64,7 @@ main (void) if (res != tests[i].number) { + ++errors; printf ("Test failed for inet_network (\"%s\"):\n", tests[i].network); printf ("Expected return value %u (0x%x) but got %u (0x%x).\n", |