if((outbuf = NewOutBuffer(&saved_outbuf))==NULL) {
DEBUG(0,("oplock_break: malloc fail for output buffer.\n"));
- set_InBuffer(saved_inbuf);
+ /* Free must be done before set.. */
free_InBuffer(inbuf);
+ set_InBuffer(saved_inbuf);
return False;
}
/* Restore the chain fnum. */
file_chain_restore();
- /* Restore the global In/Out buffers. */
- set_InBuffer(saved_inbuf);
- set_OutBuffer(saved_outbuf);
-
/* Free the buffers we've been using to recurse. */
+ /* Free must be done before set.. */
free_InBuffer(inbuf);
free_OutBuffer(outbuf);
+ /* Restore the global In/Out buffers. */
+ set_InBuffer(saved_inbuf);
+ set_OutBuffer(saved_outbuf);
+
/* We need this in case a readraw crossed on the wire. */
if(global_oplock_break)
global_oplock_break = False;