wget: -O FILE is allowed to overwrite existing file (compat)
[oweals/busybox.git] / networking / ping.c
index 6945abb4a823f102603563c666f2ea75a8a25ee9..5d61cd768058ddaf30300c60e7b4e0a9c9f9ea3c 100644 (file)
@@ -179,7 +179,8 @@ int ping_main(int argc, char **argv)
        len_and_sockaddr *lsa;
 #if ENABLE_PING6
        sa_family_t af = AF_UNSPEC;
-       while (++argv[0][0] == '-') {
+
+       while ((++argv)[0] && argv[0][0] == '-') {
                if (argv[0][1] == '4') {
                        af = AF_INET;
                        continue;
@@ -663,7 +664,7 @@ static void ping(len_and_sockaddr *lsa)
        printf("PING %s (%s)", hostname, dotted);
        if (source_lsa) {
                printf(" from %s",
-                       xmalloc_sockaddr2dotted_noport(&source_lsa->sa, source_lsa->len));
+                       xmalloc_sockaddr2dotted_noport(&source_lsa->sa));
        }
        printf(": %d data bytes\n", datalen);
 
@@ -688,7 +689,7 @@ int ping_main(int argc, char **argv)
 
        /* exactly one argument needed, -v and -q don't mix */
        opt_complementary = "=1:q--v:v--q";
-       getopt32(argc, argv, OPT_STRING, &opt_c, &opt_s, &opt_I);
+       getopt32(argv, OPT_STRING, &opt_c, &opt_s, &opt_I);
        if (option_mask32 & OPT_c) pingcount = xatoul(opt_c); // -c
        if (option_mask32 & OPT_s) datalen = xatou16(opt_s); // -s
        if (option_mask32 & OPT_I) { // -I
@@ -714,7 +715,7 @@ int ping_main(int argc, char **argv)
                /* leaking it here... */
                source_lsa = NULL;
 
-       dotted = xmalloc_sockaddr2dotted_noport(&lsa->sa, lsa->len);
+       dotted = xmalloc_sockaddr2dotted_noport(&lsa->sa);
        ping(lsa);
        pingstats(0);
        return EXIT_SUCCESS;