Bug#336560: vim loops forever in readlink on startup when opening
symlinked file with two parent directories of the same name
Frode E. Moe
frode at coretrek.com
Mon Oct 31 07:59:17 UTC 2005
Package: vim
Version: 1:6.4-001+2
Severity: normal
VIM loops forever in "readlink", according to strace, when running this script:
#!/bin/sh
cd /tmp
mkdir -p vim-bug/vim-bug/subdir
mkdir -p vim-bug/subdir
echo 'this is a file' > vim-bug/vim-bug/subdir/testfile
cd vim-bug/subdir
ln -s ../vim-bug/subdir/testfile
cd ..
echo "Pwd is:"
pwd
echo "subdir/testfile is:"
ls -l subdir/testfile
echo "Launching vim on subdir/testfile in 5 seconds"
sleep 5
vim -u NONE -U NONE subdir/testfile
I actually found this bug when I tried to open /boot/grub/menu.lst,
which is a symlink to /boot/boot/grub/menu.lst on my system.
The problem seem to only occur when both the parent directory and
the parent's parent directory has the same name.
Output from attaching strace:
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
readlink("../vim-bug/subdir/testfile", "../vim-bug/subdir/testfile", 4096) = 26
....
Output from attaching ltrace:
readlink(0xbff06b2c, 0xbff07b5c, 4096, 0x81999f0, 2) = 26
strcpy(0xbff06b2c, "../vim-bug/subdir/testfile") = 0xbff06b2c
readlink(0xbff06b2c, 0xbff07b5c, 4096, 0x81999f0, 2) = 26
strcpy(0xbff06b2c, "../vim-bug/subdir/testfile") = 0xbff06b2c
readlink(0xbff06b2c, 0xbff07b5c, 4096, 0x81999f0, 2) = 26
strcpy(0xbff06b2c, "../vim-bug/subdir/testfile") = 0xbff06b2c
readlink(0xbff06b2c, 0xbff07b5c, 4096, 0x81999f0, 2) = 26
strcpy(0xbff06b2c, "../vim-bug/subdir/testfile") = 0xbff06b2c
...
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.13.4
Locale: LANG=C, LC_CTYPE=no_NO.ISO8859-1 (charmap=ISO-8859-1)
Versions of packages vim depends on:
ii libc6 2.3.5-7 GNU C Library: Shared libraries an
ii libgpmg1 1.19.6-21 General Purpose Mouse - shared lib
ii libncurses5 5.5-1 Shared libraries for terminal hand
ii vim-common 1:6.4-001+2 Vi IMproved - Common files
vim recommends no packages.
-- no debconf information
More information about the pkg-vim-maintainers
mailing list