]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-34436: Fix check that disables overallocation for the last fmt specifier (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 23 Aug 2018 08:03:02 +0000 (04:03 -0400)
committerGitHub <noreply@github.com>
Thu, 23 Aug 2018 08:03:02 +0000 (04:03 -0400)
Reported by Svace static analyzer.
(cherry picked from commit ccd99752675042bd5f67d332c5b0ed85ba1f2da3)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
Objects/bytesobject.c

index c358756bfea8e65de342b1c148fe76eb76671db6..82a75457708b120c7685a4a3858479c4c8e8aeb0 100644 (file)
@@ -819,8 +819,8 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
             if (v == NULL)
                 goto error;
 
-            if (fmtcnt < 0) {
-                /* last writer: disable writer overallocation */
+            if (fmtcnt == 0) {
+                /* last write: disable writer overallocation */
                 writer.overallocate = 0;
             }
 
@@ -1048,7 +1048,7 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
 
         /* If overallocation was disabled, ensure that it was the last
            write. Otherwise, we missed an optimization */
-        assert(writer.overallocate || fmtcnt < 0 || use_bytearray);
+        assert(writer.overallocate || fmtcnt == 0 || use_bytearray);
     } /* until end */
 
     if (argidx < arglen && !dict) {