about summary refs log tree commit diff
path: root/src/ldso
diff options
context:
space:
mode:
Diffstat (limited to 'src/ldso')
-rw-r--r--src/ldso/dynlink.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 625f80cc..ba2f6129 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -478,13 +478,16 @@ static struct dso *load_library(const char *name)
 			if (!sys_path) {
 				FILE *f = fopen(ETC_LDSO_PATH, "rbe");
 				if (f) {
-					if (getline(&sys_path, (size_t[1]){0}, f) > 0)
-						sys_path[strlen(sys_path)-1]=0;
+					if (getline(&sys_path, (size_t[1]){0}, f) > 0) {
+						size_t l = strlen(sys_path);
+						if (l && sys_path[l-1]=='\n')
+							sys_path[-1] = 0;
+					}
 					fclose(f);
 				}
 			}
-			if (sys_path) fd = path_open(name, sys_path, buf, sizeof buf);
-			else fd = path_open(name, "/lib:/usr/local/lib:/usr/lib", buf, sizeof buf);
+			if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";
+			fd = path_open(name, sys_path, buf, sizeof buf);
 		}
 		pathname = buf;
 	}