]> granicus.if.org Git - python/commitdiff
bpo-34492: Python/coreconfig.c: Fix _Py_wstrlist_copy() (GH-8910)
authorAlexey Izbyshev <izbyshev@ispras.ru>
Fri, 24 Aug 2018 23:34:56 +0000 (02:34 +0300)
committerVictor Stinner <vstinner@redhat.com>
Fri, 24 Aug 2018 23:34:56 +0000 (01:34 +0200)
bpo-34492: Python/coreconfig.c: Add missing NULL check to _Py_wstrlist_copy().

Fix _Py_wstrlist_clear() call on a wrong list.

Reported by Svace static analyzer.

Python/coreconfig.c

index 1a32525b7b319b77b6a4da08a201ba05ee70a6d6..1b9e26e50a2b231a55013c107ff6ee48b98bbfb0 100644 (file)
@@ -69,10 +69,13 @@ _Py_wstrlist_copy(int len, wchar_t **list)
     assert((len > 0 && list != NULL) || len == 0);
     size_t size = len * sizeof(list[0]);
     wchar_t **list_copy = PyMem_RawMalloc(size);
+    if (list_copy == NULL) {
+        return NULL;
+    }
     for (int i=0; i < len; i++) {
         wchar_t* arg = _PyMem_RawWcsdup(list[i]);
         if (arg == NULL) {
-            _Py_wstrlist_clear(i, list);
+            _Py_wstrlist_clear(i, list_copy);
             return NULL;
         }
         list_copy[i] = arg;