summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/rpc_client/cli_lsarpc.c2
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c5
-rw-r--r--source3/smbd/nttrans.c18
3 files changed, 15 insertions, 10 deletions
diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c
index 8362c1d172..239d38c358 100644
--- a/source3/rpc_client/cli_lsarpc.c
+++ b/source3/rpc_client/cli_lsarpc.c
@@ -386,7 +386,7 @@ obtain a server's SAM SID and save it in the secrets database
BOOL cli_lsa_get_domain_sid(struct cli_state *cli, char *server)
{
- fstring domain, key;
+ fstring domain;
POLICY_HND pol;
DOM_SID sid;
BOOL res, res2, res3;
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;
}
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 68844f2bca..e3874e1b3e 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -1838,7 +1838,7 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
char *data = *ppdata;
prs_struct pd;
SEC_DESC *psd = NULL;
- size_t sec_desc_size;
+ size_t sd_size;
files_struct *fsp = file_fsp(params,0);
@@ -1855,14 +1855,14 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
* Get the permissions to return.
*/
- if((sec_desc_size = get_nt_acl(fsp, &psd)) == 0)
+ if((sd_size = get_nt_acl(fsp, &psd)) == 0)
return(UNIXERROR(ERRDOS,ERRnoaccess));
- DEBUG(3,("call_nt_transact_query_security_desc: sec_desc_size = %d.\n",(int)sec_desc_size));
+ DEBUG(3,("call_nt_transact_query_security_desc: sd_size = %d.\n",(int)sd_size));
- SIVAL(params,0,(uint32)sec_desc_size);
+ SIVAL(params,0,(uint32)sd_size);
- if(max_data_count < sec_desc_size) {
+ if(max_data_count < sd_size) {
free_sec_desc(&psd);
@@ -1875,13 +1875,13 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
* Allocate the data we will point this at.
*/
- data = *ppdata = Realloc(*ppdata, sec_desc_size);
+ data = *ppdata = Realloc(*ppdata, sd_size);
if(data == NULL) {
free_sec_desc(&psd);
return(ERROR(ERRDOS,ERRnomem));
}
- memset(data, '\0', sec_desc_size);
+ memset(data, '\0', sd_size);
/*
* Init the parse struct we will marshall into.
@@ -1894,7 +1894,7 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
* allocated.
*/
- prs_give_memory( &pd, data, (uint32)sec_desc_size, False);
+ prs_give_memory( &pd, data, (uint32)sd_size, False);
/*
* Finally, linearize into the outgoing buffer.
@@ -1916,7 +1916,7 @@ security descriptor.\n"));
free_sec_desc(&psd);
- send_nt_replies(inbuf, outbuf, bufsize, 0, params, 4, data, (int)sec_desc_size);
+ send_nt_replies(inbuf, outbuf, bufsize, 0, params, 4, data, (int)sd_size);
return -1;
}