From: Neal Norwitz Date: Mon, 17 Feb 2003 18:05:20 +0000 (+0000) Subject: Use correct function name to PyArg_ParseTuple("is_package"). X-Git-Tag: v2.3c1~1821 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c1ba53f8ca219a22d964324abb76a055ad19feb;p=python Use correct function name to PyArg_ParseTuple("is_package"). Fix off-by-1 error in normalize_line_endings(): when *p == '\0' the NUL was copied into q and q was auto-incremented, the loop was broken out of, then a newline was appended followed by a NUL. So the function, in effect, was strcpy() but added two extra chars which was caught by obmalloc in debug mode, since there was only room for 1 additional newline. Get test working under regrtest (added test_main). --- diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 3c9457f765..c9aff4ac1d 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -186,6 +186,9 @@ class CompressedZipImportTestCase(UncompressedZipImportTestCase): compression = ZIP_DEFLATED -if __name__ == "__main__": +def test_main(): test_support.run_unittest(UncompressedZipImportTestCase) test_support.run_unittest(CompressedZipImportTestCase) + +if __name__ == "__main__": + test_main() diff --git a/Modules/zipimport.c b/Modules/zipimport.c index 159a6b0895..4c796f3cd2 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -371,7 +371,7 @@ zipimporter_is_package(PyObject *obj, PyObject *args) char *fullname; enum module_info mi; - if (!PyArg_ParseTuple(args, "s:zipimporter.find_module", + if (!PyArg_ParseTuple(args, "s:zipimporter.is_package", &fullname)) return NULL; @@ -947,7 +947,7 @@ normalize_line_endings(PyObject *source) return NULL; } /* replace "\r\n?" by "\n" */ - for (q = buf;;) { + for (q = buf; *p != '\0'; p++) { if (*p == '\r') { *q++ = '\n'; if (*(p + 1) == '\n') @@ -955,9 +955,6 @@ normalize_line_endings(PyObject *source) } else *q++ = *p; - if (*p == '\0') - break; - p++; } *q++ = '\n'; /* add trailing \n */ *q = '\0';