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