summaryrefslogtreecommitdiffstats
path: root/source/rpc_server
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-04-28 18:16:33 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:45 -0500
commit5d428400f77399b7fc30fb2a0fb10f0c74b96458 (patch)
tree2ae29a22e74b69144175ad8a20647af57b668800 /source/rpc_server
parent4616c29b9f09b9863f1446e83c98e3adc327d0f9 (diff)
downloadsamba-5d428400f77399b7fc30fb2a0fb10f0c74b96458.tar.gz
samba-5d428400f77399b7fc30fb2a0fb10f0c74b96458.tar.xz
samba-5d428400f77399b7fc30fb2a0fb10f0c74b96458.zip
r22561: Fix a memleak in lanman.c: Nobody would free the session_list.
Volker
Diffstat (limited to 'source/rpc_server')
-rw-r--r--source/rpc_server/srv_srvsvc_nt.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c
index 8f68bf36a1c..bdd8f68d512 100644
--- a/source/rpc_server/srv_srvsvc_nt.c
+++ b/source/rpc_server/srv_srvsvc_nt.c
@@ -769,13 +769,12 @@ static void init_srv_sess_info_0(pipes_struct *p, struct srvsvc_NetSessCtr0 *ss0
{
struct sessionid *session_list;
uint32 num_entries = 0;
- (*stot) = list_sessions(&session_list);
+ (*stot) = list_sessions(p->mem_ctx, &session_list);
if (ss0 == NULL) {
if (snum) {
(*snum) = 0;
}
- SAFE_FREE(session_list);
return;
}
@@ -799,7 +798,6 @@ static void init_srv_sess_info_0(pipes_struct *p, struct srvsvc_NetSessCtr0 *ss0
ss0->array = NULL;
ss0->count = 0;
}
- SAFE_FREE(session_list);
}
/*******************************************************************
@@ -859,7 +857,7 @@ static void init_srv_sess_info_1(pipes_struct *p, struct srvsvc_NetSessCtr1 *ss1
return;
}
- (*stot) = list_sessions(&session_list);
+ (*stot) = list_sessions(p->mem_ctx, &session_list);
ss1->array = TALLOC_ARRAY(p->mem_ctx, struct srvsvc_NetSessInfo1, *stot);
@@ -900,8 +898,6 @@ static void init_srv_sess_info_1(pipes_struct *p, struct srvsvc_NetSessCtr1 *ss1
if ((*snum) >= (*stot)) {
(*snum) = 0;
}
-
- SAFE_FREE(session_list);
}
/*******************************************************************
@@ -1222,7 +1218,7 @@ WERROR _srvsvc_NetSessDel(pipes_struct *p, struct srvsvc_NetSessDel *r)
memmove(machine, &machine[1], strlen(machine));
}
- num_sessions = list_sessions(&session_list);
+ num_sessions = list_sessions(p->mem_ctx, &session_list);
DEBUG(5,("_srv_net_sess_del: %d\n", __LINE__));
@@ -1248,10 +1244,7 @@ WERROR _srvsvc_NetSessDel(pipes_struct *p, struct srvsvc_NetSessDel *r)
DEBUG(5,("_srv_net_sess_del: %d\n", __LINE__));
-
done:
- SAFE_FREE(session_list);
-
return status;
}