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; }
