svn commit: samba r16423 - in trunk/source: printing registry

jra at samba.org jra at samba.org
Tue Jun 20 19:06:51 GMT 2006


Author: jra
Date: 2006-06-20 19:06:50 +0000 (Tue, 20 Jun 2006)
New Revision: 16423

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

Log:
Fix possible null deref and a memory leak found by
examining Klockwork #1519. get_printer_subkeys()
could return zero without initializing it's return
pointer arg. Fixed this. Added free of subkey pointer
return in registry/reg_printing.c (interesting that
neithe Coverity or Klocwork found this one).
Jeremy.

Modified:
   trunk/source/printing/nt_printing.c
   trunk/source/registry/reg_printing.c


Changeset:
Modified: trunk/source/printing/nt_printing.c
===================================================================
--- trunk/source/printing/nt_printing.c	2006-06-20 18:30:24 UTC (rev 16422)
+++ trunk/source/printing/nt_printing.c	2006-06-20 19:06:50 UTC (rev 16423)
@@ -2770,6 +2770,8 @@
 	fstring	*subkeys_ptr = NULL;
 	fstring subkeyname;
 	
+	*subkeys = NULL;
+
 	if ( !data )
 		return 0;
 

Modified: trunk/source/registry/reg_printing.c
===================================================================
--- trunk/source/registry/reg_printing.c	2006-06-20 18:30:24 UTC (rev 16422)
+++ trunk/source/registry/reg_printing.c	2006-06-20 19:06:50 UTC (rev 16423)
@@ -346,8 +346,10 @@
 		if ( lookup_printerkey(printer->info_2->data, subkeyname) == -1 ) {
 			DEBUG(5,("key_printers_store_keys: adding key %s\n", 
 				existing_subkeys[i]));
-			if ( add_new_printer_key( printer->info_2->data, subkeyname ) == -1 ) 
+			if ( add_new_printer_key( printer->info_2->data, subkeyname ) == -1 ) {
+				SAFE_FREE( existing_subkeys );
 				return False;
+			}
 		}
 	}
 	
@@ -360,6 +362,8 @@
 	if ( printer )
 		free_a_printer( &printer, 2 );
 
+	SAFE_FREE( existing_subkeys );
+
 	return True;
 }
 



More information about the samba-cvs mailing list