Skip to content

memheap内存管理算法漏洞修复#5366

Merged
BernardXiong merged 2 commits into
RT-Thread:masterfrom
babboys:master
Dec 13, 2021
Merged

memheap内存管理算法漏洞修复#5366
BernardXiong merged 2 commits into
RT-Thread:masterfrom
babboys:master

Conversation

@babboys

@babboys babboys commented Dec 12, 2021

Copy link
Copy Markdown
Contributor

拉取/合并请求描述:(PR description)

[
原memheap内存管理算法中存在两个问题,如下:

  1. rt_malloc(0)时会分配长度为RT_MEMHEAP_MINIALLOC(12)的内存,这里与slab、小内存管理算法的行为不一致,并且有可能导致rt_malloc分配的内存地址没有RT_ALIGN_SIZE字节对齐。
  2. rt_system_heap_init初始化堆时,如果传入的地址没有RT_ALIGN_SIZE字节对齐,rt_malloc分配的地址也不会RT_ALIGN_SIZE字节对齐。

本次提交对上述两个问题进行修复,方案如下:

  1. rt_malloc(0) 时返回RT_NULL,与slab算法、小内存算法保持一致。
  2. 对rt_system_heap_init传入的地址进行对齐。
    ]

以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。
The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 本拉取/合并请求代码是高质量的 Code in this PR is of high quality
  • 本拉取/合并使用formatting等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification

@CLAassistant

CLAassistant commented Dec 12, 2021

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@aozima

aozima commented Dec 12, 2021

Copy link
Copy Markdown
Member

对于 malloc(0) 这种故意挑事的代码,实现时可以返回一个空指针作为回礼。

@BernardXiong BernardXiong merged commit ee1e854 into RT-Thread:master Dec 13, 2021
@mysterywolf mysterywolf mentioned this pull request Dec 15, 2021
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants