bpo-34492: Python/coreconfig.c: Fix _Py_wstrlist_copy() (GH-8910)

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.
This commit is contained in:
Alexey Izbyshev 2018-08-25 02:34:56 +03:00 committed by Victor Stinner
parent 3738fadc67
commit eb746dbae8
1 changed files with 4 additions and 1 deletions

View 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;