On Mon, Dec 16, 2002 at 10:05:14PM -0800, Ryan T. Sammartino wrote:
>
> Some more info about my problems with netstat:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x08049941 in prg_cache_get (inode=-979118814) at netstat.c:281
> 281 if (pn->inode==inode) return(pn->name);
Here is a patch that works around the problem:
--- netstat.c.orig 2002-12-16 22:15:10.000000000 -0800
+++ netstat.c 2002-12-16 22:17:09.000000000 -0800
@@ -277,6 +277,10 @@
unsigned hi=PRG_HASHIT(inode);
struct prg_node *pn;
+ /* Sanity check - if inode < 0, bad things happen. */
+ if (hi >= PRG_HASH_SIZE)
+ return("-");
+
for (pn=prg_hash[hi];pn;pn=pn->next)
if (pn->inode==inode) return(pn->name);
return("-");
Here is a patch for the spec file:
--- net-tools.spec.orig 2002-12-16 22:25:26.000000000 -0800
+++ net-tools.spec 2002-12-16 22:26:16.000000000 -0800
@@ -1,5 +1,5 @@
%define version 1.60
-%define release 5mdk
+%define release 6mdk
%define url http://www.tazenda.demon.co.uk/phil/net-tools/
Summary: The basic tools for setting up networking.
@@ -19,6 +19,7 @@
Patch2: net-tools-1.57-bug22040.patch.bz2
Patch3: net-tools-1.60-manydevs.patch.bz2
Patch4: net-tools-1.60-virtualname.patch.bz2
+Patch5: net-tools-1.60-negative-inode.patch.bz2
%description
The net-tools package contains the basic tools needed for setting up
@@ -30,6 +31,7 @@
%patch2 -p1 -b .bug22040
%patch3 -p0 -b .manydevs
%patch4 -p1 -b .virtualname
+%patch5 -p0 -b .negative-inode
bzcat %SOURCE1 > ./config.h
bzcat %SOURCE2 > ./config.make
@@ -69,6 +71,9 @@
%lang(pt_BR) %{_mandir}/pt_BR/man[158]/*
%changelog
+* Mon Dec 16 2002 Ryan T. Sammartino <[EMAIL PROTECTED]> 1.60-6mdk
+- work around crash with netstat -p and negative inode numbers
+
* Wed Aug 21 2002 Frederic Lepied <[EMAIL PROTECTED]> 1.60-5mdk
- merged with rh
--
Ryan T. Sammartino
http://members.shaw.ca/ryants/
Life can be so tragic -- you're here today and here tomorrow.