diff options
author | Nicolás Reynolds <fauno@parabola.nu> | 2013-07-10 10:41:45 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@parabola.nu> | 2013-07-10 10:41:45 -0300 |
commit | 71a7d5e69eafa3008bccede24dcf91635717a730 (patch) | |
tree | b74c09f064b7c7a8bc3f0e46ec04a057e340b5cd /libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch | |
parent | e3ed759d9c21d69504c9743a0b8284b60779e600 (diff) | |
parent | 682f7cf84b245bb09a9bb5fa239a8ebac9552ce1 (diff) |
Merge branch 'master' of vparabola:abslibre
Diffstat (limited to 'libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch')
-rw-r--r-- | libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch b/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch deleted file mode 100644 index aa916ac2c..000000000 --- a/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index d95c2d1..2309281 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service, - __typeof (once) old_once = once; - __libc_once (once, gaiconf_init); - /* Sort results according to RFC 3484. */ -- struct sort_result results[nresults]; -- size_t order[nresults]; -+ struct sort_result *results; -+ size_t *order; - struct addrinfo *q; - struct addrinfo *last = NULL; - char *canonname = NULL; -+ bool malloc_results; -+ -+ malloc_results -+ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t))); -+ if (malloc_results) -+ { -+ results = malloc (nresults * (sizeof (*results) + sizeof (size_t))); -+ if (results == NULL) -+ { -+ __free_in6ai (in6ai); -+ return EAI_MEMORY; -+ } -+ } -+ else -+ results = alloca (nresults * (sizeof (*results) + sizeof (size_t))); -+ order = (size_t *) (results + nresults); - - /* Now we definitely need the interface information. */ - if (! check_pf_called) -@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service, - - /* Fill in the canonical name into the new first entry. */ - p->ai_canonname = canonname; -+ -+ if (malloc_results) -+ free (results); - } - - __free_in6ai (in6ai); --- -1.7.1 - |