Skip to content

Memory leak in sapi/fuzzer/fuzzer-unserializehash.c, sapi/fuzzer/fuzzer-unserialize.c, sapi/fuzzer/fuzzer-json.c, sapi/fuzzer/fuzzer-mbregex.c detected by cppchecker #18081

Description

@Lung-Alexandra

Description

I have detected a potential memory leak in sapi/fuzzer/fuzzer-unserializehash.c(line 43), sapi/fuzzer/fuzzer-unserialize.c(line 38) , sapi/fuzzer/fuzzer-json.c(line 39), sapi/fuzzer/fuzzer-mbregex.c(line 39)

I ran cppchecker on the fuzzer components and discovered several memory leaks. The issue is caused by the allocated memory for orig_data/ data which is not freed when fuzzer_request_startup() returns FAILURE. This happens because the function returns immediately without calling free(orig_data) / free(data), leading to a memory leak.

CppCheck Error Message:

fuzzer-json.c:39:3: error: Memory leak: data [memleak]
  return 0;
fuzzer-mbregex.c:39:3: error: Memory leak: data [memleak]
  return 0;
fuzzer-unserialize.c:38:3: error: Memory leak: orig_data [memleak]
  return 0;
fuzzer-unserializehash.c:43:3: error: Memory leak: orig_data [memleak]
  return 0;

I will submit a pull request with a fix shortly.

PHP Version

PHP 8.3

Operating System

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions