X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fldso%2Fdynlink.c;h=960e08986404b8c7f2378e73d0c49ec9d64f33cc;hb=030e52639248ac8417a4934298caa78c21a228d1;hp=93a4b44c1165035db3e2852e8db682cd9b664643;hpb=8b28aa9c94e7c6179d70fe73afcd3fff29809d61;p=musl diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 93a4b44c..960e0898 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -376,7 +376,7 @@ static int path_open(const char *name, const char *search, char *buf, size_t buf z = strchr(s, ':'); l = z ? z-s : strlen(s); snprintf(buf, buf_size, "%.*s/%s", l, s, name); - if ((fd = open(buf, O_RDONLY))>=0) return fd; + if ((fd = open(buf, O_RDONLY|O_CLOEXEC))>=0) return fd; s += l; } } @@ -423,7 +423,7 @@ static struct dso *load_library(const char *name) } if (strchr(name, '/')) { pathname = name; - fd = open(name, O_RDONLY); + fd = open(name, O_RDONLY|O_CLOEXEC); } else { /* Search for the name to see if it's already loaded */ for (p=head->next; p; p=p->next) { @@ -438,7 +438,7 @@ static struct dso *load_library(const char *name) if (fd < 0 && env_path) fd = path_open(name, env_path, buf, sizeof buf); if (fd < 0) { if (!sys_path) { - FILE *f = fopen(ETC_LDSO_PATH, "r"); + 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; @@ -973,7 +973,7 @@ int __dladdr(void *addr, Dl_info *info) return 1; } -void *__dlsym(void *p, const char *s, void *ra) +void *__dlsym(void *restrict p, const char *restrict s, void *restrict ra) { void *res; pthread_rwlock_rdlock(&lock); @@ -986,7 +986,7 @@ void *dlopen(const char *file, int mode) { return 0; } -void *__dlsym(void *p, const char *s, void *ra) +void *__dlsym(void *restrict p, const char *restrict s, void *restrict ra) { return 0; }