summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/sniff.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/sniff.cc b/noncore/net/wellenreiter/libwellenreiter/source/sniff.cc
index 81eccab..3c227ab 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/sniff.cc
+++ b/noncore/net/wellenreiter/libwellenreiter/source/sniff.cc
@@ -176,13 +176,28 @@ void etheraddr_string(register const u_char *ep, char *text)
register unsigned int i, j;
register char *cp;
- char buf[sizeof("00:00:00:00:00:00")];
+ char buf[sizeof("00:00:00:00:00:00\0")];
cp = buf;
if ((j = *ep >> 4) != 0)
- *cp++ = hex[j];
+ {
+ *cp++ = hex[j];
+ }
+ else
+ {
+ *cp++ = '0';
+ }
*cp++ = hex[*ep++ & 0xf];
- for (i = 5; (int)--i >= 0;) {
+
+ for (i = 5; (int)--i >= 0;)
+ {
*cp++ = ':';
if ((j = *ep >> 4) != 0)
- *cp++ = hex[j];
+ {
+ *cp++ = hex[j];
+ }
+ else
+ {
+ *cp++ = '0';
+ }
+
*cp++ = hex[*ep++ & 0xf];
}