summaryrefslogtreecommitdiff
path: root/src/hashtab.c
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2004-09-15 15:47:39 +0000
committerDaniel Stone <daniel@fooishbar.org>2004-09-15 15:47:39 +0000
commit19066719975d0dbfa51c6b413a3760ed7cf93ddc (patch)
treec757de7bbe7881acf219c1f4bf0b3459fbd8cd84 /src/hashtab.c
parent2773a7214e282f6f673483f5233b880505947c3f (diff)
Merge patch from Mathieu Herrb to fix several integer overflows and otherXORG-6_8_1
security errors in libXpm.
Diffstat (limited to 'src/hashtab.c')
-rw-r--r--src/hashtab.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/hashtab.c b/src/hashtab.c
index 7d596ec..f07cb6d 100644
--- a/src/hashtab.c
+++ b/src/hashtab.c
@@ -135,7 +135,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;
@@ -144,6 +144,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);
@@ -204,6 +206,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);