[3.15] gh-149931: Fix memory leaks on failed realloc (GH-149932) (#150439)

This commit is contained in:
Miss Islington (bot) 2026-05-26 03:04:49 +02:00 committed by GitHub
parent 340b4dd6ff
commit d73e43317e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 5 deletions

View file

@ -56,12 +56,14 @@ process_single_stack_chunk(
return -1;
}
this_chunk = PyMem_RawRealloc(this_chunk, actual_size);
if (!this_chunk) {
char *tmp = PyMem_RawRealloc(this_chunk, actual_size);
if (!tmp) {
PyMem_RawFree(this_chunk);
PyErr_NoMemory();
set_exception_cause(unwinder, PyExc_MemoryError, "Failed to reallocate stack chunk buffer");
return -1;
}
this_chunk = tmp;
if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, chunk_addr, actual_size, this_chunk) < 0) {
PyMem_RawFree(this_chunk);

View file

@ -820,12 +820,15 @@ time_strftime1(time_char **outbuf, size_t *bufsize,
PyErr_NoMemory();
return NULL;
}
*outbuf = (time_char *)PyMem_Realloc(*outbuf,
*bufsize*sizeof(time_char));
if (*outbuf == NULL) {
time_char *tmp = (time_char *)PyMem_Realloc(*outbuf,
*bufsize*sizeof(time_char));
if (tmp == NULL) {
PyMem_Free(*outbuf);
*outbuf = NULL;
PyErr_NoMemory();
return NULL;
}
*outbuf = tmp;
#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
errno = 0;
#endif