Menu

#9 Segfault due to missing dir /var/lib/scrollkeeper

open
nobody
None
8
2007-01-10
2007-01-10
No

scrollkeeper-update segfaults when creating database directory when it is missing. It
should assure that directories {/var, /var/lib, /var/lib/scrollkeeper} exist
and if not create them. But because of bug (overlapping strings in sprintf) it tries to check directories {var,
/lib, /scrollkeeper}.

strace before patch:

open("/var/lib/scrollkeeper", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1
ENOENT (No such file or directory)
stat64("var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/scrollkeeper", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/var/lib/scrollkeeper", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1
ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) @ 0 (18) ---
+++ killed by SIGSEGV +++

strace after patch:

open("/var/lib/scrollkeeper", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOENT (No
such file or directory)
stat("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/var/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/var/lib/scrollkeeper", 0x7fffedf951f0) = -1 ENOENT (No such file or
directory)
mkdir("/var/lib/scrollkeeper", 0755) = 0
open("/var/lib/scrollkeeper", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3

Discussion

  • Pavol Rusnak

    Pavol Rusnak - 2007-01-10

    libs/database.c patch

     
  • Pavol Rusnak

    Pavol Rusnak - 2007-01-10
    • priority: 5 --> 8
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.