summaryrefslogtreecommitdiff
path: root/source3/rpcclient/cmd_spoolss.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-08-29 14:55:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:03:25 -0500
commit44707ad2e00a91f459e80efbe8f362b5853b0a62 (patch)
tree438124f4550315df722d959891b66e669222f8e8 /source3/rpcclient/cmd_spoolss.c
parent77670a2ec33275ae08a37606ee15bf0170b7fcb3 (diff)
downloadsamba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.gz
samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.bz2
samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.zip
r9739: conver the reg_objects (REGSUBKEY_CTR & REGVAL_CTR) to use
the new talloc() features: Note that the REGSUB_CTR and REGVAL_CTR objects *must* be talloc()'d since the methods use the object pointer as the talloc context for internal private data. There is no longer a regXXX_ctr_intit() and regXXX_ctr_destroy() pair of functions. Simply TALLOC_ZERO_P() and TALLOC_FREE() the object. Also had to convert the printer_info_2->NT_PRINTER_DATA field to be talloc()'d as well. This is just a stop on the road to cleaning up the printer memory management. (This used to be commit ef721333ab9639cb5346067497e99fbd0d4425dd)
Diffstat (limited to 'source3/rpcclient/cmd_spoolss.c')
-rw-r--r--source3/rpcclient/cmd_spoolss.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c
index 6c15c91ea1..1b3d3b7e0c 100644
--- a/source3/rpcclient/cmd_spoolss.c
+++ b/source3/rpcclient/cmd_spoolss.c
@@ -2293,7 +2293,7 @@ static WERROR cmd_spoolss_enum_data_ex( struct cli_state *cli,
fstring servername, user;
const char *keyname = NULL;
POLICY_HND hnd;
- REGVAL_CTR ctr;
+ REGVAL_CTR *ctr = NULL;
if (argc != 3) {
printf("Usage: %s printername <keyname>\n", argv[0]);
@@ -2322,16 +2322,19 @@ static WERROR cmd_spoolss_enum_data_ex( struct cli_state *cli,
/* Enumerate subkeys */
- result = cli_spoolss_enumprinterdataex(cli, mem_ctx, &hnd, keyname, &ctr);
+ if ( !(ctr = TALLOC_ZERO_P( mem_ctx, REGVAL_CTR )) )
+ return WERR_NOMEM;
+
+ result = cli_spoolss_enumprinterdataex(cli, mem_ctx, &hnd, keyname, ctr);
if (!W_ERROR_IS_OK(result))
goto done;
- for (i=0; i < ctr.num_values; i++) {
- display_reg_value(*(ctr.values[i]));
+ for (i=0; i < ctr->num_values; i++) {
+ display_reg_value(*(ctr->values[i]));
}
- regval_ctr_destroy(&ctr);
+ TALLOC_FREE( ctr );
done:
if (got_hnd)