svn commit: samba r22576 - in branches: SAMBA_3_0/source/rpc_parse
SAMBA_3_0_25/source/rpc_parse
jra at samba.org
jra at samba.org
Sun Apr 29 20:57:05 GMT 2007
Author: jra
Date: 2007-04-29 20:57:04 +0000 (Sun, 29 Apr 2007)
New Revision: 22576
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22576
Log:
Fix marshalling bug in aliasmem.
Jeremy.
Modified:
branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
branches/SAMBA_3_0_25/source/rpc_parse/parse_samr.c
Changeset:
Modified: branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_samr.c 2007-04-29 20:37:59 UTC (rev 22575)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_samr.c 2007-04-29 20:57:04 UTC (rev 22576)
@@ -4834,9 +4834,15 @@
if(!prs_uint32("num_sids1", ps, depth, &r_u->num_sids1))
return False;
- ptr_sid = TALLOC_ARRAY(ps->mem_ctx, uint32, r_u->num_sids1);
- if (!ptr_sid) {
- return False;
+ if (UNMARSHALLING(ps)) {
+ if (r_u->num_sids1) {
+ ptr_sid = TALLOC_ARRAY(ps->mem_ctx, uint32, r_u->num_sids1);
+ if (!ptr_sid) {
+ return False;
+ }
+ } else {
+ ptr_sid = NULL;
+ }
}
for (i = 0; i < r_u->num_sids1; i++) {
@@ -4846,7 +4852,14 @@
}
if (UNMARSHALLING(ps)) {
- r_u->sid = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, r_u->num_sids1);
+ if (r_u->num_sids1) {
+ r_u->sid = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, r_u->num_sids1);
+ if (!r_u->sid) {
+ return False;
+ }
+ } else {
+ r_u->sid = NULL;
+ }
}
for (i = 0; i < r_u->num_sids1; i++) {
Modified: branches/SAMBA_3_0_25/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0_25/source/rpc_parse/parse_samr.c 2007-04-29 20:37:59 UTC (rev 22575)
+++ branches/SAMBA_3_0_25/source/rpc_parse/parse_samr.c 2007-04-29 20:57:04 UTC (rev 22576)
@@ -4764,9 +4764,15 @@
if(!prs_uint32("num_sids1", ps, depth, &r_u->num_sids1))
return False;
- ptr_sid = TALLOC_ARRAY(ps->mem_ctx, uint32, r_u->num_sids1);
- if (!ptr_sid) {
- return False;
+ if (UNMARSHALLING(ps)) {
+ if (r_u->num_sids1) {
+ ptr_sid = TALLOC_ARRAY(ps->mem_ctx, uint32, r_u->num_sids1);
+ if (!ptr_sid) {
+ return False;
+ }
+ } else {
+ ptr_sid = NULL;
+ }
}
for (i = 0; i < r_u->num_sids1; i++) {
@@ -4776,7 +4782,14 @@
}
if (UNMARSHALLING(ps)) {
- r_u->sid = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, r_u->num_sids1);
+ if (r_u->num_sids1) {
+ r_u->sid = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, r_u->num_sids1);
+ if (!r_u->sid) {
+ return False;
+ }
+ } else {
+ r_u->sid = NULL;
+ }
}
for (i = 0; i < r_u->num_sids1; i++) {
More information about the samba-cvs
mailing list