bpo-35436: Add missing PyErr_NoMemory() calls and other minor bug fixes. (GH-11015)

Set MemoryError when appropriate, add missing failure checks,
and fix some potential leaks.
This commit is contained in:
Zackery Spytz 2018-12-07 03:11:30 -07:00 committed by Serhiy Storchaka
parent 3a521f0b61
commit 4c49da0cb7
17 changed files with 113 additions and 27 deletions

View file

@ -4097,6 +4097,9 @@ parsenumber(struct compiling *c, const char *s)
}
/* Create a duplicate without underscores. */
dup = PyMem_Malloc(strlen(s) + 1);
if (dup == NULL) {
return PyErr_NoMemory();
}
end = dup;
for (; *s; s++) {
if (*s != '_') {
@ -4325,8 +4328,10 @@ fstring_compile_expr(const char *expr_start, const char *expr_end,
len = expr_end - expr_start;
/* Allocate 3 extra bytes: open paren, close paren, null byte. */
str = PyMem_RawMalloc(len + 3);
if (str == NULL)
if (str == NULL) {
PyErr_NoMemory();
return NULL;
}
str[0] = '(';
memcpy(str+1, expr_start, len);

View file

@ -670,11 +670,12 @@ r_string(Py_ssize_t n, RFILE *p)
p->buf_size = n;
}
else if (p->buf_size < n) {
p->buf = PyMem_REALLOC(p->buf, n);
if (p->buf == NULL) {
char *tmp = PyMem_REALLOC(p->buf, n);
if (tmp == NULL) {
PyErr_NoMemory();
return NULL;
}
p->buf = tmp;
p->buf_size = n;
}

View file

@ -398,6 +398,9 @@ _Py_string_to_number_with_underscores(
}
dup = PyMem_Malloc(orig_len + 1);
if (dup == NULL) {
return PyErr_NoMemory();
}
end = dup;
prev = '\0';
last = s + orig_len;