svn commit: samba r14299 - in branches/SAMBA_3_0/source/rpc_server: .

jra at samba.org jra at samba.org
Mon Mar 13 06:48:42 GMT 2006


Author: jra
Date: 2006-03-13 06:48:41 +0000 (Mon, 13 Mar 2006)
New Revision: 14299

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14299

Log:
Fix coverity #225. In a loop we were forgetting to free
resources on error exit path.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2006-03-13 06:44:10 UTC (rev 14298)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2006-03-13 06:48:41 UTC (rev 14299)
@@ -6871,8 +6871,8 @@
 	int ndrivers;
 	uint32 version;
 	fstring *list = NULL;
+	DRIVER_INFO_3 *driver_info_3=NULL;
 	NT_PRINTER_DRIVER_INFO_LEVEL driver;
-	DRIVER_INFO_3 *driver_info_3=NULL;
 	WERROR result = WERR_OK;
 
 	*returned=0;
@@ -6882,8 +6882,10 @@
 		ndrivers=get_ntdrivers(&list, architecture, version);
 		DEBUGADD(4,("we have:[%d] drivers in environment [%s] and version [%d]\n", ndrivers, architecture, version));
 
-		if(ndrivers == -1)
+		if(ndrivers == -1) {
+			SAFE_FREE(driver_info_3);
 			return WERR_NOMEM;
+		}
 
 		if(ndrivers != 0) {
 			if((driver_info_3=SMB_REALLOC_ARRAY(driver_info_3, DRIVER_INFO_3, *returned+ndrivers )) == NULL) {
@@ -6936,8 +6938,9 @@
 	}
 
 out:
-	for (i=0; i<*returned; i++)
+	for (i=0; i<*returned; i++) {
 		SAFE_FREE(driver_info_3[i].dependentfiles);
+	}
 
 	SAFE_FREE(driver_info_3);
 	



More information about the samba-cvs mailing list