aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2021-05-20 02:54:35 +0100
committerJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2021-05-20 03:01:05 +0100
commitcee1b443b576d64bba2d9f87c14ce5f2b7175169 (patch)
tree9a31106439caae5e612609fd3c4f9b4acc140360
parentadfb0b99c220a188ad510cc9a81e486f51a667c5 (diff)
wsutil: Add ws_assert_bounds()
-rw-r--r--epan/wmem/wmem_array.c2
-rw-r--r--wsutil/ws_assert.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/epan/wmem/wmem_array.c b/epan/wmem/wmem_array.c
index 1badfdd4bd..ced7e62f81 100644
--- a/epan/wmem/wmem_array.c
+++ b/epan/wmem/wmem_array.c
@@ -129,7 +129,7 @@ wmem_array_append(wmem_array_t *array, const void *in, guint count)
void *
wmem_array_index(wmem_array_t *array, guint array_index)
{
- ws_assert(array_index < array->elem_count);
+ ws_assert_bounds(array_index < array->elem_count);
return &array->buf[array_index * array->elem_size];
}
diff --git a/wsutil/ws_assert.h b/wsutil/ws_assert.h
index 6c2373bf95..2ffa559617 100644
--- a/wsutil/ws_assert.h
+++ b/wsutil/ws_assert.h
@@ -43,4 +43,9 @@ WS_NORETURN void ws_assert_not_reached(void) {
abort();
};
+/* ws_assert_bounds() is always enabled. For bounds check where the array
+ * size is known sometimes it's just not worth disabling assertions.
+ */
+#define ws_assert_bounds(expr) g_assert_true(expr)
+
#endif /* __WS_ASSERT_H__ */