Replies: 1 comment
-
|
@ClarkCh 可否提交个 PR 呢? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
linux pwn - glibc heap利用 - 深入理解ptmalloc2 - 申请内存块, 原文
"
注: 或许会很奇怪,为什么这里没有先去看 small chunk 是否满足新需求了呢?这是因为 small bin 在循环之前已经判断过了,这里如果有的话,就是合并后的才出现 chunk。但是在大循环外,large chunk 只是单纯地找到其索引,所以觉得在这里直接先判断是合理的,而且也为了下面可以再去找较大的 chunk。
"
感觉这里表述比较难理解,个人理解是:为什么这里只判断了nb是否large size而没判断nb是否small size?因为走到这个位置之前,对于small size申请已经尝试过:1.在smallbin里查找,没找到;2.整理fastbin放到unsortedbin里,在unsortedbin里查找没找到。也就是说small size申请已经不可能能在已有的bin数组里找到完全合适的了。但是large size申请还没尝试呢,所以large申请也要尝试找有没有完全合适的(size == nb)。 如果这一步还没找到完全合适的,那么无论是large size还是small size申请,都要进行下一个分配方案了:从偏大的chunk里分割出需要的,并把剩余的处理了;或者是直接从top chunk分配
Beta Was this translation helpful? Give feedback.
All reactions