Author: vlendec Date: 2007-07-24 11:48:35 +0000 (Tue, 24 Jul 2007) New Revision: 24033
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24033 Log: We need to be able to cope with packet_handler calling itself recursively Modified: branches/SAMBA_3_2/source/lib/packet.c branches/SAMBA_3_2_0/source/lib/packet.c Changeset: Modified: branches/SAMBA_3_2/source/lib/packet.c =================================================================== --- branches/SAMBA_3_2/source/lib/packet.c 2007-07-24 11:47:37 UTC (rev 24032) +++ branches/SAMBA_3_2/source/lib/packet.c 2007-07-24 11:48:35 UTC (rev 24033) @@ -136,15 +136,16 @@ SMB_ASSERT(length <= ctx->in.length); - data.data = ctx->in.data; - data.length = length; + data = data_blob(ctx->in.data, length); - *status = callback(&data, private_data); - memmove(ctx->in.data, ctx->in.data + length, ctx->in.length - length); ctx->in.length -= length; + *status = callback(&data, private_data); + + data_blob_free(&data); + return True; } Modified: branches/SAMBA_3_2_0/source/lib/packet.c =================================================================== --- branches/SAMBA_3_2_0/source/lib/packet.c 2007-07-24 11:47:37 UTC (rev 24032) +++ branches/SAMBA_3_2_0/source/lib/packet.c 2007-07-24 11:48:35 UTC (rev 24033) @@ -136,15 +136,16 @@ SMB_ASSERT(length <= ctx->in.length); - data.data = ctx->in.data; - data.length = length; + data = data_blob(ctx->in.data, length); - *status = callback(&data, private_data); - memmove(ctx->in.data, ctx->in.data + length, ctx->in.length - length); ctx->in.length -= length; + *status = callback(&data, private_data); + + data_blob_free(&data); + return True; }
