aboutsummaryrefslogtreecommitdiff
path: root/networking/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/interface.c')
-rw-r--r--networking/interface.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/networking/interface.c b/networking/interface.c
index fe6b23dbc..b64d24a58 100644
--- a/networking/interface.c
+++ b/networking/interface.c
@@ -1242,10 +1242,8 @@ int FAST_FUNC in_ib(const char *bufp, struct sockaddr *sap)
1242 c = *bufp++; 1242 c = *bufp++;
1243 if (isdigit(c)) 1243 if (isdigit(c))
1244 val = c - '0'; 1244 val = c - '0';
1245 else if (c >= 'a' && c <= 'f') 1245 else if ((c|0x20) >= 'a' && (c|0x20) <= 'f')
1246 val = c - 'a' + 10; 1246 val = (c|0x20) - ('a' - 10);
1247 else if (c >= 'A' && c <= 'F')
1248 val = c - 'A' + 10;
1249 else { 1247 else {
1250 errno = EINVAL; 1248 errno = EINVAL;
1251 return -1; 1249 return -1;
@@ -1254,17 +1252,15 @@ int FAST_FUNC in_ib(const char *bufp, struct sockaddr *sap)
1254 c = *bufp; 1252 c = *bufp;
1255 if (isdigit(c)) 1253 if (isdigit(c))
1256 val |= c - '0'; 1254 val |= c - '0';
1257 else if (c >= 'a' && c <= 'f') 1255 else if ((c|0x20) >= 'a' && (c|0x20) <= 'f')
1258 val |= c - 'a' + 10; 1256 val |= (c|0x20) - ('a' - 10);
1259 else if (c >= 'A' && c <= 'F') 1257 else if (c == ':' || c == '\0')
1260 val |= c - 'A' + 10;
1261 else if (c == ':' || c == 0)
1262 val >>= 4; 1258 val >>= 4;
1263 else { 1259 else {
1264 errno = EINVAL; 1260 errno = EINVAL;
1265 return -1; 1261 return -1;
1266 } 1262 }
1267 if (c != 0) 1263 if (c != '\0')
1268 bufp++; 1264 bufp++;
1269 *ptr++ = (unsigned char) (val & 0377); 1265 *ptr++ = (unsigned char) (val & 0377);
1270 i++; 1266 i++;