1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

r16424: 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.
(This used to be commit 4fbeae1a3a)
This commit is contained in:
Jeremy Allison 2006-06-20 19:06:57 +00:00 committed by Gerald (Jerry) Carter
parent a167c2c09e
commit f014291edd
2 changed files with 7 additions and 1 deletions

View File

@ -2767,6 +2767,8 @@ int get_printer_subkeys( NT_PRINTER_DATA *data, const char* key, fstring **subke
fstring *subkeys_ptr = NULL;
fstring subkeyname;
*subkeys = NULL;
if ( !data )
return 0;

View File

@ -346,8 +346,10 @@ static BOOL key_printers_store_keys( const char *key, REGSUBKEY_CTR *subkeys )
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 @@ static BOOL key_printers_store_keys( const char *key, REGSUBKEY_CTR *subkeys )
if ( printer )
free_a_printer( &printer, 2 );
SAFE_FREE( existing_subkeys );
return True;
}