bug-inetutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-inetutils] ping6 seg fault patch - 1


From: Rakesh Pandit
Subject: [bug-inetutils] ping6 seg fault patch - 1
Date: Wed, 27 Aug 2008 08:37:46 +0530

Hello,
  This one is first coherent patch from last weeks long patch. It fix
segmentation fault in ping6.c

-- 
rakesh

cvs diff: Diffing .
Index: ping6.c
===================================================================
RCS file: /sources/inetutils/inetutils/ping/ping6.c,v
retrieving revision 1.11
diff -u -r1.11 ping6.c
--- ping6.c     6 Jun 2008 16:43:43 -0000       1.11
+++ ping6.c     27 Aug 2008 02:58:21 -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--)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]