do not use default when dynamic linker fails to open existing path file
if fopen fails for a reason other than ENOENT, we must assume the
intent is that the path file be used. failure may be due to
misconfiguration or intentional resource-exhaustion attack (against
suid programs), in which case falling back to loading libraries from
an unintended path could be dangerous.
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 6d3d08e..a89e743 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -614,6 +614,8 @@
sys_path = "";
}
fclose(f);
+ } else if (errno != ENOENT) {
+ sys_path = "";
}
}
if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";