1
0
mirror of https://github.com/samba-team/samba.git synced 2025-09-07 21:44:22 +03:00

r19468: Fix some potential NULL dereferences

This commit is contained in:
Volker Lendecke
2006-10-23 20:11:12 +00:00
committed by Gerald (Jerry) Carter
parent 88ac17db19
commit c8ed412976

View File

@@ -503,6 +503,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
TALLOC_CTX *ctx = p->mem_ctx; TALLOC_CTX *ctx = p->mem_ctx;
struct share_iterator *shares; struct share_iterator *shares;
struct share_params *share; struct share_params *share;
WERROR result = WERR_NOMEM;
DEBUG(5,("init_srv_share_info_ctr\n")); DEBUG(5,("init_srv_share_info_ctr\n"));
@@ -526,39 +527,69 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
switch (info_level) { switch (info_level) {
case 0: case 0:
ctr->ctr0 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr0); if (!(ctr->ctr0 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr0))) {
goto done;
}
break; break;
case 1: case 1:
ctr->ctr1 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1); if (!(ctr->ctr1 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1))) {
goto done;
}
break; break;
case 2: case 2:
ctr->ctr2 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr2); if (!(ctr->ctr2 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr2))) {
goto done;
}
break; break;
case 501: case 501:
ctr->ctr501 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr501); if (!(ctr->ctr501 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr501))) {
goto done;
}
break; break;
case 502: case 502:
ctr->ctr502 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr502); if (!(ctr->ctr502 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr502))) {
goto done;
}
break; break;
case 1004: case 1004:
ctr->ctr1004 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1004); if (!(ctr->ctr1004 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1004))) {
goto done;
}
break; break;
case 1005: case 1005:
ctr->ctr1005 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1005); if (!(ctr->ctr1005 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1005))) {
goto done;
}
break; break;
case 1006: case 1006:
ctr->ctr1006 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1006); if (!(ctr->ctr1006 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1006))) {
goto done;
}
break; break;
case 1007: case 1007:
ctr->ctr1007 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1007); if (!(ctr->ctr1007 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1007))) {
goto done;
}
break; break;
case 1501: case 1501:
ctr->ctr1501 = talloc_zero(p->mem_ctx, struct srvsvc_NetShareCtr1501); if (!(ctr->ctr1501 = talloc_zero(
p->mem_ctx, struct srvsvc_NetShareCtr1501))) {
goto done;
}
break; break;
default: default:
DEBUG(5,("init_srv_share_info_ctr: unsupported switch " DEBUG(5,("init_srv_share_info_ctr: unsupported switch "
"value %d\n", info_level)); "value %d\n", info_level));
return WERR_UNKNOWN_LEVEL; return WERR_UNKNOWN_LEVEL;
} }
while ((share = next_share(shares)) != NULL) { while ((share = next_share(shares)) != NULL) {
@@ -707,7 +738,10 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
TALLOC_FREE(share); TALLOC_FREE(share);
} }
return WERR_OK; result = WERR_OK;
done:
TALLOC_FREE(shares);
return result;
} }
/******************************************************************* /*******************************************************************