Blob Blame History Raw
diff -up net-tools-1.60/netstat.c.p-basename net-tools-1.60/netstat.c
--- net-tools-1.60/netstat.c.p-basename	2011-06-06 15:54:26.459268750 +0200
+++ net-tools-1.60/netstat.c	2011-06-06 15:54:47.356121769 +0200
@@ -415,7 +415,7 @@ static void prg_cache_load(void)
     int procfdlen,fd,cmdllen,lnamelen;
     char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH];
     unsigned long inode;
-    const char *cs,*cmdlp;
+    const char *cs,*cmdlp,*cmdlpend;
     DIR *dirproc=NULL,*dirfd=NULL;
     struct dirent *direproc,*direfd;
     security_context_t scon=NULL;
@@ -484,10 +484,12 @@ static void prg_cache_load(void)
 		    continue;
 		if (cmdllen < sizeof(cmdlbuf) - 1) 
 		    cmdlbuf[cmdllen]='\0';
-		if ((cmdlp = strrchr(cmdlbuf, '/'))) 
+		if (cmdlbuf[0] == '/' && (cmdlp = strrchr(cmdlbuf, '/')))
 		    cmdlp++;
 		else 
 		    cmdlp = cmdlbuf;
+		if (cmdlpend = strrchr(cmdlp, ':'))
+		    cmdlpend = '\0';
 	    }
 
 	    snprintf(finbuf, sizeof(finbuf), "%s/%s", direproc->d_name, cmdlp);