aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libjson-c/patches/001-Prevent-division-by-zero-in-linkhash.patch
blob: 5345328d7c585dfdbe6d4e94c1c99d54202d53b7 (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
30
31
32
From 77d935b7ae7871a1940cd827e850e6063044ec45 Mon Sep 17 00:00:00 2001
From: Tobias Stoeckmann <tobias@stoeckmann.org>
Date: Mon, 4 May 2020 19:46:45 +0200
Subject: [PATCH 2/2] Prevent division by zero in linkhash.

If a linkhash with a size of zero is created, then modulo operations
are prone to division by zero operations.

Purely protective measure against bad usage.
---
 linkhash.c | 3 +++
 1 file changed, 3 insertions(+)

--- a/linkhash.c
+++ b/linkhash.c
@@ -10,6 +10,7 @@
  *
  */
 
+#include <assert.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -431,6 +432,8 @@ struct lh_table* lh_table_new(int size,
 	int i;
 	struct lh_table *t;
 
+  /* Allocate space for elements to avoid divisions by zero. */
+  assert(size > 0);
 	t = (struct lh_table*)calloc(1, sizeof(struct lh_table));
 	if(!t) lh_abort("lh_table_new: calloc failed\n");
 	t->count = 0;