Skip to contentSkip to conversation

kernel/nsproxy.c: Fix memory leak of create_new_namespaces().

PATCH New wzt 1 participant 1 message Oct 18, 2011

lore
Share & tools
lore

wzt

author
#0 lore raw

PATCH 1/1 kernel/nsproxy.c: Fix memory leak of create_new_namespaces().

copy_pid_ns() has allocted some memory via create_pid_namespace(), if copy_net_ns() failed via create_new_namespaces(), it will cause memory leak. The copy_utsname() have the same problem.

---
 kernel/nsproxy.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
kernel/nsproxy.c +6 -2
index 9aeab4b..e2d18c9 100644
@@ -99,14 +99,18 @@ static struct nsproxy *create_new_namespaces(unsigned long flags,
 	return new_nsp;
 
 out_net:
-	if (new_nsp->pid_ns)
+	if (new_nsp->pid_ns) {
 		put_pid_ns(new_nsp->pid_ns);
+		free_pid_ns(&new_nsp->pid_ns->kfre);
+	}
 out_pid:
 	if (new_nsp->ipc_ns)
 		put_ipc_ns(new_nsp->ipc_ns);
 out_ipc:
-	if (new_nsp->uts_ns)
+	if (new_nsp->uts_ns) {
 		put_uts_ns(new_nsp->uts_ns);
+		free_uts_ns(&new_nsp->pid_ns->kfref);
+	}
 out_uts:
 	if (new_nsp->mnt_ns)
 		put_mnt_ns(new_nsp->mnt_ns);
Signature · 1 line
1.7.4.1