From c405dbf6927080f54300006b7b5a0e17c5c8a68c Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 1 Dec 2002 13:47:06 +0000 Subject: [PATCH] * win32/win32.c (rb_w32_stat): empty path is invalid, and return ENOENT rather than EBADF in such case. [ruby-talk:57177] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ win32/win32.c | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05b8845d95..582126ec00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Dec 1 22:43:29 2002 Nobuyoshi Nakada + + * win32/win32.c (rb_w32_stat): empty path is invalid, and return + ENOENT rather than EBADF in such case. [ruby-talk:57177] + Thu Nov 28 12:08:30 2002 Akinori MUSHA * lib/mkmf.rb: Avoid the use of "clean::" in favor of "clean:" in diff --git a/win32/win32.c b/win32/win32.c index c4086fe159..4ac661ecfc 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2539,13 +2539,12 @@ rb_w32_stat(const char *path, struct stat *st) *s = *p; } *s = '\0'; - len = strlen(buf1); - p = CharPrev(buf1, buf1 + len); - if( '\"' == *(--s) ) - { - errno = EBADF; + len = s - buf1; + if (!len || '\"' == *(--s)) { + errno = ENOENT; return -1; } + p = CharPrev(buf1, buf1 + len); if (isUNCRoot(buf1)) { if (*p != '\\')