From 5c1ba53f8ca219a22d964324abb76a055ad19feb Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Mon, 17 Feb 2003 18:05:20 +0000 Subject: [PATCH] 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). --- Lib/test/test_zipimport.py | 5 ++++- Modules/zipimport.c | 7 ++----- 2 files changed, 6 insertions(+), 6 deletions(-) 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'; -- 2.50.1