summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_spoolss_nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server/srv_spoolss_nt.c')
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 393ba64130..0efcbdae1c 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -4110,6 +4110,7 @@ uint32 _spoolss_enumprinterdata(const POLICY_HND *handle, uint32 idx,
DEBUG(6,("final values: [%d], [%d]\n", *out_value_len, *out_data_len));
+ free_a_printer(&printer, 2);
return NT_STATUS_NO_PROBLEMO;
}
@@ -4120,9 +4121,12 @@ uint32 _spoolss_enumprinterdata(const POLICY_HND *handle, uint32 idx,
if (!get_specific_param_by_index(*printer, 2, idx, value, &data, &type, &data_len)) {
safe_free(data);
+ free_a_printer(&printer, 2);
return ERROR_NO_MORE_ITEMS;
}
+ free_a_printer(&printer, 2);
+
/*
* the value is:
* - counted in bytes in the request
@@ -4194,6 +4198,7 @@ uint32 _spoolss_setprinterdata( const POLICY_HND *handle,
else
status = add_a_printer(*printer, 2);
+ free_a_printer(&printer, 2);
return status;
}