From 8886e754e0949386722e8797cf5f94c50d1870b0 Mon Sep 17 00:00:00 2001 From: "Sergey G. Brester" Date: Fri, 13 Jan 2023 11:40:12 +0100 Subject: [PATCH 1/4] Update socketmodule.c fixes segfault gh-100795 - avoid unexpected `freeaddrinfo` if `res` becomes not NULL during invocation of `getaddrinfo` if it fails --- Modules/socketmodule.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 4747a23e8317fd..4c0f56ddf94099 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -6719,6 +6719,7 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs) error = getaddrinfo(hptr, pptr, &hints, &res0); Py_END_ALLOW_THREADS if (error) { + res0 = NULL; /* avoid unexpected free if res0 becomes not NULL */ set_gaierror(error); goto err; } @@ -6815,6 +6816,7 @@ socket_getnameinfo(PyObject *self, PyObject *args) error = getaddrinfo(hostp, pbuf, &hints, &res); Py_END_ALLOW_THREADS if (error) { + res = NULL; /* avoid unexpected free if res0 becomes not NULL */ set_gaierror(error); goto fail; } From 4d56b425e2fbb214c877ad74110c4ade9dbd7f5f Mon Sep 17 00:00:00 2001 From: "Sergey G. Brester" Date: Fri, 13 Jan 2023 14:44:48 +0100 Subject: [PATCH 2/4] typo in comment --- Modules/socketmodule.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 4c0f56ddf94099..8659d725f2e3a3 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -6816,7 +6816,7 @@ socket_getnameinfo(PyObject *self, PyObject *args) error = getaddrinfo(hostp, pbuf, &hints, &res); Py_END_ALLOW_THREADS if (error) { - res = NULL; /* avoid unexpected free if res0 becomes not NULL */ + res = NULL; /* avoid unexpected free if res becomes not NULL */ set_gaierror(error); goto fail; } From edd2c9a8259edc796574296a6eca0e0034b887b7 Mon Sep 17 00:00:00 2001 From: Oleg Iarygin Date: Sat, 21 Jan 2023 16:50:39 +0400 Subject: [PATCH 3/4] Add a NEWS entry --- .../next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst diff --git a/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst b/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst new file mode 100644 index 00000000000000..fb440ff1988a5e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst @@ -0,0 +1,2 @@ +Avoid unexpected ``freeaddrinfo`` when :mod:`socket.socket.getaddrinfo` +fails. Patch by Sergey G. Brester. From 65bdee0e6a2b684c58a9dbb6404647a5f021b9a1 Mon Sep 17 00:00:00 2001 From: "Sergey G. Brester" Date: Sat, 21 Jan 2023 14:30:38 +0100 Subject: [PATCH 4/4] Update Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst Co-authored-by: Oleg Iarygin --- .../next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst b/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst index fb440ff1988a5e..beec5c9e57f647 100644 --- a/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst +++ b/Misc/NEWS.d/next/Library/2023-01-21-16-50-22.gh-issue-100795.NPMZf7.rst @@ -1,2 +1,2 @@ -Avoid unexpected ``freeaddrinfo`` when :mod:`socket.socket.getaddrinfo` +Avoid unexpected ``freeaddrinfo`` when :meth:`socket.socket.getaddrinfo` fails. Patch by Sergey G. Brester.