Hi,

malloc & memset can be replaced with calloc in ping.c. Please see below for patch details:

Index: ping.c
===================================================================
RCS file: /cvs/src/sbin/ping/ping.c,v
retrieving revision 1.100
diff -u -p -u -r1.100 ping.c
--- ping.c    24 Mar 2014 11:11:49 -0000    1.100
+++ ping.c    22 Apr 2014 04:41:56 -0000
@@ -508,8 +508,8 @@ main(int argc, char *argv[])
         catcher(0);        /* start things going */

     fdmasks = howmany(s+1, NFDBITS) * sizeof(fd_mask);
-    if ((fdmaskp = (fd_set *)malloc(fdmasks)) == NULL)
-        err(1, "malloc");
+    if ((fdmaskp = calloc(1, fdmasks)) == NULL)
+        err(1, "calloc");

     for (;;) {
         struct sockaddr_in from;
@@ -521,7 +521,6 @@ main(int argc, char *argv[])
             pinger();
             timeout.tv_sec = 0;
             timeout.tv_usec = 10000;
-            memset(fdmaskp, 0, fdmasks);
             FD_SET(s, fdmaskp);
             if (select(s + 1, (fd_set *)fdmaskp, (fd_set *)NULL,
                 (fd_set *)NULL, &timeout) < 1)


Reply via email to