Op dinsdag 21-04-2009 om 21:38 uur [tijdzone -0700], schreef Patrick
McCarty:

Hi Patrick,

> I ran the command that is failing through strace, and the output is
> attached.
> 
> Line 65 looks like the place tar open()s the CWD.  My system tar (GNU
> tar 1.22) also opens the CWD at this point, running the same command.

So this gets more interesting all the time.  I ran my tar through
strace, and it also opens CWD.  Running tar manually

    $ LD_PRELOAD=target/tools/root/usr/lib/librestrict.so 
target/tools/root/usr/bin/tar -C ~/tmp/x -p -xzf 
target/tools/packages/make-3.81.tools.gup
    /home/janneke/vc/gub/target/tools/root/usr/bin/tar: tried to open () file 
/home/janneke/vc/gub/.
    allowed:
      /home/janneke/vc/gub/target
      /tmp
      /dev/null
    Afgebroken (core dumped)

fails.  I'm attaching a patch that you can try as workaround.  Now it
puzzles me why tar does *not* fail in GUB for me.  It should.  Hmm.

Jan.

-- 
Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien       | http://www.lilypond.org
diff --git a/gub/gup.py b/gub/gup.py
index 89df0cc..ba584c5 100644
--- a/gub/gup.py
+++ b/gub/gup.py
@@ -111,7 +111,9 @@ class FileManager:
             raise Exception ('abort')
 
         loggedos.system (logging.default_logger,
-                         'tar -C %(root)s -p -x%(_z)s%(_v)s -f %(ball)s'
+                         # cd %(root)s to avoid open(2) of cwd, see
+                         # http://lists.gnu.org/archive/html/lilypond-devel/2009-03/msg00304.html
+                         'cd %(root)s && tar -C %(root)s -p -x%(_z)s%(_v)s -f %(ball)s'
                          % locals ())
 
         self._package_file_db[name] = '\n'.join (lst)
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to