diff options
author | Jeremy Allison <jra@samba.org> | 2004-06-24 23:27:00 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:52:03 -0500 |
commit | c892545960a9c3206b5a1f73e98ea924c802c17c (patch) | |
tree | 97c8b566bd155860e7bbc64cc3bd786092b50559 /source/lib/interface.c | |
parent | b462b8fa2f264bef62ed4cd2aaacb2f21e135068 (diff) | |
download | samba-c892545960a9c3206b5a1f73e98ea924c802c17c.tar.gz samba-c892545960a9c3206b5a1f73e98ea924c802c17c.tar.xz samba-c892545960a9c3206b5a1f73e98ea924c802c17c.zip |
r1248: Fix from Nick Wellnhofer <wellnhofer@aevum.de> to prevent
lp_interfaces() list from being corrupted.
Jeremy.
Diffstat (limited to 'source/lib/interface.c')
-rw-r--r-- | source/lib/interface.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/lib/interface.c b/source/lib/interface.c index 4d8010e31bc..adf9ca34381 100644 --- a/source/lib/interface.c +++ b/source/lib/interface.c @@ -94,7 +94,7 @@ This handles the following different forms: 4) ip/mask 5) bcast/mask ****************************************************************************/ -static void interpret_interface(const char *token) +static void interpret_interface(char *token) { struct in_addr ip, nmask; char *p; @@ -130,9 +130,9 @@ static void interpret_interface(const char *token) } /* parse it into an IP address/netmasklength pair */ - *p++ = 0; - + *p = 0; ip = *interpret_addr2(token); + *p++ = '/'; if (strlen(p) > 2) { nmask = *interpret_addr2(p); @@ -207,7 +207,11 @@ void load_interfaces(void) if (ptr) { while (*ptr) { - interpret_interface(*ptr); + char *ptr_cpy = strdup(*ptr); + if (ptr_cpy) { + interpret_interface(ptr_cpy); + free(ptr_cpy); + } ptr++; } } |