From cea6fd0b0ae4131e8cb9e541a5c2e91ce226e5cd Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 7 Mar 2003 00:34:43 +0000 Subject: Fix noticed by Corny.Bondad@hp.com. Ensure we free up memory on error exit. Jeremy. (This used to be commit 1cbd53dc3cd2d56f5e62d42fed5d589efcecb8f8) --- source3/smbd/ipc.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source3') diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c index 08337c2901..67c5da01f3 100644 --- a/source3/smbd/ipc.c +++ b/source3/smbd/ipc.c @@ -397,6 +397,7 @@ int reply_trans(connection_struct *conn, char *inbuf,char *outbuf, int size, int if (tpscnt) { if((params = (char *)malloc(tpscnt)) == NULL) { DEBUG(0,("reply_trans: param malloc fail for %u bytes !\n", tpscnt)); + SAFE_FREE(data); END_PROFILE(SMBtrans); return(ERROR_DOS(ERRDOS,ERRnomem)); } @@ -412,6 +413,8 @@ int reply_trans(connection_struct *conn, char *inbuf,char *outbuf, int size, int int i; if((setup = (uint16 *)malloc(suwcnt*sizeof(uint16))) == NULL) { DEBUG(0,("reply_trans: setup malloc fail for %u bytes !\n", (unsigned int)(suwcnt * sizeof(uint16)))); + SAFE_FREE(data); + SAFE_FREE(params); END_PROFILE(SMBtrans); return(ERROR_DOS(ERRDOS,ERRnomem)); } -- cgit