فهرست منبع

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.
Rich Felker 11 سال پیش
والد
کامیت
ff4be700d0
1فایلهای تغییر یافته به همراه2 افزوده شده و 0 حذف شده
  1. 2 0
      src/ldso/dynlink.c

+ 2 - 0
src/ldso/dynlink.c

@@ -614,6 +614,8 @@ static struct dso *load_library(const char *name, struct dso *needed_by)
 						sys_path = "";
 					}
 					fclose(f);
+				} else if (errno != ENOENT) {
+					sys_path = "";
 				}
 			}
 			if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";