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

jerry at samba.org jerry at samba.org
Wed Sep 27 03:43:43 GMT 2006


Author: jerry
Date: 2006-09-27 03:43:42 +0000 (Wed, 27 Sep 2006)
New Revision: 18940

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

Log:
Fix a few memory corruption bugs to make CreateKey() and DeleteKey() work


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


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_winreg_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_winreg_nt.c	2006-09-27 03:34:50 UTC (rev 18939)
+++ branches/SAMBA_3_0/source/rpc_server/srv_winreg_nt.c	2006-09-27 03:43:42 UTC (rev 18940)
@@ -1189,7 +1189,9 @@
 
 		/* copy the new key name (just the lower most keyname) */
 
-		pstrcpy( name, ptr+1 );
+		if ( (name = talloc_strdup( p->mem_ctx, ptr+1 )) == NULL ) {
+			return WERR_NOMEM;
+		}
 	}
 	else {
 		/* use the existing open key information */
@@ -1334,11 +1336,15 @@
 		pstrcpy( newkeyname, name );
 		ptr = strrchr( newkeyname, '\\' );
 		*ptr = '\0';
-		pstrcpy( name, ptr+1 );
+		if ( (name = talloc_strdup( p->mem_ctx, ptr+1 )) == NULL ) {
+			result = WERR_NOMEM;
+			goto done;
+		}
 
 		result = open_registry_key( p, &newparent_handle, &newparentinfo, parent, newkeyname, (REG_KEY_READ|REG_KEY_WRITE) );
-		if ( !W_ERROR_IS_OK(result) )
-			return result;
+		if ( !W_ERROR_IS_OK(result) ) {
+			goto done;
+		}
 	}
 	else {
 		/* use the existing open key information */



More information about the samba-cvs mailing list