diff options
author | Ralph Boehme <slow@samba.org> | 2019-10-31 12:44:45 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-11-07 14:16:41 +0000 |
commit | 81ae199bb72886f2f1ed87b22b4c75b6b99c72f6 (patch) | |
tree | 49b9a83646e1064f006aa9c59223c0fa2a0c4001 /source3/printing/printing.c | |
parent | dcb555c06a6341871b691dab3758e7de04110282 (diff) | |
download | samba-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.c | 14 |
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)); |