← Back to team overview

kernel-packages team mailing list archive

[Bug 1396907] Re: Uncondicionally exchanging short filenames breaks userspace

 

** Changed in: linux (Ubuntu)
       Status: Incomplete => Triaged

** Changed in: linux (Ubuntu Utopic)
       Status: Incomplete => Triaged

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1396907

Title:
  Uncondicionally exchanging short filenames breaks userspace

Status in “linux” package in Ubuntu:
  Triaged
Status in “linux” source package in Utopic:
  Triaged

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 d2fa4a8476b911782f7e5167db18770222ac40c3 Mon Sep 17 00:00:00 2001
    From: Mikhail Efremov <sem@xxxxxxxxxxxx>
    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: da1ce0670c14d8380e423a3239e562a1dc15fa9e d2fa4a8476b911782f7e5167db18770222ac40c3

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1396907/+subscriptions


References