summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-01-20 13:42:56 +0200
committerEli Zaretskii <eliz@gnu.org>2022-01-20 13:42:56 +0200
commit11ea45c9e47d13e13e3e539551e2df300f995c11 (patch)
tree63a2fadec28d1f47a2ccb9a05abde73cd4b89ca1 /lib-src
parentba57b78064830caaa253e56decf9686a48fade78 (diff)
downloademacs-11ea45c9e47d13e13e3e539551e2df300f995c11.tar.gz
Fix UB in ebrowse
* lib-src/ebrowse.c (matching_regexp): Avoid writing beyond the limits of 'matching_regexp_buffer'. Patch by Jan Stranik <jan@stranik.org>. (Bug#53333) Copyright-paperwork-exempt: yes
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/ebrowse.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index 04ae018464e..ac7e7901878 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -1925,7 +1925,15 @@ matching_regexp (void)
*--s = *--t;
if (*s == '"' || *s == '\\')
- *--s = '\\';
+ {
+ if (s > matching_regexp_buffer)
+ *--s = '\\';
+ else
+ {
+ s++;
+ break;
+ }
+ }
}
*(matching_regexp_end_buf - 1) = '\0';