fix rpath string memory leak on failed dlopen

when dlopen fails, all partially-loaded libraries need to be unmapped
and freed. any of these libraries using an rpath with $ORIGIN
expansion may have an allocated string for the expanded rpath;
previously, this string was not freed when freeing the library data
structures.
This commit is contained in:
Rich Felker 2015-04-04 00:15:19 -04:00
parent 2963a9f794
commit 077096259d

View File

@ -1413,6 +1413,8 @@ void *dlopen(const char *file, int mode)
free(p->td_index);
p->td_index = tmp;
}
if (p->rpath != p->rpath_orig)
free(p->rpath);
free(p->deps);
free(p);
}