diff options
Diffstat (limited to 'networking/traceroute.c')
-rw-r--r-- | networking/traceroute.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/networking/traceroute.c b/networking/traceroute.c index e9df27559..6a5373469 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c | |||
@@ -1001,17 +1001,11 @@ int traceroute_main(int argc, char **argv) | |||
1001 | 1001 | ||
1002 | #if ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE | 1002 | #if ENABLE_FEATURE_TRACEROUTE_SOURCE_ROUTE |
1003 | if (source_route_list) { | 1003 | if (source_route_list) { |
1004 | llist_t *l_sr; | 1004 | while (source_route_list) { |
1005 | |||
1006 | l_sr = source_route_list; | ||
1007 | while (l_sr) { | ||
1008 | if (lsrr >= NGATEWAYS) | 1005 | if (lsrr >= NGATEWAYS) |
1009 | bb_error_msg_and_die("no more than %d gateways", NGATEWAYS); | 1006 | bb_error_msg_and_die("no more than %d gateways", NGATEWAYS); |
1010 | getaddr(gwlist + lsrr, l_sr->data); | 1007 | getaddr(gwlist + lsrr, llist_pop(&source_route_list)); |
1011 | ++lsrr; | 1008 | ++lsrr; |
1012 | l_sr = l_sr->link; | ||
1013 | free(source_route_list); | ||
1014 | source_route_list = l_sr; | ||
1015 | } | 1009 | } |
1016 | optlen = (lsrr + 1) * sizeof(gwlist[0]); | 1010 | optlen = (lsrr + 1) * sizeof(gwlist[0]); |
1017 | } | 1011 | } |