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);
 		}