summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim McDonough <jmcd@samba.org>2003-10-22 20:59:46 +0000
committerJim McDonough <jmcd@samba.org>2003-10-22 20:59:46 +0000
commitbca9e7d3258058594daaaedd2518fcb2c793ded0 (patch)
tree39d1dbcda7075a1b2f3dbac16796b539aad185c6
parent356e0437674d369ab90001910e257bfaf11cafe6 (diff)
downloadsamba-bca9e7d3258058594daaaedd2518fcb2c793ded0.tar.gz
samba-bca9e7d3258058594daaaedd2518fcb2c793ded0.tar.bz2
samba-bca9e7d3258058594daaaedd2518fcb2c793ded0.zip
Be sure referent ID is updated for incoming structures, too.
(This used to be commit 00e0aba2cf97e686a0b6b4d7bab50afbc5e97ac1)
-rw-r--r--source3/rpc_parse/parse_epmapper.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source3/rpc_parse/parse_epmapper.c b/source3/rpc_parse/parse_epmapper.c
index 61704136a0..7a5f147c50 100644
--- a/source3/rpc_parse/parse_epmapper.c
+++ b/source3/rpc_parse/parse_epmapper.c
@@ -327,9 +327,17 @@ BOOL epm_io_tower_array(const char *desc, EPM_TOWER_ARRAY *array,
return False;
}
}
- for (i=0; i < array->count; i++)
- if (!prs_uint32("ref_id", ps, depth, &array->tower_ref_ids[i]))
+ for (i=0; i < array->count; i++) {
+ if (!prs_uint32("ref_id", ps, depth, &array->tower_ref_ids[i])) {
return False;
+ } else {
+ if (array->tower_ref_ids[i] > internal_referent_id) {
+ internal_referent_id = array->tower_ref_ids[i];
+ }
+ }
+ }
+
+
if (!prs_set_offset(ps, prs_offset(ps) + array->offset))
return False;
@@ -418,8 +426,10 @@ BOOL epm_io_q_map(const char *desc, EPM_Q_MAP *io_map, prs_struct *ps,
if (!epm_io_handle("handle", &io_map->handle, ps, depth))
return False;
- if (!prs_uint32("max_towers", ps, 0, &io_map->tower_ref_id))
+ if (!prs_uint32("referent_id", ps, 0, &io_map->tower_ref_id))
return False;
+ if (io_map->tower_ref_id > internal_referent_id)
+ internal_referent_id = io_map->tower_ref_id;
/* HACK: We need a more elegant way of doing this */
if (UNMARSHALLING(ps)) {