]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #18427: str.replace could crash the interpreter with huge strings.
authorRonald Oussoren <ronaldoussoren@mac.com>
Thu, 11 Jul 2013 11:33:55 +0000 (13:33 +0200)
committerRonald Oussoren <ronaldoussoren@mac.com>
Thu, 11 Jul 2013 11:33:55 +0000 (13:33 +0200)
This fixes two places where 'int'  was used to represent
the size of strings, instead of 'Py_ssize_t'.

(The issue is not present in the corresponding code in the 3.x branches)

Fixes #18427

Misc/NEWS
Objects/stringobject.c

index c3689e93188700f298d3d55a447786f9a081d300..804e8c2125d32a5592fb32c9470e19f34afc2319 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #18427: str.replace could crash the interpreter with huge strings.
+
 - Issue #18347: ElementTree's html serializer now preserves the case of
   closing tags.
 
@@ -88,7 +90,7 @@ IDLE
 
 - Issue #7136: In the Idle File menu, "New Window" is renamed "New File".
   Patch by Tal Einat, Roget Serwy, and Todd Rovito.
-  
+
 - Issue #8515: Set __file__ when run file in IDLE.
   Initial patch by Bruce Frederiksen.
 
index 120919737791770748559422bd1631855de8271e..b80ef87b0d8d94f8612da4a455030e7db7ebe204 100644 (file)
@@ -882,9 +882,9 @@ string_print(PyStringObject *op, FILE *fp, int flags)
             size -= chunk_size;
         }
 #ifdef __VMS
-        if (size) fwrite(data, (int)size, 1, fp);
+        if (size) fwrite(data, (size_t)size, 1, fp);
 #else
-        fwrite(data, 1, (int)size, fp);
+        fwrite(data, 1, (size_t)size, fp);
 #endif
         Py_END_ALLOW_THREADS
         return 0;
@@ -2332,7 +2332,7 @@ return_self(PyStringObject *self)
 }
 
 Py_LOCAL_INLINE(Py_ssize_t)
-countchar(const char *target, int target_len, char c, Py_ssize_t maxcount)
+countchar(const char *target, Py_ssize_t target_len, char c, Py_ssize_t maxcount)
 {
     Py_ssize_t count=0;
     const char *start=target;