aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2013-10-09 15:39:57 -0700
committerPaul Eggert2013-10-09 15:39:57 -0700
commite20bb24948dd53afe77a5987c5408c715d1f388f (patch)
tree97f95731023324d83dbf629120aa73d1cbf45849 /src
parent9f6a18d27ebab2f41edb60cc5c45af0222f8210f (diff)
downloademacs-e20bb24948dd53afe77a5987c5408c715d1f388f.tar.gz
emacs-e20bb24948dd53afe77a5987c5408c715d1f388f.zip
* fns.c (sxhash_bool_vector): Fix buffer read overrun.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/fns.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0597c5d9f21..f46733d1ebe 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
12013-10-09 Paul Eggert <eggert@cs.ucla.edu>
2
3 * fns.c (sxhash_bool_vector): Fix buffer read overrun.
4
12013-10-09 Eli Zaretskii <eliz@gnu.org> 52013-10-09 Eli Zaretskii <eliz@gnu.org>
2 6
3 * term.c (tty_menu_activate): Flush the output stream after 7 * term.c (tty_menu_activate): Flush the output stream after
diff --git a/src/fns.c b/src/fns.c
index e991711b871..1ee0a758fc2 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4191,7 +4191,9 @@ sxhash_bool_vector (Lisp_Object vec)
4191 EMACS_UINT hash = XBOOL_VECTOR (vec)->size; 4191 EMACS_UINT hash = XBOOL_VECTOR (vec)->size;
4192 int i, n; 4192 int i, n;
4193 4193
4194 n = min (SXHASH_MAX_LEN, XBOOL_VECTOR (vec)->header.size); 4194 n = min (SXHASH_MAX_LEN,
4195 ((XBOOL_VECTOR (vec)->size + BOOL_VECTOR_BITS_PER_CHAR - 1)
4196 / BOOL_VECTOR_BITS_PER_CHAR));
4195 for (i = 0; i < n; ++i) 4197 for (i = 0; i < n; ++i)
4196 hash = sxhash_combine (hash, XBOOL_VECTOR (vec)->data[i]); 4198 hash = sxhash_combine (hash, XBOOL_VECTOR (vec)->data[i]);
4197 4199