Blob Blame History Raw
From 24aa04cee5ce3cdab1fd3cf970e285dbd065305e Mon Sep 17 00:00:00 2001
From: Bryan Mason <bmason@redhat.com>
Date: Mon, 16 Sep 2019 12:35:06 -0700
Subject: [PATCH] s3:client:Use DEVICE_URI, instead of argv[0],for Device URI

CUPS sanitizes argv[0] by removing username/password, so use
DEVICE_URI environment variable first.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14128

Signed-off-by: Bryan Mason <bmason@redhat.com>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Wed Sep 18 12:31:11 UTC 2019 on sn-devel-184

(cherry picked from commit d65b17c3f7f9959ed95b03cc09e020d7387b7931)
---
 source3/client/smbspool.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index ad988eb0df9..36f7f67ca94 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -256,13 +256,15 @@ main(int argc,			/* I - Number of command-line arguments */
 
 	/*
 	 * Find the URI ...
-	 */
-	if (dev_uri == NULL) {
-		env = getenv("DEVICE_URI");
-		if (env != NULL && env[0] != '\0') {
-			dev_uri = env;
-		}
-	}
+         *
+         * The URI in argv[0] is sanitized to remove username/password, so
+         * use DEVICE_URI if available. Otherwise keep the URI already
+         * discovered in argv.
+         */
+        env = getenv("DEVICE_URI");
+        if (env != NULL && env[0] != '\0') {
+          dev_uri = env;
+        }
 
 	if (dev_uri == NULL) {
 		fprintf(stderr,
-- 
2.23.0