Package: xfstt
Version: 1.7-5

Hello all,

this can be considered a continuation of stale report #54624
("xfstt: Segfault if there is symlink to nowhere").

Here, I get:

# xfstt
corrupt font database!
opening TTF database failed, while reading "/usr/share/fonts/truetype"
to build it.
Sync in directory "/usr/share/fonts/truetype/.".
Segmentation fault


strace yields:


getpid()                                = 3667
fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb80d1000
write(3, "3667\n"..., 5)                = 5
close(3)                                = 0
munmap(0xb80d1000, 4096)                = 0
rt_sigaction(SIGINT, {0x8049ae0, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x8049ae0, [TERM], SA_RESTART}, {SIG_DFL}, 8) = 0
chdir("/usr/share/fonts/truetype")      = 0
stat64("/var/cache/xfstt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/var/cache/xfstt/ttinfo.dir", O_RDONLY) = 3
stat64("/var/cache/xfstt/ttinfo.dir", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 0, PROT_READ, MAP_SHARED, 3, 0) = -1 EINVAL (Invalid argument)
close(3)                                = 0
write(2, "corrupt font database!\n"..., 23corrupt font database!
) = 23
write(2, "opening TTF database failed, whil"..., 84opening TTF database failed, 
while reading "/usr/share/fonts/truetype" to build it.
) = 84
chdir("/usr/share/fonts/truetype")      = 0
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
stat64("/var/cache/xfstt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/var/cache/xfstt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/var/cache/xfstt/ttinfo.dir", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
open("/var/cache/xfstt/ttname.dir", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 5
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb80d1000
fstat64(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb80d0000
fstat64(1, {st_mode=S_IFREG|0644, st_size=5519, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb80cf000
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 6
fstat64(6, {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
getdents(6, /* 172 entries */, 4096)    = 4092
stat64("Refsani.ttf", 0xbffee364)       = -1 ENOENT (No such file or directory)
stat64("Refserbi.ttf", 0xbffee364)      = -1 ENOENT (No such file or directory)
stat64("framd.ttf", 0xbffee364)         = -1 ENOENT (No such file or directory)
stat64("ttf-japanese-mincho.ttf", {st_mode=S_IFREG|0644, st_size=8967464, ...}) 
= 0
open("ttf-japanese-mincho.ttf", O_RDONLY) = 7
fstat64(7, {st_mode=S_IFREG|0644, st_size=8967464, ...}) = 0
mmap2(NULL, 8967464, PROT_READ, MAP_SHARED, 7, 0) = 0xb75c4000
close(7)                                = 0
write(5, "TTFNNAME\2\1\376\277\0\0\0\0"..., 16) = 16
_llseek(5, 0, [16], SEEK_CUR)           = 0
munmap(0xb75c4000, 8967464)             = 0
stat64("coprgtb.ttf", 0xbffee364)       = -1 ENOENT (No such file or directory)
open("coprgtb.ttf", O_RDONLY)           = -1 ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

note# ls -l /usr/share/fonts/truetype/coprgtb.ttf
lrwxr-xr-x 1 root root 31 May 15  2004
/usr/share/fonts/truetype/coprgtb.ttf ->/dosc/windows/fonts/coprgtb.ttf

Note: /dosc does exist, but no windows/ directory beyond it any more
(don't ask why - you know the reason, obviously! ;).

Removing all tons of symlinked fonts (those pointing to the /dosc/windows
directory) fixes the segfault.

Oh, now the possibly deciding factor:

/dev/sda1 on /dosc type vfat (rw,noexec,nosuid,nodev,noatime,umask=000,quiet)

IOW, providing a broken symlink into a VFAT partition (limited file attribute
set or so?) may yield a successful crash.

Thanks,

Andreas Mohr



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to