]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix int overflow bug in ‘equal’
authorPaul Eggert <eggert@Penguin.CS.UCLA.EDU>
Sun, 9 Jun 2019 06:38:18 +0000 (23:38 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 9 Jun 2019 06:38:40 +0000 (23:38 -0700)
* src/fns.c (internal_equal):
Fix bug when vector lengths exceed INT_MAX.

src/fns.c

index 7d5443150d4e2f7d08890551925e0a7072331f0e..8307a36a09dd0909ca8b04e76ba21782f358b32a 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -2425,7 +2425,6 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum equal_kind equal_kind,
 
     case Lisp_Vectorlike:
       {
-       register int i;
        ptrdiff_t size = ASIZE (o1);
        /* Pseudovectors have the type encoded in the size field, so this test
           actually checks that the objects have the same type as well as the
@@ -2479,7 +2478,7 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum equal_kind equal_kind,
              return false;
            size &= PSEUDOVECTOR_SIZE_MASK;
          }
-       for (i = 0; i < size; i++)
+       for (ptrdiff_t i = 0; i < size; i++)
          {
            Lisp_Object v1, v2;
            v1 = AREF (o1, i);