diff --git a/cJSON.c b/cJSON.c index 3a7219ae2a9a6bf73480f589a4756164d2120ff1..3c90a7e0991878b07ddac1b8a2ddbc88849cb8fb 100644 --- a/cJSON.c +++ b/cJSON.c @@ -406,10 +406,11 @@ CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring) return NULL; } /* return NULL if the object is corrupted */ - if (object->valuestring == NULL) + if (object->valuestring == NULL || valuestring == NULL) { return NULL; } + if (strlen(valuestring) <= strlen(object->valuestring)) { strcpy(object->valuestring, valuestring);