Mercurial > illumos > illumos-gate
changeset 13100:2569f04244aa
6750055 man command crashes when given "-M <executable file> <keyword>"
author | Rich Burridge <rich.burridge@oracle.com> |
---|---|
date | Thu, 12 Aug 2010 08:33:09 -0700 |
parents | baf8bd9f8381 |
children | 08bbd228b732 |
files | usr/src/cmd/man/src/man.c |
diffstat | 1 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/man/src/man.c Thu Aug 12 08:27:14 2010 -0700 +++ b/usr/src/cmd/man/src/man.c Thu Aug 12 08:33:09 2010 -0700 @@ -619,6 +619,7 @@ char *mandir = MANDIR; int s; struct dupnode *didup = NULL; + struct stat sb; s = sizeof (struct man_node); for (p = pathv; *p; ) { @@ -631,6 +632,10 @@ *p = mand; } q = split(*p, ','); + if (stat(q[0], &sb) != 0 || (sb.st_mode & S_IFDIR) == 0) { + freev(q); + goto next; + } if (access(q[0], R_OK|X_OK) != 0) { if (catmando) { @@ -1461,10 +1466,12 @@ freev(char **v) { int i; - for (i = 0; v[i] != NULL; i++) { - free(v[i]); + if (v != NULL) { + for (i = 0; v[i] != NULL; i++) { + free(v[i]); + } + free(v); } - free(v); } /*