smbc_opendir returns EEXIST if login credentials are incorrect, breaking SMB shares in Kodi

Bug #1801227 reported by Ben A on 2018-11-02
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
samba (Ubuntu)
Undecided
Unassigned
Bionic
High
Karl Stenerud

Bug Description

[Impact]

A regression in Samba causes the wrong error message to be returned on an unsuccessful login, returning EEXIST instead of EACCESS or EPERM.

[Tese Case]

# lxc launch ubuntu:bionic tester && lxc exec tester bash
# apt update && apt dist-upgrade -y && apt install -y samba gvfs libglib2.0-bin gvfs-bin gvfs-backends dbus-x11 &&
echo "
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
[test]
    path = /tmp
    browseable = yes
    read only = yes
    valid users = someone
" >/etc/samba/smb.conf &&
service smbd restart
# su - -c "dbus-launch gio mount -a smb://localhost/test" ubuntu
gio: smb://localhost/test/: Failed to mount Windows share: File exists

[Regression Potential]

The change reverts a regression in the closing order in certain cases from a previous version of samba, and should not cause further regressions in the fix.

[Original Description]

Target to milestone
​ Bionic Remove
Triaged

High

  Karl Stenerud

Target to milestone
Also affects project (?) Also affects distribution/package Nominate for series
Edit
Bug Description

In Kodi, try to add a smb:// URL for a share that doesn't allow guest logins and you'll get a cryptic "File Exists" error. It never asks for login credentials. From online searching, this is most likely due to a bug in libsmbclient where smbc_opendir will return EEXIST instead of a more appropriate error code if invalid login credentials were provided.

This was fixed in Samba 4.8:

https://github.com/samba-team/samba/commit/7470b9b18af282a742929d3fc90f4be5520428a1

But 18.04 is shipping 4.7.

Trying to add a share where the hostname doesn't resolve results in some cryptic messages as well, but that may or may not be a different bug.

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: libsmbclient 2:4.7.6+dfsg~ubuntu-0ubuntu2.2
ProcVersionSignature: Ubuntu 4.15.0-38.41-generic 4.15.18
Uname: Linux 4.15.0-38-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.9-0ubuntu7.4
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Thu Nov 1 21:15:29 2018
InstallationDate: Installed on 2018-09-12 (51 days ago)
InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725)
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
RelatedPackageVersions:
 nautilus 1:3.26.4-0~ubuntu18.04.2
 gvfs 1.36.1-0ubuntu1.1
SambaClientRegression: Yes
SourcePackage: samba
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Ben A (8-roothorick-gmail-com) wrote :
Ben A (8-roothorick-gmail-com) wrote :

Found a workaround: Enter the username and password as part of the URL when adding the source. That is:

smb://<username>:<password>@<host>/<folder>/

This isn't really acceptable, as it means the password is plainly visible onscreen as you're setting up the share.

Robie Basak (racb) wrote :

Thank you for reporting this bug and helping to make Ubuntu better.

Cosmic is on 4.8 so this presumably affects Bionic only.

tags: added: server-next
Changed in samba (Ubuntu):
status: New → Fix Released
Changed in samba (Ubuntu Bionic):
status: New → Triaged
importance: Undecided → High
tags: added: bitesize
Changed in samba (Ubuntu Bionic):
assignee: nobody → Karl Stenerud (kstenerud)
description: updated
description: updated

Hello Ben, or anyone else affected,

Accepted samba into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/samba/2:4.7.6+dfsg~ubuntu-0ubuntu2.6 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in samba (Ubuntu Bionic):
status: Triaged → Fix Committed
tags: added: verification-needed verification-needed-bionic
Karl Stenerud (kstenerud) wrote :

Verified fixed

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Łukasz Zemczak (sil2100) wrote :

Which package version has been used for verification?

Changed in samba (Ubuntu Bionic):
status: Fix Committed → Incomplete
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers