git.samba.org
/
abartlet
/
samba.git
/
.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9d2d075
)
s3-svcctl: Fix _svcctl_EnumServicesStatusW() crash bug on too small buffer.
author
Günther Deschner
<gd@samba.org>
Mon, 6 Apr 2009 23:10:41 +0000
(
01:10
+0200)
committer
Günther Deschner
<gd@samba.org>
Mon, 6 Apr 2009 23:16:30 +0000
(
01:16
+0200)
Guenther
source3/rpc_server/srv_svcctl_nt.c
patch
|
blob
|
history
diff --git
a/source3/rpc_server/srv_svcctl_nt.c
b/source3/rpc_server/srv_svcctl_nt.c
index 3ca85aa755582e724021f2fce04f08672ef606c5..848cdc25d08de60e5ec5dbae714dadde644ad575 100644
(file)
--- a/
source3/rpc_server/srv_svcctl_nt.c
+++ b/
source3/rpc_server/srv_svcctl_nt.c
@@
-468,9
+468,11
@@
WERROR _svcctl_EnumServicesStatusW(pipes_struct *p,
}
blob = ndr_push_blob(ndr);
+ if (blob.length >= r->in.buf_size) {
+ memcpy(r->out.service, blob.data, r->in.buf_size);
+ }
}
- r->out.service = blob.data;
*r->out.bytes_needed = (buffer_size > r->in.buf_size) ? buffer_size : r->in.buf_size;
*r->out.services_returned = (uint32)num_services;
*r->out.resume_handle = 0x0;