Fix missing NULL check in rjp object key setting. Fix allowing empty key in object member addition
This commit is contained in:
parent
16bb20a09f
commit
7395f41ccc
@ -51,7 +51,8 @@ RJP_value* rjp_new_member_steal_key(RJP_value* dest, char* key, RJP_index keylen
|
|||||||
if(!key)
|
if(!key)
|
||||||
return NULL;
|
return NULL;
|
||||||
if(!keylen)
|
if(!keylen)
|
||||||
keylen = strlen(key);
|
if(!(keylen = strlen(key)))
|
||||||
|
return NULL;
|
||||||
switch(dest->type){
|
switch(dest->type){
|
||||||
case rjp_json_object:
|
case rjp_json_object:
|
||||||
return irjp_add_unordered_member(dest, key, keylen);
|
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)
|
if(!key)
|
||||||
return NULL;
|
return NULL;
|
||||||
if(!keylen)
|
if(!keylen)
|
||||||
keylen = rjp_escape_strlen(key);
|
if(!(keylen = rjp_escape_strlen(key)))
|
||||||
|
return NULL;
|
||||||
char* newkey = rjp_alloc(keylen+1);
|
char* newkey = rjp_alloc(keylen+1);
|
||||||
rjp_escape_strcpy(newkey, key);
|
rjp_escape_strcpy(newkey, key);
|
||||||
newkey[keylen] = 0;
|
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);
|
char* newkey = rjp_alloc(keylen + 1);
|
||||||
strncpy(newkey, key, 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){
|
void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
||||||
if(key){
|
if(key){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user