Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add fix from libucl.
Vsevolod Stakhov committed 11 years ago
commit 9636e741dcff71bd155041f4dd6ef82c70a6ed09
parent 6debb1e
1 file changed +7 -4
modified external/libucl/src/ucl_util.c
@@ -1176,15 +1176,18 @@ ucl_object_insert_key_common (ucl_object_t *top, ucl_object_t *elt,
		}
	}

-
	elt->key = key;
-
	elt->keylen = keylen;
-

-
	if (elt->trash_stack[UCL_TRASH_KEY] != NULL) {
+
	/* workaround for some use cases */
+
	if (elt->trash_stack[UCL_TRASH_KEY] != NULL &&
+
			key != (const char *)elt->trash_stack[UCL_TRASH_KEY]) {
		/* Remove copied key */
		free (elt->trash_stack[UCL_TRASH_KEY]);
		elt->trash_stack[UCL_TRASH_KEY] = NULL;
		elt->flags &= ~UCL_OBJECT_ALLOCATED_KEY;
	}
+

+
	elt->key = key;
+
	elt->keylen = keylen;
+

	if (copy_key) {
		ucl_copy_key_trash (elt);
	}