diff options
author | Jim McDonough <jmcd@samba.org> | 2003-10-22 20:59:46 +0000 |
---|---|---|
committer | Jim McDonough <jmcd@samba.org> | 2003-10-22 20:59:46 +0000 |
commit | bca9e7d3258058594daaaedd2518fcb2c793ded0 (patch) | |
tree | 39d1dbcda7075a1b2f3dbac16796b539aad185c6 /source3/rpc_parse | |
parent | 356e0437674d369ab90001910e257bfaf11cafe6 (diff) | |
download | samba-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)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r-- | source3/rpc_parse/parse_epmapper.c | 16 |
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)) { |