1. 15 8月, 2022 1 次提交
    • F
      fix: malloc指针混淆及safe-unlink测试用例优化 · 3748cf9e
      Far 提交于
      在32位情况下,由于pretrim的存在,可能导致原用例无法正常进入unbin路径,
      进而引起子进程未能按照预期终止。通过更加精细地控制流程及增加malloc次数,
      保证进入unbin分支。
      malloc-free-performance由于需要打印耗时调用t_printf导致t_status修改为1,
      实际无错误,因此避免误报,直接返回0。
      Signed-off-by: NFar <yesiyuan2@huawei.com>
      Change-Id: I810b7f0b032deed33871e73b4bc428ac3ad13eb8
      3748cf9e
  2. 28 7月, 2022 1 次提交
    • F
      feat: malloc指针混淆以及safe unlink · 1d4c1642
      Far 提交于
      1. 指针混淆:
         对空闲chunk的双向链表指针next、prev进行混淆。具体为将该指针与一个key做异或操作。
         不同的bin拥有不同的key,key通过随机数生成器生成。
      2. safe unlink:
         在unbin操作时校验双向链表的有效性,即检查双向链表中前一项和后一项的指向当前chunk
         的指针是否正常,否则终止进程。
      
      这两个功能均可通过MALLOC_FREELIST_HARDENED宏开关
      这个宏可以通过编译框架直接开关(在编译命令后增加 --gn-args "musl_secure_level=1"打开)
      
      Change-Id: I05fd4404aeebcb396c8471f181a30305fb9dbe74
      Signed-off-by: NFar <yesiyuan2@huawei.com>
      1d4c1642