From 9dc7b7ce82562c07fc7077124ef46ca15f5b9528 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 14 Aug 2006 22:10:24 +0000 Subject: Patch #1511317: don't crash on invalid hostname info --- Modules/socketmodule.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index bb99bde..f03b34c 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -3041,17 +3041,20 @@ gethost_common(struct hostent *h, struct sockaddr *addr, int alen, int af) if ((addr_list = PyList_New(0)) == NULL) goto err; - for (pch = h->h_aliases; *pch != NULL; pch++) { - int status; - tmp = PyString_FromString(*pch); - if (tmp == NULL) - goto err; - - status = PyList_Append(name_list, tmp); - Py_DECREF(tmp); - - if (status) - goto err; + /* SF #1511317: h_aliases can be NULL */ + if (h->h_aliases) { + for (pch = h->h_aliases; *pch != NULL; pch++) { + int status; + tmp = PyString_FromString(*pch); + if (tmp == NULL) + goto err; + + status = PyList_Append(name_list, tmp); + Py_DECREF(tmp); + + if (status) + goto err; + } } for (pch = h->h_addr_list; *pch != NULL; pch++) { -- cgit v0.12