| 1234567891011121314151617181920212223242526272829303132 |
- #include "RyanJsonFuzzer.h"
- // Fuzzer 全局状态
- RyanJsonFuzzerState g_fuzzerState = {0};
- /**
- * @brief Fuzzer 专用 malloc Hook
- *
- * 正常情况下直接透传系统分配;当故障注入开启时,按概率返回 NULL,
- * 用于命中库内部的 OOM 清理与回滚路径。
- */
- void *RyanJsonFuzzerMalloc(size_t size)
- {
- if (g_fuzzerState.isEnableMemFail && RyanJsonFuzzerShouldFail(598)) { return NULL; }
- return (char *)malloc(size);
- }
- void RyanJsonFuzzerFree(void *block)
- {
- free(block);
- }
- /**
- * @brief Fuzzer 专用 realloc Hook
- *
- * 与 malloc Hook 保持同样的注入语义,重点覆盖扩容失败后的资源释放逻辑。
- */
- void *RyanJsonFuzzerRealloc(void *block, size_t size)
- {
- if (g_fuzzerState.isEnableMemFail && RyanJsonFuzzerShouldFail(508)) { return NULL; }
- return (char *)realloc(block, size);
- }
|