summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-05-10 09:51:57 (GMT)
committerGitHub <noreply@github.com>2024-05-10 09:51:57 (GMT)
commit8bfaf3a5f0f876c8b91db892d6cae651ae03b627 (patch)
tree5f742c2841371fd67c5dc542086443d1c90dd3fd
parenteb29e2f5905da93333d1ce78bc98b151e763ff46 (diff)
downloadcpython-8bfaf3a5f0f876c8b91db892d6cae651ae03b627.zip
cpython-8bfaf3a5f0f876c8b91db892d6cae651ae03b627.tar.gz
cpython-8bfaf3a5f0f876c8b91db892d6cae651ae03b627.tar.bz2
Fix some missing null checks. (GH-118721)
(cherry picked from commit 7e6fcab20003b07621dc02ea78d6ea2fda500371) Co-authored-by: Steve Dower <steve.dower@python.org>
-rw-r--r--Objects/typeobject.c13
-rw-r--r--PC/launcher2.c5
2 files changed, 13 insertions, 5 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 7776ae2..0a21ec8 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -5470,15 +5470,19 @@ object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
comma_w_quotes_sep = PyUnicode_FromString("', '");
+ if (!comma_w_quotes_sep) {
+ Py_DECREF(sorted_methods);
+ return NULL;
+ }
joined = PyUnicode_Join(comma_w_quotes_sep, sorted_methods);
- method_count = PyObject_Length(sorted_methods);
- Py_DECREF(sorted_methods);
+ Py_DECREF(comma_w_quotes_sep);
if (joined == NULL) {
- Py_DECREF(comma_w_quotes_sep);
+ Py_DECREF(sorted_methods);
return NULL;
}
+ method_count = PyObject_Length(sorted_methods);
+ Py_DECREF(sorted_methods);
if (method_count == -1) {
- Py_DECREF(comma_w_quotes_sep);
Py_DECREF(joined);
return NULL;
}
@@ -5490,7 +5494,6 @@ object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
method_count > 1 ? "s" : "",
joined);
Py_DECREF(joined);
- Py_DECREF(comma_w_quotes_sep);
return NULL;
}
PyObject *obj = type->tp_alloc(type, 0);
diff --git a/PC/launcher2.c b/PC/launcher2.c
index b0a55778..c38cbc8 100644
--- a/PC/launcher2.c
+++ b/PC/launcher2.c
@@ -2681,6 +2681,11 @@ process(int argc, wchar_t ** argv)
DWORD len = GetEnvironmentVariableW(L"PYLAUNCHER_LIMIT_TO_COMPANY", NULL, 0);
if (len > 1) {
wchar_t *limitToCompany = allocSearchInfoBuffer(&search, len);
+ if (!limitToCompany) {
+ exitCode = RC_NO_MEMORY;
+ winerror(0, L"Failed to allocate internal buffer");
+ goto abort;
+ }
search.limitToCompany = limitToCompany;
if (0 == GetEnvironmentVariableW(L"PYLAUNCHER_LIMIT_TO_COMPANY", limitToCompany, len)) {
exitCode = RC_INTERNAL_ERROR;