From 2ce1f68ba0d940f4cad58cd00e1e015be25f5286 Mon Sep 17 00:00:00 2001 From: Stathis Kamperis Date: Fri, 11 Sep 2009 17:56:57 +0300 Subject: [PATCH] getcwd: Return proper error codes. Dragonfly-bug: http://bugs.dragonflybsd.org/issue1394 Reported-by: hasso@ --- sys/kern/vfs_cache.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 7af6f24..bfdd17d 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -2421,7 +2421,7 @@ sys___getcwd(struct __getcwd_args *uap) return (ENODEV); buflen = uap->buflen; - if (buflen < 2) + if (buflen == 0) return (EINVAL); if (buflen > MAXPATHLEN) buflen = MAXPATHLEN; @@ -2470,14 +2470,14 @@ kern_getcwd(char *buf, size_t buflen, int *error) for (i = nch.ncp->nc_nlen - 1; i >= 0; i--) { if (bp == buf) { numcwdfail4++; - *error = ENOMEM; + *error = ERANGE; return(NULL); } *--bp = nch.ncp->nc_name[i]; } if (bp == buf) { numcwdfail4++; - *error = ENOMEM; + *error = ERANGE; return(NULL); } *--bp = '/'; @@ -2497,7 +2497,7 @@ kern_getcwd(char *buf, size_t buflen, int *error) if (!slash_prefixed) { if (bp == buf) { numcwdfail4++; - *error = ENOMEM; + *error = ERANGE; return(NULL); } *--bp = '/'; -- 1.7.7.2