]> code.delx.au - gnu-emacs/commitdiff
* emacs-lisp/package.el (package-untar-buffer): Handle problematic tarfile content...
authorMatt Fidler <matt.fidler@alcon.com>
Sat, 29 Dec 2012 10:26:14 +0000 (18:26 +0800)
committerChong Yidong <cyd@gnu.org>
Sat, 29 Dec 2012 10:26:14 +0000 (18:26 +0800)
Fixes: debbugs:13136
lisp/ChangeLog
lisp/emacs-lisp/package.el

index 43af990485925303d6a79e05f452f0b12a667f38..4ed7103270e7e81faa953231f1b1ca184120a0d4 100644 (file)
@@ -1,3 +1,8 @@
+2012-12-29  Matt Fidler  <matt.fidler@alcon.com>  (tiny change)
+
+       * emacs-lisp/package.el (package-untar-buffer): Handle problematic
+       tarfile content listings (Bug#13136).
+
 2012-12-29  Mark Lillibridge  <mark.lillibridge@hp.com>
 
        * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Insert
index 6629410a1f1c8aa1045a04f47074052ae6072adf..54d133b166c40d1171a79356eb41855eee5a3cc6 100644 (file)
@@ -604,7 +604,11 @@ untar into a directory named DIR; otherwise, signal an error."
   (require 'tar-mode)
   (tar-mode)
   ;; Make sure everything extracts into DIR.
-  (let ((regexp (concat "\\`" (regexp-quote dir) "/")))
+  (let ((regexp (concat "\\`" (regexp-quote dir)
+                       ;; Tarballs created by some utilities don't
+                       ;; list directories with a trailing slash
+                       ;; (Bug#13136).
+                       "\\(/\\|\\'\\)")))
     (dolist (tar-data tar-parse-info)
       (unless (string-match regexp (aref tar-data 2))
        (error "Package does not untar cleanly into directory %s/" dir))))