From: Matt Fidler Date: Sat, 29 Dec 2012 10:26:14 +0000 (+0800) Subject: * emacs-lisp/package.el (package-untar-buffer): Handle problematic tarfile content... X-Git-Tag: emacs-24.2.92~73 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=af39894ab4b8a68eef14b39c030577b419a582a8;p=emacs.git * emacs-lisp/package.el (package-untar-buffer): Handle problematic tarfile content listings. Fixes: debbugs:13136 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 43af9904859..4ed7103270e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-12-29 Matt Fidler (tiny change) + + * emacs-lisp/package.el (package-untar-buffer): Handle problematic + tarfile content listings (Bug#13136). + 2012-12-29 Mark Lillibridge * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Insert diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 6629410a1f1..54d133b166c 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -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))))