1*b1cdbd2cSJim Jagielski--- misc/mythes-1.2.0/mythes.cxx	2010-02-27 16:52:52.000000000 +0100
2*b1cdbd2cSJim Jagielski+++ misc/build/mythes-1.2.0/mythes.cxx	2011-05-18 16:22:49.125014204 +0200
3*b1cdbd2cSJim Jagielski@@ -4,6 +4,8 @@
4*b1cdbd2cSJim Jagielski #include <stdlib.h>
5*b1cdbd2cSJim Jagielski #include <errno.h>
6*b1cdbd2cSJim Jagielski
7*b1cdbd2cSJim Jagielski+#include <limits>
8*b1cdbd2cSJim Jagielski+
9*b1cdbd2cSJim Jagielski #include "mythes.hxx"
10*b1cdbd2cSJim Jagielski
11*b1cdbd2cSJim Jagielski // some basic utility routines
12*b1cdbd2cSJim Jagielski@@ -204,6 +206,12 @@
13*b1cdbd2cSJim Jagielski          return 0;
14*b1cdbd2cSJim Jagielski     }
15*b1cdbd2cSJim Jagielski     int nmeanings = atoi(buf+np+1);
16*b1cdbd2cSJim Jagielski+    if ((nmeanings < 0) ||
17*b1cdbd2cSJim Jagielski+        ((::std::numeric_limits<size_t>::max() / sizeof(mentry)) < nmeanings))
18*b1cdbd2cSJim Jagielski+    {
19*b1cdbd2cSJim Jagielski+        free(buf);
20*b1cdbd2cSJim Jagielski+        return 0;
21*b1cdbd2cSJim Jagielski+    }
22*b1cdbd2cSJim Jagielski     *pme = (mentry*) malloc( nmeanings * sizeof(mentry) );
23*b1cdbd2cSJim Jagielski     if (!(*pme)) {
24*b1cdbd2cSJim Jagielski         free(buf);
25