$OpenBSD: patch-lib_Xm_Xpmhashtab_c,v 1.1 2004/09/01 22:57:36 pvalchev Exp $ --- lib/Xm/Xpmhashtab.c.orig Fri Apr 28 09:05:22 2000 +++ lib/Xm/Xpmhashtab.c Wed Sep 1 01:31:33 2004 @@ -136,7 +136,7 @@ HashTableGrows(table) xpmHashTable *table; { xpmHashAtom *atomTable = table->atomTable; - int size = table->size; + unsigned int size = table->size; xpmHashAtom *t, *p; int i; int oldSize = size; @@ -145,6 +145,8 @@ HashTableGrows(table) HASH_TABLE_GROWS table->size = size; table->limit = size / 3; + if (size >= SIZE_MAX / sizeof(*atomTable)) + return (XpmNoMemory); atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable)); if (!atomTable) return (XpmNoMemory); @@ -205,6 +207,8 @@ xpmHashTableInit(table) table->size = INITIAL_HASH_SIZE; table->limit = table->size / 3; table->used = 0; + if (table->size >= SIZE_MAX / sizeof(*atomTable)) + return (XpmNoMemory); atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable)); if (!atomTable) return (XpmNoMemory);