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.
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 4a37183..f6ed801 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -1413,6 +1413,8 @@
free(p->td_index);
p->td_index = tmp;
}
+ if (p->rpath != p->rpath_orig)
+ free(p->rpath);
free(p->deps);
free(p);
}