summaryrefslogtreecommitdiff
path: root/source3/rpc_server/spoolss
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2013-01-16 13:41:28 +0100
committerDavid Disseldorp <ddiss@samba.org>2013-01-17 17:11:37 +0100
commit3b94b64481a811482dbd01fd55c145a89f2c8c96 (patch)
treecd2aba510a225de50ce440848625ea6ff8b8f175 /source3/rpc_server/spoolss
parent8304fe73f69ea7de57bd2d331038c4664553a9bd (diff)
downloadsamba-3b94b64481a811482dbd01fd55c145a89f2c8c96.tar.gz
samba-3b94b64481a811482dbd01fd55c145a89f2c8c96.tar.bz2
samba-3b94b64481a811482dbd01fd55c145a89f2c8c96.zip
spoolss: make spoolss deal with ndr64 SetForm by using proper container object.
Guenther Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-by: David Disseldorp <ddiss@samba.org>
Diffstat (limited to 'source3/rpc_server/spoolss')
-rw-r--r--source3/rpc_server/spoolss/srv_spoolss_nt.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index b4f1bec15e..6d756bdf36 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -8799,7 +8799,7 @@ done:
WERROR _spoolss_SetForm(struct pipes_struct *p,
struct spoolss_SetForm *r)
{
- struct spoolss_AddFormInfo1 *form = r->in.info.info1;
+ struct spoolss_AddFormInfo1 *form;
const char *form_name = r->in.form_name;
int snum = -1;
WERROR status = WERR_OK;
@@ -8826,6 +8826,15 @@ WERROR _spoolss_SetForm(struct pipes_struct *p,
return WERR_ACCESS_DENIED;
}
+ if (r->in.info_ctr->level != 1) {
+ return WERR_INVALID_LEVEL;
+ }
+
+ form = r->in.info_ctr->info.info1;
+ if (!form) {
+ return WERR_INVALID_PARAM;
+ }
+
tmp_ctx = talloc_new(p->mem_ctx);
if (!tmp_ctx) {
return WERR_NOMEM;