Hi Rex, What is the version of openchange you are experiencing this crash with? (git master, 3rd party repo?)
Cheers, Julien. On 18/06/14 16:53, Rex Johnston wrote: > I'll just cut straight to the end here. > > Running samba in the debugger... > > Program received signal SIGSEGV, Segmentation fault. > ndr_push_mapi_response (ndr=0xd285b0, ndr_flags=<optimized out>, r=0x0) > at ndr_mapi.c:561 > 561 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); > (gdb) bt > #0 ndr_push_mapi_response (ndr=0xd285b0, ndr_flags=<optimized out>, > r=0x0) at ndr_mapi.c:561 > #1 0x00007fffd8ac14f8 in dcesrv_EcDoRpcExt2 (r=0x13da110, > mem_ctx=0x307a9c0, dce_call=<optimized out>) at > mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.c:1792 > #2 dcesrv_exchange_emsmdb_dispatch (dce_call=<optimized out>, > mem_ctx=0x307a9c0, r=0x13da110, mapiproxy=<optimized out>) at > mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.c:1943 > #3 0x00007fffd9c198fc in mapiproxy_server_dispatch (dce_call=0x307a9c0, > mem_ctx=0x307a9c0, r=0x13da110, mapiproxy=0x7fffffffdf10) at > mapiproxy/libmapiproxy/dcesrv_mapiproxy_server.c:57 > #4 0x00007fffd9e57b40 in mapiproxy_op_dispatch (dce_call=0x307a9c0, > mem_ctx=0x307a9c0, r=0x13da110) at mapiproxy/dcesrv_mapiproxy.c:504 > #5 0x00007fffe5cb9fd2 in dcesrv_request (call=0x307a9c0) at > ../source4/rpc_server/dcerpc_server.c:965 > #6 dcesrv_process_ncacn_packet (dce_conn=<optimized out>, > pkt=<optimized out>, blob=...) at ../source4/rpc_server/dcerpc_server.c:1110 > #7 0x00007fffe5cbab59 in dcesrv_read_fragment_done (subreq=0x0) at > ../source4/rpc_server/dcerpc_server.c:1488 > #8 0x00007ffff4987698 in dcerpc_read_ncacn_packet_done (subreq=0x0) at > ../librpc/rpc/dcerpc_util.c:295 > #9 0x00007ffff151ac64 in tstream_readv_pdu_readv_done > (subreq=0x2bc4e40) at ../lib/tsocket/tsocket_helpers.c:319 > #10 0x00007ffff1519b64 in tstream_readv_done (subreq=0x0) at > ../lib/tsocket/tsocket.c:604 > #11 0x00007ffff3f170e2 in tevent_common_loop_immediate () from > /usr/lib/x86_64-linux-gnu/libtevent.so.0 > #12 0x00007ffff3f19b26 in ?? () from > /usr/lib/x86_64-linux-gnu/libtevent.so.0 > #13 0x00007ffff3f16860 in _tevent_loop_once () from > /usr/lib/x86_64-linux-gnu/libtevent.so.0 > #14 0x00007ffff3f169eb in tevent_common_loop_wait () from > /usr/lib/x86_64-linux-gnu/libtevent.so.0 > #15 0x0000000000409459 in binary_smbd_main (argc=<optimized out>, > argv=<optimized out>, binary_name=0x40bf95 "samba") at > ../source4/smbd/server.c:486 > #16 0x00007ffff3b7476d in __libc_start_main () from > /lib/x86_64-linux-gnu/libc.so.6 > #17 0x0000000000405631 in _start () > (gdb) print r > $1 = (const struct mapi_response *) 0x0 > > > I've altered mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.c:1782 > > if( !( mapi_response = EcDoRpc_process_transaction(mem_ctx, > emsmdbp_ctx, mapi2k7_request.mapi_request) ) ) // hmmm, Rex > return MAPI_E_INVALID_OBJECT; > > It seems to have stopped the null pointer problem, but i have absolutely > no idea what it should do when EcDoRpc_process_transaction() returns NULL, > or even what MAPI_E_INVALID_OBJECT means. > > Cheers, Rex > -- Julien Kerihuel [email protected] OpenChange Project Founder Twitter: http://twitter.com/jkerihuel GPG Fingerprint: 0B55 783D A781 6329 108A B609 7EF6 FE11 A35F 1F79
signature.asc
Description: OpenPGP digital signature
