Skip to content

[Code Quality][P2] CoreLoaderNapi ReadFile 无容量上限且缺异常保护,超大输入可触发崩溃 #37

Description

@daugf2527

问题描述

core_loader_napi.cppReadFilest_size 直接 data.resize(st_size),未设置上限;TestCoreLoader 路径也没有异常保护。

当输入超大文件时,可能触发大内存分配失败(bad_alloc)并沿 NAPI 回调向外逃逸,导致进程 terminate

代码证据

  • 无上限的 size 读取与分配:
    • entry/src/main/cpp/app/napi/core_loader_napi.cpp:41
    • entry/src/main/cpp/app/napi/core_loader_napi.cpp:46
  • 该分配路径由 NAPI 入口直接调用,未见异常保护:
    • entry/src/main/cpp/app/napi/core_loader_napi.cpp:264
    • entry/src/main/cpp/app/napi/core_loader_napi.cpp:291
  • 对照:项目其他资源读取路径已设置 512MB 上限:
    • entry/src/main/cpp/platform/resource/platform_resource_manager.cpp:72
    • entry/src/main/cpp/platform/resource/platform_resource_manager.cpp:103

官方/权威依据

影响

  • 调试接口输入异常大文件时,可能导致进程级崩溃(DoS)。
  • 与项目其它文件加载路径的容量治理策略不一致。

修复建议

  1. ReadFile 增加统一最大读取上限(与资源路径一致,如 512MB)。
  2. TestCoreLoader 增加异常保护并返回结构化错误。
  3. 将“测试路径文件读取”与生产路径统一到同一安全阈值策略。

验收标准

  • 超大输入不会导致进程崩溃。
  • 返回明确错误(而非崩溃或未定义行为)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions