Bläddra i källkod

Fix memory leak in dlopen()/dlclose().

The linked list of library dependencies created by dlopen() was not
being freed by dlclose().

Signed-off-by: Philip Craig <philipjcraig@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Philip Craig 13 år sedan
förälder
incheckning
bb8551685e
1 ändrade filer med 4 tillägg och 0 borttagningar
  1. 4 0
      ldso/libdl/libdl.c

+ 4 - 0
ldso/libdl/libdl.c

@@ -922,6 +922,10 @@ static int do_dlclose(void *vhandle, int need_fini)
 			free(tpnt);
 		}
 	}
+	for (rpnt1 = handle->next; rpnt1; rpnt1 = rpnt1_tmp) {
+		rpnt1_tmp = rpnt1->next;
+		free(rpnt1);
+	}
 	free(handle->init_fini.init_fini);
 	free(handle);