[Bug 1711134] [NEW] Sync cifs-utils 2:6.7-1 (main) from Debian unstable (main)
Launchpad Bug Tracker
1711134 at bugs.launchpad.net
Wed Aug 16 13:47:45 UTC 2017
You have been subscribed to a public bug by Andreas Hasenack (ahasenack):
Please sync cifs-utils 2:6.7-1 (main) from Debian unstable (main)
Explanation of the Ubuntu delta and why it can be dropped:
* Merge from Debian unstable (LP: #1660372). Remaining changes:
- debian/patches/stat_systemd-ask-password.patch: also check for
/bin/systemd-ask-password before trying to use systemd's tools.
TL;DR the patch in our delta is to prevent a harmless error message from
popen() leaking through to the console in the case systemd-ask-password binary
does not exist in /bin, in which case the code falls back to using getpass():
ubuntu at 61-b1:~$ mount /ds216/downloads
sh: 1: systemd-ask-password: not found
Password for andreas@//ds216.lowtech/downloads: <type pass>
ubuntu at 61-b1:~$
It just doesn't seem worth carrying a delta for that. It's best to file
an upstream bug to have it properly fixed, which I did:
https://bugzilla.samba.org/show_bug.cgi?id=12971
Longer story:
When that patch was added by Ubuntu, the upstream code was like this:
"""
is_systemd_running = (lstat("/sys/fs/cgroup", &a) == 0)
&& (lstat("/sys/fs/cgroup/systemd", &b) == 0)
&& (a.st_dev != b.st_dev);
if (is_systemd_running) {
(...)
if (asprintf(&cmd, "/bin/systemd-ask-password \"%s\"", prompt) >= 0) {
ask_pass_fp = popen (cmd, "re");
free (cmd);
}
"""
If popen() can't find the binary, the code falls back to getpass(), but popen
prints an "ugly" error message before:
ubuntu at 61-b1:~$ mount /ds216/downloads
sh: 1: systemd-ask-password: not found
Password for andreas@//ds216.lowtech/downloads: <--- no "***" echoed: getpass() was used
ubuntu at 61-b1:~$
The ubuntu patch had the effect of not even trying to popen the missing binary,
thus avoiding the error message.
Upstream later changed the code slightly (see bug
https://bugzilla.samba.org/show_bug.cgi?id=10054):
"""
is_systemd_running = (lstat("/sys/fs/cgroup", &a) == 0)
&& (lstat("/sys/fs/cgroup/systemd", &b) == 0)
&& (a.st_dev != b.st_dev);
(...)
if (asprintf(&cmd, "systemd-ask-password \"%s\"", prompt) >= 0) {
ask_pass_fp = popen (cmd, "re");
free (cmd);
}
"""
That now searches for systemd-ask-password in $PATH. If it's not found, then
the error message is still printed, and getpass() is again used as a fallback.
The Ubuntu patch is still useful, but not complete now: it should search for
the binary in $PATH to match what popen does.
Perhaps the easiest solution is to just hide the popen error, since it's
handled anyway?
- if (asprintf(&cmd, "systemd-ask-password \"%s\"", prompt) >= 0) {
+ if (asprintf(&cmd, "systemd-ask-password \"%s\" 2>/dev/null", prompt) >= 0) {
I filed an upstream bug with that suggestion:
https://bugzilla.samba.org/show_bug.cgi?id=12971
Changelog entries since current artful version 2:6.6-5ubuntu1:
cifs-utils (2:6.7-1) unstable; urgency=medium
* New upstream release
- a6662ed: cifs.upcall: switch group IDs when handling an upcall
- 109c189: cifs.upcall: drop capabilities early in program
- ed97e4e: cifs.upcall: allow scraping of KRB5CCNAME out of initiating
task's /proc/<pid>/environ file (Closes: #854607)
- ec387af4: cifs.upcall: trim even more capabilities
- 2dcecd2: cifs.upcall: unset $KRB5CCNAME when creating new credcache from
keytab
- 9eaa21e: cifs.upcall: don't do env scraping when uid is 0
- 69949ba: cifs.upcall: use a MEMORY: ccache when instantiating from a keytab
- and more commits...
-- Mathieu Parent <sathieu at debian.org> Wed, 08 Mar 2017 22:21:54 +0100
** Affects: cifs-utils (Ubuntu)
Importance: Wishlist
Status: New
--
Sync cifs-utils 2:6.7-1 (main) from Debian unstable (main)
https://bugs.launchpad.net/bugs/1711134
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.
More information about the Ubuntu-sponsors
mailing list