aboutsummaryrefslogtreecommitdiff
path: root/networking/hostname.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-02-27 19:38:19 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-02-27 19:38:19 +0100
commit99069330a104e6d360635174be5f5ed054c418b8 (patch)
treef800b70a7b8989db14f5964b65534181d4a1a309 /networking/hostname.c
parentca228fb16dddc3c959adad97a930612a6b5256db (diff)
downloadbusybox-99069330a104e6d360635174be5f5ed054c418b8.tar.gz
*: gethostname-related fixes
function old new delta hostname_main 218 231 +13 nfsmount 3541 3474 -67 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/hostname.c')
-rw-r--r--networking/hostname.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/networking/hostname.c b/networking/hostname.c
index 579eff795..121ad40bb 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -132,10 +132,14 @@ int hostname_main(int argc UNUSED_PARAM, char **argv)
if (*p)
puts(p + 1);
} else /*if (opts & OPT_i)*/ {
- while (hp->h_addr_list[0]) {
- printf("%s ", inet_ntoa(*(struct in_addr *) (*hp->h_addr_list++)));
+ if (hp->h_length == sizeof(struct in_addr)) {
+ struct in_addr **h_addr_list = (struct in_addr **)hp->h_addr_list;
+ while (*h_addr_list) {
+ printf("%s ", inet_ntoa(**h_addr_list));
+ h_addr_list++;
+ }
+ bb_putchar('\n');
}
- bb_putchar('\n');
}
} else if (opts & OPT_F) {
/* Set the hostname */