hash table CHANGE accept NULL dict values
diff --git a/src/hash_table.c b/src/hash_table.c
index 0564eb9..e771006 100644
--- a/src/hash_table.c
+++ b/src/hash_table.c
@@ -265,7 +265,12 @@
{
LY_ERR result;
- LY_CHECK_ARG_RET(ctx, ctx, value, LY_EINVAL);
+ LY_CHECK_ARG_RET(ctx, ctx, str_p, LY_EINVAL);
+
+ if (!value) {
+ *str_p = NULL;
+ return LY_SUCCESS;
+ }
if (!len) {
len = strlen(value);
@@ -283,7 +288,12 @@
{
LY_ERR result;
- LY_CHECK_ARG_RET(ctx, ctx, value, LY_EINVAL);
+ LY_CHECK_ARG_RET(ctx, ctx, str_p, LY_EINVAL);
+
+ if (!value) {
+ *str_p = NULL;
+ return LY_SUCCESS;
+ }
pthread_mutex_lock((pthread_mutex_t *)&ctx->dict.lock);
result = dict_insert(ctx, value, strlen(value), 1, str_p);
diff --git a/tests/utests/basic/test_hash_table.c b/tests/utests/basic/test_hash_table.c
index aa6ac3d..88cabb1 100644
--- a/tests/utests/basic/test_hash_table.c
+++ b/tests/utests/basic/test_hash_table.c
@@ -30,7 +30,7 @@
assert_int_equal(LY_EINVAL, lydict_insert_zc(NULL, NULL, NULL));
CHECK_LOG("Invalid argument ctx (lydict_insert_zc()).", NULL);
assert_int_equal(LY_EINVAL, lydict_insert_zc(UTEST_LYCTX, NULL, NULL));
- CHECK_LOG_CTX("Invalid argument value (lydict_insert_zc()).", NULL);
+ CHECK_LOG_CTX("Invalid argument str_p (lydict_insert_zc()).", NULL);
}
static void