On Thu, Jan 26, 2006 at 09:04:44PM +0100, Aurelien Foret <aurelien@archlinux.org> wrote:
VMiklos wrote: I made a few attempts to reproduce the issue, but without success.
what i use for testing: $ pacman -Q -r root alsa-utils 1.0.10-2 bash 3.1-1 coreutils 5.2.1-9 glibc 2.3.6-1 ncurses 5.5-1 readline 5.1-1 alsa-utils is the test pkg, whith the following .INSTALL: post_install() { touch tmp/withoutslash touch /tmp/withslash } if i revert the patch in our tree, then withoutslash is created in /tmp, whithslash is in root/tmp if i apply the patch again, then both created in root/tmp
I understand the reason of the fix, but wouldn't it be better to change the working directory within the child process, right after the call to chroot, instead of changing to the "root" directory from the father process?
does this make sense? i don't think so
Something like: if(pid == 0) { if(chroot(root) == -1) { ... } if(chdir("/") == -1) { ... } ... }
I've got the feeling it is safer to have the father staying at "/" while operations from the install scripts are performed.
it's safe to stay in the alternate root, too. or could you mention any example when there's a difference?
FYI, I had a look at the implementation of the chroot binary, and it is coded as described above...
ok, i don't say it's bad, just i think it's not better than my fix udv / greetings, VMiklos -- Developer of Frugalware Linux, to make things frugal - http://frugalware.org