summaryrefslogtreecommitdiff
path: root/source3/printing/printing.c
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2019-10-31 12:44:45 +0100
committerAndreas Schneider <asn@cryptomilk.org>2019-11-07 14:16:41 +0000
commit81ae199bb72886f2f1ed87b22b4c75b6b99c72f6 (patch)
tree49b9a83646e1064f006aa9c59223c0fa2a0c4001 /source3/printing/printing.c
parentdcb555c06a6341871b691dab3758e7de04110282 (diff)
downloadsamba-81ae199bb72886f2f1ed87b22b4c75b6b99c72f6.tar.gz
s3: replace standard_sub_advanced with talloc_sub_advanced in one place
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13745 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/printing/printing.c')
-rw-r--r--source3/printing/printing.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 42036a56bb5..0ad07046850 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -2819,7 +2819,7 @@ WERROR print_job_start(const struct auth_session_info *server_info,
struct spoolss_DeviceMode *devmode, uint32_t *_jobid)
{
uint32_t jobid;
- char *path;
+ char *path = NULL, *userstr = NULL;
struct printjob pjob;
const char *sharename = lp_const_servicename(snum);
struct tdb_print_db *pdb = get_print_db_byname(sharename);
@@ -2866,13 +2866,19 @@ WERROR print_job_start(const struct auth_session_info *server_info,
fstrcpy(pjob.clientmachine, clientmachine);
- fstrcpy(pjob.user, lp_printjob_username(snum));
- standard_sub_advanced(sharename,
+ userstr = talloc_sub_advanced(talloc_tos(),
+ sharename,
server_info->unix_info->sanitized_username,
path, server_info->unix_token->gid,
server_info->unix_info->sanitized_username,
server_info->info->domain_name,
- pjob.user, sizeof(pjob.user));
+ lp_printjob_username(snum));
+ if (userstr == NULL) {
+ werr = WERR_NOT_ENOUGH_MEMORY;
+ goto fail;
+ }
+ strlcpy(pjob.user, userstr, sizeof(pjob.user));
+ TALLOC_FREE(userstr);
fstrcpy(pjob.queuename, lp_const_servicename(snum));