make newline-delimited dynamic linker path file actually work
authorRich Felker <dalias@aerifal.cx>
Wed, 26 Jun 2013 01:39:35 +0000 (21:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 26 Jun 2013 01:39:35 +0000 (21:39 -0400)
apparently the original commit was never tested properly, since
getline was only ever reading one line. the intent was to read the
entire file, so use getdelim with the null byte as delimiter as a
cheap way to read a whole file into memory.

src/ldso/dynlink.c

index ee5ec302bc2acb0d020bfbf7495e56022fe725bf..8472343a9285a9c96935b06827ead88585e44fe8 100644 (file)
@@ -478,7 +478,7 @@ 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) {
+                                       if (getdelim(&sys_path, (size_t[1]){0}, 0, f) > 0) {
                                                size_t l = strlen(sys_path);
                                                if (l && sys_path[l-1]=='\n')
                                                        sys_path[l-1] = 0;