diff options
author | Gerald Carter <jerry@samba.org> | 2005-08-12 16:00:54 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2005-08-12 16:00:54 +0000 |
commit | 5a9f0230afdac582abf5f4932d17d2137aff0d76 (patch) | |
tree | 6c0554b5037c4943f769604c78d5f367f22775ce /source/rpc_server | |
parent | 0e3c362a64c4f2bd94d6d607b9b2cd0d7aa60cf2 (diff) | |
download | samba-5a9f0230afdac582abf5f4932d17d2137aff0d76.tar.gz samba-5a9f0230afdac582abf5f4932d17d2137aff0d76.tar.xz samba-5a9f0230afdac582abf5f4932d17d2137aff0d76.zip |
r9264: fix valgrind invalid write error in enumprinterdata()
Diffstat (limited to 'source/rpc_server')
-rw-r--r-- | source/rpc_server/srv_spoolss_nt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/rpc_server/srv_spoolss_nt.c b/source/rpc_server/srv_spoolss_nt.c index 692dacf1599..5391ac5f41a 100644 --- a/source/rpc_server/srv_spoolss_nt.c +++ b/source/rpc_server/srv_spoolss_nt.c @@ -8040,13 +8040,14 @@ WERROR _spoolss_enumprinterdata(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATA *q_u, S /* 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; } |