Fix missing NULL check in rjp object key setting. Fix allowing empty key in object member addition

This commit is contained in:
rexy712 2020-04-06 06:43:46 -07:00
parent 16bb20a09f
commit 7395f41ccc

View File

@ -51,7 +51,8 @@ RJP_value* rjp_new_member_steal_key(RJP_value* dest, char* key, RJP_index keylen
if(!key)
return NULL;
if(!keylen)
keylen = strlen(key);
if(!(keylen = strlen(key)))
return NULL;
switch(dest->type){
case rjp_json_object:
return irjp_add_unordered_member(dest, key, keylen);
@ -65,7 +66,8 @@ RJP_value* rjp_new_member(RJP_value* dest, const char* key, RJP_index keylen){
if(!key)
return NULL;
if(!keylen)
keylen = rjp_escape_strlen(key);
if(!(keylen = rjp_escape_strlen(key)))
return NULL;
char* newkey = rjp_alloc(keylen+1);
rjp_escape_strcpy(newkey, key);
newkey[keylen] = 0;
@ -123,7 +125,7 @@ void rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen){
}
char* newkey = rjp_alloc(keylen + 1);
strncpy(newkey, key, keylen+1);
rjp_set_key(dest, newkey, keylen);
rjp_set_key_steal(dest, newkey, keylen);
}
void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
if(key){