From 2ed3ab021deb8e091a6a1a077010824f31b6d5bf Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 25 Aug 2004 02:06:08 +0000 Subject: r2038: get rid of the optimisation in the dcerpc server that tries to avoid a data copy by playing internal games with DATA_BLOB and free(). (This used to be commit 5894b5c0f32f75734151c6c915b296204b7825ac) --- source4/rpc_server/dcerpc_server.c | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index c243d7e4f9..f7c4689590 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -856,32 +856,6 @@ NTSTATUS dcesrv_input(struct dcesrv_connection *dce_conn, const DATA_BLOB *data) { NTSTATUS status; - /* handle the very common case that the input contains a full packet and there - is no partial packet pending. In this case we can avoid a copy of the - data */ - if (dce_conn->partial_input.length == 0) { - dce_conn->partial_input = *data; - /* make sure that dce_partial_advance doesn't free this data */ - dce_conn->partial_input.free = NULL; - while (dce_full_packet(&dce_conn->partial_input)) { - status = dcesrv_input_process(dce_conn); - if (!NT_STATUS_IS_OK(status)) { - return status; - } - } - if (dce_conn->partial_input.length) { - /* there was some data left over. We have to copy this - as the caller may free the data */ - dce_conn->partial_input = - data_blob(dce_conn->partial_input.data, - dce_conn->partial_input.length); - if (!dce_conn->partial_input.data) { - return NT_STATUS_NO_MEMORY; - } - } - return NT_STATUS_OK; - } - dce_conn->partial_input.data = Realloc(dce_conn->partial_input.data, dce_conn->partial_input.length + data->length); if (!dce_conn->partial_input.data) { -- cgit