--- src/lib/libc/gen/dirname.c 2005/09/18 13:36:11 1.8 +++ src/lib/libc/gen/dirname.c 2005/09/18 15:15:06 1.9 @@ -72,11 +72,9 @@ dirname(const char *path) endp--; } while (endp > path && *endp == '/'); - if (endp + 2 > path + MAXPATHLEN) { + if (strlcpy(bname, path, (endp - path) + 2) > MAXPATHLEN) { errno = ENAMETOOLONG; return(NULL); } - memcpy(bname, path, endp - path + 1); - bname[endp - path + 1] = '\0'; return(bname); }