aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1998-02-18 22:54:43 +0000
committerKarl Heuer1998-02-18 22:54:43 +0000
commit588d2fd5ff44ebc2221ebbef0df8dd7f5f8ed7b2 (patch)
treeaef1f135841eeb5b892f4cad257d1b3105786a83
parent9c8de95c2a0d0069f9a846c850cb9292370eeab8 (diff)
downloademacs-588d2fd5ff44ebc2221ebbef0df8dd7f5f8ed7b2.tar.gz
emacs-588d2fd5ff44ebc2221ebbef0df8dd7f5f8ed7b2.zip
(search_command): Check LIM in valid range
before calling CHAR_TO_BYTE.
-rw-r--r--src/search.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/search.c b/src/search.c
index d1a57887c25..a4e17a7eff4 100644
--- a/src/search.c
+++ b/src/search.c
@@ -880,13 +880,14 @@ search_command (string, bound, noerror, count, direction, RE, posix)
880 { 880 {
881 CHECK_NUMBER_COERCE_MARKER (bound, 1); 881 CHECK_NUMBER_COERCE_MARKER (bound, 1);
882 lim = XINT (bound); 882 lim = XINT (bound);
883 lim_byte = CHAR_TO_BYTE (lim);
884 if (n > 0 ? lim < PT : lim > PT) 883 if (n > 0 ? lim < PT : lim > PT)
885 error ("Invalid search bound (wrong side of point)"); 884 error ("Invalid search bound (wrong side of point)");
886 if (lim > ZV) 885 if (lim > ZV)
887 lim = ZV, lim_byte = ZV_BYTE; 886 lim = ZV, lim_byte = ZV_BYTE;
888 if (lim < BEGV) 887 else if (lim < BEGV)
889 lim = BEGV, lim_byte = BEGV_BYTE; 888 lim = BEGV, lim_byte = BEGV_BYTE;
889 else
890 lim_byte = CHAR_TO_BYTE (lim);
890 } 891 }
891 892
892 np = search_buffer (string, PT, PT_BYTE, lim, lim_byte, n, RE, 893 np = search_buffer (string, PT, PT_BYTE, lim, lim_byte, n, RE,