aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libjson-c/patches/004-Issue-599-Fix-the-backwards-check-in-lh_table_insert.patch
blob: aed6918e7080a6da3fb9015f0137e45b88078870 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From 519dfe1591d85432986f9762d41d1a883198c157 Mon Sep 17 00:00:00 2001
From: Eric Haszlakiewicz <erh+git@nimenees.com>
Date: Sun, 10 May 2020 03:32:19 +0000
Subject: [PATCH] Issue #599: Fix the backwards check in
 lh_table_insert_w_hash() that was preventing adding more than 11 objects. Add
 a test to check for this too.

---
 linkhash.c           |  2 +-
 tests/test4.c        | 29 +++++++++++++++++++++++++++++
 tests/test4.expected |  1 +
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/linkhash.c b/linkhash.c
index 51e90b1..f930efd 100644
--- a/linkhash.c
+++ b/linkhash.c
@@ -582,7 +582,7 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con
 
 	if (t->count >= t->size * LH_LOAD_FACTOR) {
 		/* Avoid signed integer overflow with large tables. */
-		int new_size = INT_MAX / 2 < t->size ? t->size * 2 : INT_MAX;
+		int new_size = (t->size > INT_MAX / 2) ? INT_MAX : (t->size * 2);
 		if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0)
 			return -1;
 	}
-- 
2.26.2