Commit bead418
committed
Fix potential panic due to huge layout
If a user provides a layout with a big enough size, the allocator
might panic on an unwrap instead of returning an error. The reason is
that, even though the layout size is properly rounded to a power of
two, Layout::from_size_align() will fail if the size overflows isize
when rounded to the layout alignment.
Fix this by handling the error instead of unwrapping it.
Keep an unwrap in the HoleList::deallocate() as the validity of the
layout must be guaranteed by the caller since it is an unsafe
function.1 parent 9645f42 commit bead418
1 file changed
+5
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
365 | 365 | | |
366 | 366 | | |
367 | 367 | | |
368 | | - | |
| 368 | + | |
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
374 | | - | |
| 374 | + | |
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| |||
389 | 389 | | |
390 | 390 | | |
391 | 391 | | |
392 | | - | |
| 392 | + | |
393 | 393 | | |
394 | 394 | | |
395 | 395 | | |
| |||
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
422 | | - | |
| 422 | + | |
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
| |||
0 commit comments