From: Andreas Schneider Date: Mon, 28 Oct 2019 08:38:08 +0000 (+0100) Subject: s3:smbspool_krb5_wrapper: Map AUTH_INFO_REQUIRED=none to anonymous X-Git-Tag: ldb-2.1.0~387 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6201b30421f616ec3f118321fd2998435792a4cc;p=thirdparty%2Fsamba.git s3:smbspool_krb5_wrapper: Map AUTH_INFO_REQUIRED=none to anonymous Signed-off-by: Andreas Schneider Reviewed-by: Guenther Deschner --- diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 1310e2ff09f..23dafba1574 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -1845,6 +1845,9 @@ sub provision_ad_dc($$$$$$) copy = print1 [print3] copy = print1 +[print4] + copy = print1 + guest ok = yes [lp] copy = print1 "; diff --git a/source3/client/smbspool_krb5_wrapper.c b/source3/client/smbspool_krb5_wrapper.c index bff1df417e8..85b0d0952a9 100644 --- a/source3/client/smbspool_krb5_wrapper.c +++ b/source3/client/smbspool_krb5_wrapper.c @@ -156,10 +156,12 @@ int main(int argc, char *argv[]) } else { CUPS_SMB_DEBUG("AUTH_INFO_REQUIRED=%s", env); - snprintf(auth_info_required, - sizeof(auth_info_required), - "%s", - env); + cmp = strcmp(env, "none"); + if (cmp == 0) { + CUPS_SMB_DEBUG("Authenticate using none (anonymous) - " + "execute smbspool"); + goto smbspool; + } cmp = strcmp(env, "username,password"); if (cmp == 0) { @@ -168,13 +170,17 @@ int main(int argc, char *argv[]) goto smbspool; } - /* if AUTH_INFO_REQUIRED=none */ cmp = strcmp(env, "negotiate"); if (cmp != 0) { CUPS_SMB_ERROR("Authentication unsupported"); fprintf(stderr, "ATTR: auth-info-required=negotiate\n"); return CUPS_BACKEND_AUTH_REQUIRED; } + + snprintf(auth_info_required, + sizeof(auth_info_required), + "%s", + env); } uid = getuid(); diff --git a/source3/script/tests/test_smbspool.sh b/source3/script/tests/test_smbspool.sh index 7ba03f01fc7..01d72101615 100755 --- a/source3/script/tests/test_smbspool.sh +++ b/source3/script/tests/test_smbspool.sh @@ -48,7 +48,7 @@ test_smbspool_noargs() test_smbspool_authinforequired_none() { - cmd='$samba_smbspool_krb5 smb://$SERVER_IP/print1 200 $USERNAME "Testprint" 1 "options" $SRCDIR/testdata/printing/example.ps 2>&1' + cmd='$samba_smbspool_krb5 smb://$SERVER_IP/print4 200 $USERNAME "Testprint" 1 "options" $SRCDIR/testdata/printing/example.ps 2>&1' AUTH_INFO_REQUIRED="none" export AUTH_INFO_REQUIRED @@ -60,14 +60,10 @@ test_smbspool_authinforequired_none() if [ $ret != 0 ]; then echo "$out" echo "failed to execute $smbspool_krb5" - fi - - echo "$out" | grep 'ATTR: auth-info-required=negotiate' - ret=$? - if [ $ret != 0 ] ; then - echo "$out" return 1 fi + + return 0 } #