Bug#511995: unionfs-fuse: too short memory allocation when determining absolute path
Sorry for the delay, I was busy all the time. I upgraded the bug to serious and uploaded a new package to mentors. Once it is in unstable I will write a mail to the release team. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#511995: unionfs-fuse: too short memory allocation when determining absolute path
Hello Raphael, On Friday 16 January 2009, Raphael Geissert wrote: Package: unionfs-fuse Version: 0.21-2 Severity: important Tags: patch Hi again, It took me a little while to track it down, but here it is: When using relative paths unionfs-fuse wasn't allocation enough memory thus the resulting absolute path was not always correct. Diff of strace (- current code, + patched code): -open(/home/ttt/ff/imagess/\31, O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) +open(/home/ttt/ff/images/, O_RDONLY|O_LARGEFILE) = 4 And as you can guess all the remaining lstat and other system calls fail because the path doesn't exist. thanks a lot for spotting this! Stupid me! I introduced this in changeset 255 and didn't notice the missing byte, even though I even added the comments what for +2 is for and then added another trailing slash :( http://podgorny.cz/~bernd/hg/hgwebdir.cgi/radek-trunk-bernd-merge/rev/5e0ced59f299 I will upload a new package in the evening. Thanks again, Bernd -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#511995: unionfs-fuse: too short memory allocation when determining absolute path
Package: unionfs-fuse Version: 0.21-2 Severity: important Tags: patch Hi again, It took me a little while to track it down, but here it is: When using relative paths unionfs-fuse wasn't allocation enough memory thus the resulting absolute path was not always correct. Diff of strace (- current code, + patched code): -open(/home/ttt/ff/imagess/\31, O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) +open(/home/ttt/ff/images/, O_RDONLY|O_LARGEFILE) = 4 And as you can guess all the remaining lstat and other system calls fail because the path doesn't exist. Cheers, -- Raphael Geissert - Debian Maintainer www.debian.org - get.debian.net --- unionfs-fuse-0.21.orig/src/opts.c +++ unionfs-fuse-0.21/src/opts.c @@ -52,7 +52,7 @@ // 2 due to: +1 for '/' between cwd and relpath // +1 for terminating '\0' - int abslen = cwdlen + strlen(relpath) + 2; + int abslen = cwdlen + strlen(relpath) + 3; if (abslen PATHLEN_MAX) { fprintf(stderr, Absolute path too long!\n); return NULL;