From 51a06c07da0fd535150c17e07f061c0a263f329c Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 16 May 2008 17:19:03 +0000 Subject: [PATCH] - accept ip l s ib0 addr 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 --- networking/libiproute/iplink.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c index 494b223bf..5aad6ed9f 100644 --- a/networking/libiproute/iplink.c +++ b/networking/libiproute/iplink.c @@ -130,9 +130,11 @@ static void parse_address(char *dev, int hatype, int halen, char *lla, struct if memset(ifr, 0, sizeof(*ifr)); strncpy(ifr->ifr_name, dev, sizeof(ifr->ifr_name)); ifr->ifr_hwaddr.sa_family = hatype; - alen = ll_addr_a2n((unsigned char *)(ifr->ifr_hwaddr.sa_data), 14, lla); + + alen = hatype == 1/*ARPHRD_ETHER*/ ? 14/*ETH_HLEN*/ : 19/*INFINIBAND_HLEN*/; + alen = ll_addr_a2n((unsigned char *)(ifr->ifr_hwaddr.sa_data), alen, lla); if (alen < 0) - exit(1); + exit(EXIT_FAILURE); if (alen != halen) { bb_error_msg_and_die("wrong address (%s) length: expected %d bytes", lla, halen); }