--- libelwix/src/json.c	2019/09/05 14:17:56	1.7.12.2
+++ libelwix/src/json.c	2024/10/26 14:56:14	1.9.34.2
@@ -3,7 +3,7 @@
 *  by Michael Pounov <misho@elwix.org>
 *
 * $Author: misho $
-* $Id: json.c,v 1.7.12.2 2019/09/05 14:17:56 misho Exp $
+* $Id: json.c,v 1.9.34.2 2024/10/26 14:56:14 misho Exp $
 *
 **************************************************************************
 The ELWIX and AITNET software is distributed under the following
@@ -12,7 +12,7 @@ terms:
 All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
 
-Copyright 2004 - 2019
+Copyright 2004 - 2024
 	by Michael Pounov <misho@elwix.org>.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -427,7 +427,10 @@ json_token2val(const char *jstr, jtok_t * __restrict t
 		return NULL;
 
 	AIT_SET_STRSIZ(v, json_toklen(tok));
-	strncpy(AIT_GET_STR(v), json_tokstr(jstr, tok), AIT_LEN(v) - 1);
+	if (AIT_GET_STR(v))
+		strncpy(AIT_GET_STR(v), json_tokstr(jstr, tok), AIT_LEN(v) - 1);
+	else
+		ait_freeVar(&v);
 
 	return v;
 }
@@ -567,7 +570,7 @@ json_findbykey(const char *jstr, const char *key, jtyp
 		klen = strlen(key);
 
 	for (i = 1; i < toksnum; i++) {
-		if (toks[i].tok_type == J_STRING && 
+		if (toks[i].tok_type == J_STRING && toks[i].tok_size == 1 && 
 				klen == toks[i].tok_end - toks[i].tok_start && 
 				!strncmp(jstr + toks[i].tok_start, key, klen)) {
 			if (type != J_UNDEF) {