浏览代码

ensure: Validate buffer offset

Max Bruckner 8 年之前
父节点
当前提交
1934059554
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      cJSON.c

+ 6 - 0
cJSON.c

@@ -253,6 +253,12 @@ static unsigned char* ensure(printbuffer * const p, size_t needed, const interna
         return NULL;
     }
 
+    if ((p->length > 0) && (p->offset >= p->length))
+    {
+        /* make sure that offset is valid */
+        return NULL;
+    }
+
     if (needed > INT_MAX)
     {
         /* sizes bigger than INT_MAX are currently not supported */