GNU bug report logs -
#34373
26.1; Missing range check in rx-submatch-n
Previous Next
Reported by: Mattias Engdegård <mattiase <at> acm.org>
Date: Thu, 7 Feb 2019 18:03:02 UTC
Severity: minor
Tags: patch
Found in version 26.1
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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 <at> 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
This bug report was last modified 6 years and 24 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.