diff --git a/porting/liteos_a/user/ldso/dynlink.c b/porting/liteos_a/user/ldso/dynlink.c index 5a780e00b611fbf723f89713b9486829977630e0..cdbb2e26f68b8e1ea562ca80416a2f6eac82673b 100644 --- a/porting/liteos_a/user/ldso/dynlink.c +++ b/porting/liteos_a/user/ldso/dynlink.c @@ -1114,6 +1114,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) } } map = noload ? 0 : map_library(fd, &temp_dso); + close(fd); if (!map) return 0; /* Avoid the danger of getting two versions of libc mapped into the @@ -1819,6 +1820,7 @@ void __dls3(size_t *sp, size_t *auxv) dprintf(2, "%s: %s: Not a valid dynamic program\n", ldname, argv[0]); _exit(1); } + close(fd); ldso.name = ldname; app.name = argv[0]; aux[AT_ENTRY] = (size_t)laddr(&app, ehdr->e_entry); diff --git a/porting/liteos_a/user_debug/ldso/dynlink.c b/porting/liteos_a/user_debug/ldso/dynlink.c index 92e2abf40c67e91a8c65a1c7df8c01bcdd0f5a88..7d2d2557572a862f98dcf7950f64e337d074fd11 100644 --- a/porting/liteos_a/user_debug/ldso/dynlink.c +++ b/porting/liteos_a/user_debug/ldso/dynlink.c @@ -1114,6 +1114,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) } } map = noload ? 0 : map_library(fd, &temp_dso); + close(fd); if (!map) return 0; /* Avoid the danger of getting two versions of libc mapped into the @@ -1819,6 +1820,7 @@ void __dls3(size_t *sp, size_t *auxv) dprintf(2, "%s: %s: Not a valid dynamic program\n", ldname, argv[0]); _exit(1); } + close(fd); ldso.name = ldname; app.name = argv[0]; aux[AT_ENTRY] = (size_t)laddr(&app, ehdr->e_entry);