[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34373: Acknowledgement (26.1; Missing range check in rx-submatch-n)
From: |
Andy Moreton |
Subject: |
bug#34373: Acknowledgement (26.1; Missing range check in rx-submatch-n) |
Date: |
Fri, 08 Feb 2019 15:05:57 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt) |
On Thu 07 Feb 2019, Mattias Engdegård wrote:
> Patch.
>
> From cc7bbab39595b117f6f2ed2bcf5ea1782060e574 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org>
> Date: Thu, 7 Feb 2019 19:05:06 +0100
> Subject: [PATCH] Check validity of rx submatch-n number
>
> * lisp/emacs-lisp/rx.el (rx-submatch): Type and range check (Bug#34373).
> ---
> lisp/emacs-lisp/rx.el | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
> index 8b4551d0d3..d47beed975 100644
> --- a/lisp/emacs-lisp/rx.el
> +++ b/lisp/emacs-lisp/rx.el
> @@ -705,6 +705,8 @@ FORM is either `(repeat N FORM1)' or `(repeat N M
> FORMS...)'."
> (defun rx-submatch-n (form)
> "Parse and produce code from FORM, which is `(submatch-n N ...)'."
> (let ((n (nth 1 form)))
> + (unless (and (integerp n) (> n 0))
> + (error "rx `submatch-n' argument must be positive"))
> (concat "\\(?" (number-to-string n) ":"
> (if (= 3 (length form))
> ;; Only one sub-form.
You could use (natnump n) instead.
AndyM