[Bug 997391] Re: Symbolic links can create recursive loop that causes Baobab to never finish scanning

Launchpad Bug Tracker 997391 at bugs.launchpad.net
Wed Oct 3 12:02:12 UTC 2012


This bug was fixed in the package ntfs-3g - 1:2012.1.15AR.1-1ubuntu1.2

---------------
ntfs-3g (1:2012.1.15AR.1-1ubuntu1.2) precise-proposed; urgency=low

  * Add readonly-devices.patch: Mount read-only devices as read-only instead
    of failing. Thanks to Jean Pierre Andre for the patch! (LP: #435192)

ntfs-3g (1:2012.1.15AR.1-1ubuntu1.1) precise-proposed; urgency=low

  * ntfs-3g-junction-point-fix.patch: Return the correct type (DT_LINK) for
    NTFS Junction points, in readdir(). (LP: #997391) Junction points are the
    NTFS equivalent of symlinks and should be listed as such. Fixes an
    infinite loop in baobab when scanning a Windows 7 root file system.
 -- Martin Pitt <martin.pitt at ubuntu.com>   Tue, 11 Sep 2012 05:49:00 +0200

** Changed in: ntfs-3g (Ubuntu Precise)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ntfs-3g in Ubuntu.
https://bugs.launchpad.net/bugs/997391

Title:
  Symbolic links can create recursive loop that causes Baobab to never
  finish scanning

Status in “ntfs-3g” package in Ubuntu:
  Fix Released
Status in “ntfs-3g” source package in Precise:
  Fix Released
Status in “ntfs-3g” package in Debian:
  Fix Released
Status in “baobab” package in Fedora:
  Unknown
Status in “ntfs-3g” package in Fedora:
  Unknown

Bug description:
  = Stable Release Update discussion =
  == Impact ==
  readdir() returns the directory type for junction points (NTFS symbolic links). This causes baobab to go into an endless loop when scanning an NTFS file-system. Older baobabs used stat() which correctly identified junction points as being symlinks.

  This would affect all users who run baobab on a Windows 7 (or later)
  root file-system. For dual-booting users, that's fairly likely to be
  where they store most of their media (it's accessible from both OSs),
  and thus the file-system most likely to be full and need the help of
  baobab.

  == Test Case ==
  * Mount a Windows 7 root filesystem.
  * Run baobab on Users/somebody/Local\ Settings/Application\ Data (or just the whole file-system).
  * If affected by this bug, it will appear to take forever to scan, and under strace it's obvious that it's following an endless loop of symlinks. 

  == Regression potential ==
  The patch is limited to readdir() and simply adds support for more types of file. It is not trivial, but is readable and seems plausible.

  Fedora appear are also backporting this patch to F17.

  = Original report =
  1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu
  Ubuntu 12.04 LTS

  2) The version of the package you are using, via 'apt-cache policy pkgname' or by checking in Software Center
  3.4.1-0ubuntu1

  3) What you expected to happen
  Detect the presence of symbolic link and omit directories under the link

  4) What happened instead
  Scans directories under the symbolic link, which is in reference to the directory above the symbolic link, and continue scanning without completion.

  Case in which bug was discovered:
  When scanning an NTFS drive with Windows 7 installed, the Users\System\AppData\Local\ directory contains a symlink called "Application Data" back to the Users\System\AppData\Local\ directory. This is used to maintain legacy support for older programs that require the Application Data folder. However, when Baobab reaches this point, it assumes that this continues to an infinite depth, and never completes the scan.

  Workaround:
  Omit scanning of the directory that is known to contain such links.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ntfs-3g/+bug/997391/+subscriptions




More information about the foundations-bugs mailing list