s3:libsmb: Fix errno for failed authentication in SMBC_server_internal()
authorElia Geretto <elia.f.geretto@gmail.com>
Fri, 11 Mar 2022 18:32:30 +0000 (19:32 +0100)
committerJule Anger <janger@samba.org>
Thu, 17 Mar 2022 09:45:53 +0000 (09:45 +0000)
In SMBC_server_internal(), when authentication fails, the errno value is
currently hard-coded to EPERM, while it should be EACCES instead. Use the
NT_STATUS map to set the appropriate value.

This bug was found because it breaks listing printers protected by
authentication in GNOME Control Panel.

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

Signed-off-by: Elia Geretto <elia.f.geretto@gmail.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Mar 16 19:44:18 UTC 2022 on sn-devel-184

(cherry picked from commit 70b9977a46e5242174b4461a7f49d5f640c1db62)

Autobuild-User(v4-14-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-14-test): Thu Mar 17 09:45:53 UTC 2022 on sn-devel-184

source3/libsmb/libsmb_server.c

index d5c9fac6f05562166acc40b5c63c8a949cbadc3a..4163a29a77adf732850e2856d878acf0ea369f1b 100644 (file)
@@ -572,7 +572,7 @@ SMBC_server_internal(TALLOC_CTX *ctx,
                    !NT_STATUS_IS_OK(cli_session_setup_anon(c))) {
 
                         cli_shutdown(c);
-                        errno = EPERM;
+                       errno = map_errno_from_nt_status(status);
                         return NULL;
                 }
        }