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);