emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/compat 317b88abdc 08/13: Fix args-out-of-range signal u


From: ELPA Syncer
Subject: [elpa] externals/compat 317b88abdc 08/13: Fix args-out-of-range signal upper-bound edge case
Date: Sun, 13 Mar 2022 19:57:33 -0400 (EDT)

branch: externals/compat
commit 317b88abdcedc6d7a38dff2a6a2bc538bb920f93
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Fix args-out-of-range signal upper-bound edge case
---
 compat-28.el    | 3 ++-
 compat-tests.el | 8 ++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/compat-28.el b/compat-28.el
index 60e3fa4999..6f55fd4564 100644
--- a/compat-28.el
+++ b/compat-28.el
@@ -49,7 +49,8 @@ Case is always significant and text properties are ignored."
 multibyte regular expressions.  As the compatibility function
 for `string-search' is implemented via `string-match', these
 issues are inherited."
-  (when (and start-pos (< start-pos 0))
+  (when (and start-pos (or (< (length haystack) start-pos)
+                           (< start-pos 0)))
     (signal 'args-out-of-range (list start-pos)))
   (save-match-data
     (let ((case-fold-search nil))
diff --git a/compat-tests.el b/compat-tests.el
index 42e1f9197a..8d30f24d13 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -193,18 +193,18 @@ being compared against."
                           (apply #'string (number-sequence ?a ?z))))
   (ought 2 "a\U00010f98z" "a\U00010f98a\U00010f98z")
   (expect (args-out-of-range -1) "a" "abc" -1)
-  (expect (args-out-of-range "abc" 4) "a" "abc" 4)
-  (expect (args-out-of-range "abc" 100000000000)
+  (expect (args-out-of-range 4) "a" "abc" 4)
+  (expect (args-out-of-range 100000000000)
                  "a" "abc" 100000000000)
   (ought nil "a" "aaa" 3)
   (ought nil "aa" "aa" 1)
   (ought nil "\0" "")
   (ought 0 "" "")
-  (expect (args-out-of-range "" 1) "" "" 1)
+  (expect (args-out-of-range 1) "" "" 1)
   (ought 0 "" "abc")
   (ought 2 "" "abc" 2)
   (ought 3 "" "abc" 3)
-  (expect (args-out-of-range "abc" 4) "" "abc" 4)
+  (expect (args-out-of-range 4) "" "abc" 4)
   (expect (args-out-of-range -1) "" "abc" -1)
   (ought nil "ø" "foo\303\270")
   (ought nil "\303\270" "ø")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]