summaryrefslogtreecommitdiffstats
path: root/src/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal.h')
-rw-r--r--src/internal.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/internal.h b/src/internal.h
index 3216bc6..ba994c8 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -189,15 +189,17 @@ struct nft_set_elem {
void __nft_assert_fail(uint16_t attr, const char *filename, int line);
-#define nft_assert(attr, expr) \
- ((expr) \
+#define nft_assert(val, attr, expr) \
+ ((!val || expr) \
? (void)0 \
: __nft_assert_fail(attr, __FILE__, __LINE__))
-#define nft_assert_validate(_validate_array, _attr, _data_len) \
-({ \
- if (_validate_array[_attr]) \
- nft_assert(attr, _validate_array[_attr] == _data_len); \
+#define nft_assert_validate(data, _validate_array, _attr, _data_len) \
+({ \
+ if (!data) \
+ __nft_assert_fail(attr, __FILE__, __LINE__); \
+ if (_validate_array[_attr]) \
+ nft_assert(data, attr, _validate_array[_attr] == _data_len); \
})
#endif