diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | win32/win32.c | 26 |
2 files changed, 19 insertions, 12 deletions
@@ -1,3 +1,8 @@ +Tue Sep 25 10:46:42 2001 Usaku Nakamura <usa@ruby-lang.org> + + * win32/win32.c (isInternalCmd): check return value of NtMakeCmdVector + (Tietew <tietew@tietew.net>'s patch). + Thu Sep 20 21:25:00 2001 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> * eval.c (MATCH_DATA): access via rb_svar(). diff --git a/win32/win32.c b/win32/win32.c index 52c361d27d..53c7c22467 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -367,20 +367,22 @@ static char *szInternalCmds[] = { int isInternalCmd(char *cmd) { - int i, fRet=0; - char **vec; - int vecc = NtMakeCmdVector(cmd, &vec, FALSE); + int i, fRet=0; + char **vec; + int vecc = NtMakeCmdVector(cmd, &vec, FALSE); - for( i = 0; szInternalCmds[i] ; i++){ - if(!strcasecmp(szInternalCmds[i], vec[0])){ - fRet = 1; - break; - } - } - - SafeFree (vec, vecc); + if (vecc == 0) + return 0; + for( i = 0; szInternalCmds[i] ; i++){ + if(!strcasecmp(szInternalCmds[i], vec[0])){ + fRet = 1; + break; + } + } + + SafeFree(vec, vecc); - return fRet; + return fRet; } |