2008/8/27 Rakesh Pandit <[EMAIL PROTECTED]>:
> Hello,
>  This one is first coherent patch from last weeks long patch. It fix
> segmentation fault in ping6.c

Missed the ChangeLog entry. I will post next patch when this is reviewed as
files are intersecting, and if there is a correction while review,
subsequent patches
will become corrupt.

Thanks,
rakesh

Index: ChangeLog
===================================================================
RCS file: /sources/inetutils/inetutils/ChangeLog,v
retrieving revision 1.322
diff -u -r1.322 ChangeLog
--- ChangeLog   23 Aug 2008 11:59:17 -0000      1.322
+++ ChangeLog   27 Aug 2008 03:25:49 -0000
@@ -1,3 +1,8 @@
+2008-08-27  Rakesh Pandit <[EMAIL PROTECTED]>
+
+       * ping/ping6.c (main, parse_opt): Fixed segmentation fault
+       in ping6.
+       
 2008-08-23  Debarshi Ray  <[EMAIL PROTECTED]>

        * hostname/hostname.c (main): Initialize OPTIONS to zero.
Index: ping/ping6.c
===================================================================
RCS file: /sources/inetutils/inetutils/ping/ping6.c,v
retrieving revision 1.11
diff -u -r1.11 ping6.c
--- ping/ping6.c        6 Jun 2008 16:43:43 -0000       1.11
+++ ping/ping6.c        27 Aug 2008 03:25:49 -0000
@@ -47,12 +47,15 @@
 #include "libinetutils.h"

 static PING *ping;
-bool is_root;
+bool is_root = false;
 unsigned char *data_buffer;
 u_char *patptr;
 int one = 1;
 int pattern_len = 16;
 size_t data_length = PING_DATALEN;
+size_t count = DEFAULT_PING_COUNT;
+size_t interval;
+int socket_type;
 static unsigned int options;
 static unsigned long preload = 0;

@@ -96,15 +99,16 @@
 {
   char *endptr;
   u_char pattern[16];
+  double v;

   switch (key)
     {
     case 'c':
-      ping->ping_count = ping_cvt_number (arg, 0, 0);
+      count = ping_cvt_number (arg, 0, 0);
       break;

     case 'd':
-      setsockopt (ping->ping_fd, SOL_SOCKET, SO_DEBUG, &one, sizeof (one));
+      socket_type = SO_DEBUG;
       break;

     case 'f':
@@ -117,7 +121,7 @@

     case 'i':
       options |= OPT_INTERVAL;
-      ping->ping_interval = ping_cvt_number (arg, 0, 0);
+      interval = ping_cvt_number (arg, 0, 0);
       break;

     case 'l':
@@ -144,7 +148,7 @@
       break;

     case 'r':
-      setsockopt (ping->ping_fd, SOL_SOCKET, SO_DONTROUTE, &one, sizeof (one));
+      socket_type = SO_DEBUG;
       break;

     case 's':
@@ -188,6 +192,16 @@
   argc -= index;
   argv += index;

+  if (count != 0)
+    ping->ping_count = count;
+
+  if (socket_type != 0)
+    setsockopt (ping->ping_fd, SOL_SOCKET, socket_type, &one, sizeof (one));
+
+  if (options & OPT_INTERVAL)
+    ping->ping_interval = interval;
+
+
   init_data_buffer (patptr, pattern_len);

   while (argc--)


_______________________________________________
bug-inetutils mailing list
bug-inetutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-inetutils

Reply via email to