Author: jra Date: 2006-03-13 06:48:48 +0000 (Mon, 13 Mar 2006) New Revision: 14300
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14300 Log: Fix coverity #225. In a loop we were forgetting to free resources on error exit path. Jeremy. Modified: trunk/source/rpc_server/srv_spoolss_nt.c Changeset: Modified: trunk/source/rpc_server/srv_spoolss_nt.c =================================================================== --- trunk/source/rpc_server/srv_spoolss_nt.c 2006-03-13 06:48:41 UTC (rev 14299) +++ trunk/source/rpc_server/srv_spoolss_nt.c 2006-03-13 06:48:48 UTC (rev 14300) @@ -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);