已合并
osMemoryPoolNew中 uint32_t 乘法溢出导致校验使用截断小值,触发内核堆越界写入。 #1151
yang-pangyuan创建于 6月23日
osMemoryPoolNew中 uint32_t 乘法溢出导致校验使用截断小值,触发内核堆越界写入。 #1151
已合并
共 1 个文件变更+3-1
| @@ -1444,7 +1444,9 @@ osMemoryPoolId_t osMemoryPoolNew(uint32_t block_count, uint32_t block_size, cons | |||
| 1444 | if ((block_count == 0) || (block_size == 0)) { | 1444 | if ((block_count == 0) || (block_size == 0)) { |
| 1445 | return NULL; | 1445 | return NULL; |
| 1446 | } | 1446 | } |
| 1447 | - | 1447 | + if (block_count > (UINT32_MAX / block_size)){ |
| 1448 | + return NULL; | ||
| 1449 | + } | ||
| 1448 | size = block_count * block_size; | 1450 | size = block_count * block_size; |
| 1449 | 1451 | ||
| 1450 | if (attr != NULL) { | 1452 | if (attr != NULL) { |