浏览代码

Utils: PatchDetach: Check for invalid patch string

Max Bruckner 8 年之前
父节点
当前提交
ff0681e4fd
共有 1 个文件被更改,包括 10 次插入3 次删除
  1. 10 3
      cJSON_Utils.c

+ 10 - 3
cJSON_Utils.c

@@ -234,12 +234,19 @@ static cJSON *cJSONUtils_PatchDetach(cJSON *object, const char *path)
 
     /* copy path and split it in parent and child */
     parentptr = cJSONUtils_strdup(path);
+    if (parentptr == NULL) {
+        return NULL;
+    }
+
     childptr = strrchr(parentptr, '/'); /* last '/' */
-    if (childptr)
+    if (childptr == NULL)
     {
-        /* split strings */
-        *childptr++ = '\0';
+        free(parentptr);
+        return NULL;
     }
+    /* split strings */
+    *childptr++ = '\0';
+
     parent = cJSONUtils_GetPointer(object, parentptr);
     cJSONUtils_InplaceDecodePointerString(childptr);