]> git.saurik.com Git - bison.git/commitdiff
* src/reader.c (packgram): Catch nitems overflows.
authorAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:06:41 +0000 (18:06 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:06:41 +0000 (18:06 +0000)
ChangeLog
NEWS
src/reader.c

index 254bb0bbbe8e953b329913f9c34ae5dad1eda9e8..1d4e28e3ac30835292b9c46e21e8737a64b6c758 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (packgram): Catch nitems overflows.
+
+       
 2001-12-27  Akim Demaille  <akim@epita.fr>
 
        * src/files.c, src/files.h (guard_obstack): Remove.
diff --git a/NEWS b/NEWS
index 9934bab3d6c7204166551cdd90cba8d35a397942..9d6e40654a80fd92f06f02cbaac17bd00ff0573c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,11 @@ Bison News
 ----------
 
 Changes in version 1.49a:
+
+* items overflow
+  Bison no longer dumps core when there are too many items, it just
+  dies.
+
 \f
 Changes in version 1.30:
 
index b5d5fac991de6ab08acc7ccd7f46efdf6ed0dcdc..d19126240f06ea7577194c231a5fa1e08dd8899b 100644 (file)
@@ -1692,6 +1692,10 @@ packgram (void)
   int ruleno;
   symbol_list *p;
 
+  /* We use short to index items.  */
+  if (nitems >= MAXSHORT)
+    fatal (_("too many items (max %d)"), MAXSHORT);
+
   ritem = XCALLOC (short, nitems + 1);
   rule_table = XCALLOC (rule_t, nrules) - 1;