aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2014-07-24 09:32:06 +0300
committerTimo Teräs <timo.teras@iki.fi>2014-07-30 07:03:40 +0000
commit9b59b303937d3c5e11dc01aa3da53ae5e8e93566 (patch)
tree847f6d537322aca77ad5ff093ee6d28051043fa9 /main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch
parent86759609760f21984c719f15a4ceb6a8e0e4bb64 (diff)
downloadaports-9b59b303937d3c5e11dc01aa3da53ae5e8e93566.tar.bz2
aports-9b59b303937d3c5e11dc01aa3da53ae5e8e93566.tar.xz
main/musl: cherry-pick fixes, update alpine specific patches
four additional fixes from upstream git. dns patch fixed to implement ns_{put,get}* as real functions, and macro ns_msg_getflag added. netlink patch is reworked to provide alias interface names for ipv4 where appropriate, and for ipv6 link-local scope ids. few error paths have been fixed, and if_nameindex() memory allocation strategy has been improved. setxid patch added. (cherry picked from commit 3227b4ad816f850f655b6f44dc497926cb2cdcd1)
Diffstat (limited to 'main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch')
-rw-r--r--main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch b/main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch
new file mode 100644
index 0000000000..fe6fe31daf
--- /dev/null
+++ b/main/musl/0007-explicitly-reject-empty-names-in-dynamic-linker-load.patch
@@ -0,0 +1,35 @@
+From 59549313d85fa9a0168ff8164cfe734255585f46 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Fri, 11 Jul 2014 00:29:44 -0400
+Subject: [PATCH] explicitly reject empty names in dynamic linker load_library
+ function
+
+previously passing an empty string for name resulted in failure, as
+expected, but only after spurious syscalls, and it produced confusing
+errno values (and thus dlerror strings).
+
+in addition to dlopen calls, this issue affected use of LD_PRELOAD
+with trailing whitespace or colon characters.
+---
+ src/ldso/dynlink.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
+index 6b7f0f3..12f14f7 100644
+--- a/src/ldso/dynlink.c
++++ b/src/ldso/dynlink.c
+@@ -663,6 +663,11 @@ static struct dso *load_library(const char *name, struct dso *needed_by)
+ int n_th = 0;
+ int is_self = 0;
+
++ if (!*name) {
++ errno = EINVAL;
++ return 0;
++ }
++
+ /* Catch and block attempts to reload the implementation itself */
+ if (name[0]=='l' && name[1]=='i' && name[2]=='b') {
+ static const char *rp, reserved[] =
+--
+2.0.2
+