diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-12-16 11:25:29 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-12-16 11:25:29 +1100 |
commit | 9057c2522adf8d17a07fd3c747d7fed06a523af6 (patch) | |
tree | 36c6d38984837d24ae604f6d9bc2ae794bd45640 | |
parent | 530758dc2a6dd6dce083789b328e16e51ba6573d (diff) | |
download | samba-9057c2522adf8d17a07fd3c747d7fed06a523af6.tar.gz samba-9057c2522adf8d17a07fd3c747d7fed06a523af6.tar.bz2 samba-9057c2522adf8d17a07fd3c747d7fed06a523af6.zip |
A more-commented version of rpc_server crash fix, matching closer the
previous behaviour for the 'bad bind' case.
(It is only close, not matching - Windows 2008 sends a different,
non-zero, assoc_group_id each time)
Andrew Bartlett
-rw-r--r-- | source4/rpc_server/dcerpc_server.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index 5f055ae342..d27a8b90de 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -648,7 +648,20 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call) pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags; pkt.u.bind_ack.max_xmit_frag = 0x2000; pkt.u.bind_ack.max_recv_frag = 0x2000; - pkt.u.bind_ack.assoc_group_id = iface?call->context->assoc_group_id:0; + + /* + make it possible for iface->bind() to specify the assoc_group_id + This helps the openchange mapiproxy plugin to work correctly. + + metze + */ + if (call->context) { + pkt.u.bind_ack.assoc_group_id = call->context->assoc_group_id; + } else { + /* we better pick something - this chosen so as to send a non zero assoc_group_id (matching windows), it also matches samba3 */ + pkt.u.bind_ack.assoc_group_id = SAMBA_ASSOC_GROUP; + } + if (iface) { /* FIXME: Use pipe name as specified by endpoint instead of interface name */ pkt.u.bind_ack.secondary_address = talloc_asprintf(call, "\\PIPE\\%s", iface->name); |