Unconditionally exchanging short filenames breaks userspace /proc/$$/exe links
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
SRU Justification:
Impact: Since v3.15 the link of /proc/<pid>/exe will unconditionally be renamed to the previous name of a binary when the filename is short and the binary was running. For example foo is a daemon and running while dpkg installs a new version. dpkg will unpack as foo.dpkg-new first and then rename to foo. After that /proc/<pid>/exe of the running foo daemon will point to the (no non-existent) foo.dpkg-new. Which in turn causes start-stop-daemon if that is used post-install to fail finding the running instance.
Fix: Backport of the following upstream change (which came with v3.17):
From d2fa4a8476b9117
From: Mikhail Efremov <email address hidden>
Date: Wed, 24 Sep 2014 22:14:33 +0400
Subject: [PATCH] vfs: Don't exchange "short" filenames unconditionally.
Only exchange source and destination filenames
if flags contain RENAME_EXCHANGE.
In case if executable file was running and replaced by
other file /proc/PID/exe should still show correct file name,
not the old name of the file by which it was replaced.
Testcase: Any binary running that has a short (<= DNAME_INLINE_LEN) filename), copy the current binary to <oldname>.new and then move <oldname>.new to <oldname>. Now /proc/<pid>/exe of the running process points to <oldname>.new wihtout the change but remains to be <oldname> with the patch.
break-fix: da1ce0670c14d83
break-fix: da1ce0670c14d83
Changed in linux (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in linux (Ubuntu Utopic): | |
status: | Incomplete → Triaged |
tags: | added: kernel-bug-break-fix |
description: | updated |
summary: |
- Uncondicionally exchanging short filenames breaks userspace + Unconditionally exchanging short filenames breaks userspace /proc/$$/exe + links |
description: | updated |
Changed in linux (Ubuntu Utopic): | |
status: | Triaged → Confirmed |
Changed in linux (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in linux (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in linux (Ubuntu Utopic): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Utopic): | |
status: | Fix Committed → Fix Released |
tags: | removed: kernel-bug-break-fix |
Debian reference: https:/ /bugs.debian. org/cgi- bin/bugreport. cgi?bug= 763831 (did not use also-affects because that had weird effects last time I did that to another report).