{
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;
}
ss0->array = NULL;
ss0->count = 0;
}
- SAFE_FREE(session_list);
}
/*******************************************************************
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);
if ((*snum) >= (*stot)) {
(*snum) = 0;
}
-
- SAFE_FREE(session_list);
}
/*******************************************************************
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__));
DEBUG(5,("_srv_net_sess_del: %d\n", __LINE__));
-
done:
- SAFE_FREE(session_list);
-
return status;
}
return False;
}
- num_sessions = list_sessions(&session_list);
+ num_sessions = list_sessions(tmp_talloc_ctx(), &session_list);
if (mdrcnt > 0) {
*rdata = SMB_REALLOC_LIMIT(*rdata,mdrcnt);
********************************************************************/
struct session_list {
+ TALLOC_CTX *mem_ctx;
int count;
struct sessionid *sessions;
};
i = sesslist->count;
- sesslist->sessions = SMB_REALLOC_ARRAY(sesslist->sessions, struct sessionid, i+1);
+ sesslist->sessions = TALLOC_REALLOC_ARRAY(
+ sesslist->mem_ctx, sesslist->sessions, struct sessionid, i+1);
+
if (!sesslist->sessions) {
sesslist->count = 0;
return -1;
/********************************************************************
********************************************************************/
-int list_sessions(struct sessionid **session_list)
+int list_sessions(TALLOC_CTX *mem_ctx, struct sessionid **session_list)
{
struct session_list sesslist;
+ sesslist.mem_ctx = mem_ctx;
sesslist.count = 0;
sesslist.sessions = NULL;