svn commit: samba r9264 - branches/SAMBA_3_0/source/rpc_server trunk/source/rpc_server

jerry at samba.org jerry at samba.org
Fri Aug 12 16:00:56 GMT 2005


Author: jerry
Date: 2005-08-12 16:00:54 +0000 (Fri, 12 Aug 2005)
New Revision: 9264

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

Log:
fix valgrind invalid write error in enumprinterdata()
Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
   trunk/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	2005-08-12 15:59:37 UTC (rev 9263)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2005-08-12 16:00:54 UTC (rev 9264)
@@ -8040,13 +8040,14 @@
 		/* data - counted in bytes */
 
 		*out_max_data_len = in_data_len;
-		if ( (*data_out = (uint8 *)TALLOC_ZERO(p->mem_ctx, in_data_len*sizeof(uint8))) == NULL) 
+		if ( in_data_len && (*data_out = (uint8 *)TALLOC_ZERO(p->mem_ctx, in_data_len*sizeof(uint8))) == NULL) 
 		{
 			result = WERR_NOMEM;
 			goto done;
 		}
 		data_len = regval_size(val);
-		memcpy( *data_out, regval_data_p(val), data_len );
+		if ( *data_out )
+			memcpy( *data_out, regval_data_p(val), data_len );
 		*out_data_len = data_len;
 	}
 

Modified: trunk/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- trunk/source/rpc_server/srv_spoolss_nt.c	2005-08-12 15:59:37 UTC (rev 9263)
+++ trunk/source/rpc_server/srv_spoolss_nt.c	2005-08-12 16:00:54 UTC (rev 9264)
@@ -8040,13 +8040,14 @@
 		/* data - counted in bytes */
 
 		*out_max_data_len = in_data_len;
-		if ( (*data_out = (uint8 *)TALLOC_ZERO(p->mem_ctx, in_data_len*sizeof(uint8))) == NULL) 
+		if ( in_data_len && (*data_out = (uint8 *)TALLOC_ZERO(p->mem_ctx, in_data_len*sizeof(uint8))) == NULL) 
 		{
 			result = WERR_NOMEM;
 			goto done;
 		}
 		data_len = regval_size(val);
-		memcpy( *data_out, regval_data_p(val), data_len );
+		if ( *data_out )
+			memcpy( *data_out, regval_data_p(val), data_len );
 		*out_data_len = data_len;
 	}
 



More information about the samba-cvs mailing list