[Top][All Lists]
[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--)
- [bug-inetutils] ping6 seg fault patch - 1,
Rakesh Pandit <=