diff options
Diffstat (limited to 'networking/libiproute/ll_addr.c')
-rw-r--r-- | networking/libiproute/ll_addr.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/networking/libiproute/ll_addr.c b/networking/libiproute/ll_addr.c index e732efdb2..f50e37193 100644 --- a/networking/libiproute/ll_addr.c +++ b/networking/libiproute/ll_addr.c | |||
@@ -43,6 +43,8 @@ const char *ll_addr_n2a(unsigned char *addr, int alen, int type, char *buf, int | |||
43 | 43 | ||
44 | int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) | 44 | int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) |
45 | { | 45 | { |
46 | int i; | ||
47 | |||
46 | if (strchr(arg, '.')) { | 48 | if (strchr(arg, '.')) { |
47 | inet_prefix pfx; | 49 | inet_prefix pfx; |
48 | if (get_addr_1(&pfx, arg, AF_INET)) { | 50 | if (get_addr_1(&pfx, arg, AF_INET)) { |
@@ -54,26 +56,24 @@ int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) | |||
54 | } | 56 | } |
55 | memcpy(lladdr, pfx.data, 4); | 57 | memcpy(lladdr, pfx.data, 4); |
56 | return 4; | 58 | return 4; |
57 | } else { | 59 | } |
58 | int i; | ||
59 | 60 | ||
60 | for (i=0; i<len; i++) { | 61 | for (i = 0; i < len; i++) { |
61 | int temp; | 62 | int temp; |
62 | char *cp = strchr(arg, ':'); | 63 | char *cp = strchr(arg, ':'); |
63 | if (cp) { | 64 | if (cp) { |
64 | *cp = 0; | 65 | *cp = 0; |
65 | cp++; | 66 | cp++; |
66 | } | 67 | } |
67 | if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) { | 68 | if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) { |
68 | bb_error_msg("\"%s\" is invalid lladdr", arg); | 69 | bb_error_msg("\"%s\" is invalid lladdr", arg); |
69 | return -1; | 70 | return -1; |
70 | } | 71 | } |
71 | lladdr[i] = temp; | 72 | lladdr[i] = temp; |
72 | if (!cp) { | 73 | if (!cp) { |
73 | break; | 74 | break; |
74 | } | ||
75 | arg = cp; | ||
76 | } | 75 | } |
77 | return i+1; | 76 | arg = cp; |
78 | } | 77 | } |
78 | return i+1; | ||
79 | } | 79 | } |