summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2023-01-11 09:27:01 +0100
committerPhilip Kaludercic <philipk@posteo.net>2023-01-11 09:28:40 +0100
commit384504edf35751eec2be9b52be5d3b250217d68f (patch)
tree800eaf4b64f8230098b5e48bb904c77e1c83075c /lisp/emacs-lisp
parent70947da708c8e06e31a2930520b38bafe43dba39 (diff)
downloademacs-384504edf35751eec2be9b52be5d3b250217d68f.tar.gz
emacs-384504edf35751eec2be9b52be5d3b250217d68f.tar.bz2
emacs-384504edf35751eec2be9b52be5d3b250217d68f.zip
Ensure VC package names are not empty
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error if the package name is empty. (package-vc-install): Avoid generating an empty file name, if a URL ends with a slash, and raise an error if the package name is empty.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package-vc.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index ba1a01faeee..b5b8a6746a6 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -606,6 +606,8 @@ checkout. This overrides the `:branch' attribute in PKG-SPEC."
(name (package-desc-name pkg-desc))
(dirname (package-desc-full-name pkg-desc))
(pkg-dir (expand-file-name dirname package-user-dir)))
+ (when (string-empty-p name)
+ (user-error "Empty package name"))
(setf (package-desc-dir pkg-desc) pkg-dir)
(when (file-exists-p pkg-dir)
(if (yes-or-no-p (format "Overwrite previous checkout for package `%s'?" name))
@@ -773,7 +775,9 @@ regular package, but it will not remove a VC package.
(package-vc--archives-initialize)
(let* ((name-or-url (package-vc--read-package-name
"Fetch and install package: " t))
- (name (file-name-base name-or-url)))
+ (name (file-name-base (directory-file-name name-or-url))))
+ (when (string-empty-p name)
+ (user-error "Empty package name"))
(list name-or-url
(and current-prefix-arg :last-release)
nil