tree data BUGFIX correct key length

Fixes #2149
diff --git a/src/tree_data_new.c b/src/tree_data_new.c
index 0fc4010..5d9f429 100644
--- a/src/tree_data_new.c
+++ b/src/tree_data_new.c
@@ -818,8 +818,8 @@
     /* create and insert all the keys */
     i = 0;
     for (key_s = lysc_node_child(ret->schema); key_s && (key_s->flags & LYS_KEY); key_s = key_s->next) {
-        key_val = key_values[i];
-        key_len = value_lengths ? value_lengths[i] : 0;
+        key_val = key_values[i] ? key_values[i] : "";
+        key_len = value_lengths ? value_lengths[i] : strlen(key_val);
 
         rc = lyd_create_term(key_s, key_val, key_len, 0, NULL, format, NULL, LYD_HINT_DATA, NULL, &key);
         LY_CHECK_GOTO(rc, cleanup);