1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-08 04:58:40 +03:00

fix some possible memleaks and not tested reallocs spotted by Andreas Moroder

This commit is contained in:
Simo Sorce -
parent 211aeffa1a
commit d30939a091
3 changed files with 14 additions and 5 deletions

View File

@ -467,7 +467,7 @@ static BOOL get_sam_group_entries(struct getent_state *ent)
{
NTSTATUS status;
uint32 num_entries;
struct acct_info *name_list = NULL;
struct acct_info *name_list = NULL, *tnl;
if (ent->got_all_sam_entries) {
return False;
@ -510,10 +510,17 @@ static BOOL get_sam_group_entries(struct getent_state *ent)
if (num_entries) {
name_list = Realloc(name_list,
sizeof(struct acct_info) *
(ent->num_sam_entries +
num_entries));
tnl = Realloc(name_list,
sizeof(struct acct_info) *
(ent->num_sam_entries +
num_entries));
if(tnl == NULL)
{
DEBUG(0,("get_sam_group_entries: unable ro realloc a structure!\n"));
SAFE_FREE(name_list);
return False;
}
else name_list = tnl;
memcpy(&name_list[ent->num_sam_entries],
sam_grp_entries,

View File

@ -722,6 +722,7 @@ NTSTATUS _lsa_enum_privsaccount(pipes_struct *p, LSA_Q_ENUMPRIVSACCOUNT *q_u, LS
if ( (map.privilege & privs[i].se_priv) == privs[i].se_priv) {
set=(LUID_ATTR *)talloc_realloc(p->mem_ctx, set, (count+1)*sizeof(LUID_ATTR));
if (set == NULL) return NT_STATUS_NO_MEMORY;
set[count].luid.low=privs[i].se_priv;
set[count].luid.high=1;

View File

@ -40,6 +40,7 @@ main()
DEBUGLEVEL=10;
ctx=talloc_init();
if (!ctx) exit(1);
prs_init(&ps, 1600, 4, ctx, MARSHALL);