diff -r 9e6d6568bf7a -r 6a76cf980999 mercurial/osutil.c --- a/mercurial/osutil.c Mon Sep 29 12:12:53 2008 +0200 +++ b/mercurial/osutil.c Wed Oct 01 08:41:18 2008 -0400 @@ -207,9 +207,7 @@ fh = FindFirstFileA(pattern, &fd); if (fh == INVALID_HANDLE_VALUE) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_OSError, - GetLastError(), - path); + PyErr_SetFromWindowsErrWithFilename(GetLastError(), path); goto error_file; } @@ -244,9 +242,7 @@ } while (FindNextFileA(fh, &fd)); if (GetLastError() != ERROR_NO_MORE_FILES) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_OSError, - GetLastError(), - path); + PyErr_SetFromWindowsErrWithFilename(GetLastError(), path); goto error; } @@ -294,9 +290,10 @@ &path, &pathlen, &statflag, &skip)) goto error_parse; - if (pathlen >= PATH_MAX) + if (pathlen >= PATH_MAX) { + PyErr_SetString(PyExc_ValueError, "path too long"); goto error_parse; - + } strncpy(fullpath, path, PATH_MAX); fullpath[pathlen] = '/'; keepstat = statflag && PyObject_IsTrue(statflag);