summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server')
-rwxr-xr-xsource3/rpc_server/srv_spoolss.c11
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c5
2 files changed, 14 insertions, 2 deletions
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c
index 1cf187d825..1649df8608 100755
--- a/source3/rpc_server/srv_spoolss.c
+++ b/source3/rpc_server/srv_spoolss.c
@@ -759,6 +759,17 @@ static BOOL api_spoolss_addprinterex(uint16 vuid, prs_struct *data, prs_struct *
return False;
}
+ if (q_u.info.info_ptr!=0) {
+ switch (q_u.info.level) {
+ case 1:
+ safe_free(q_u.info.info_1);
+ break;
+ case 2:
+ safe_free(q_u.info.info_2);
+ break;
+ }
+ }
+
return True;
}
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 340d776493..de994a1b5d 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -2855,9 +2855,10 @@ uint32 _spoolss_setprinter(const POLICY_HND *handle, uint32 level,
case 2:
return update_printer(handle, level, info, devmode_ctr.devmode);
break;
+ default:
+ return ERROR_INVALID_LEVEL;
+ break;
}
-
- return NT_STATUS_INVALID_INFO_CLASS;
}
/****************************************************************************