Check for null in return_to_mut. Fixes #4904.
This commit is contained in:
parent
5f52669296
commit
0dc6c414af
1 changed files with 6 additions and 2 deletions
|
|
@ -99,8 +99,12 @@ pub unsafe fn borrow_as_imm(a: *u8) {
|
||||||
#[lang="return_to_mut"]
|
#[lang="return_to_mut"]
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub unsafe fn return_to_mut(a: *u8) {
|
pub unsafe fn return_to_mut(a: *u8) {
|
||||||
let a: *mut BoxRepr = transmute(a);
|
// Sometimes the box is null, if it is conditionally frozen.
|
||||||
(*a).header.ref_count &= !FROZEN_BIT;
|
// See e.g. #4904.
|
||||||
|
if !a.is_null() {
|
||||||
|
let a: *mut BoxRepr = transmute(a);
|
||||||
|
(*a).header.ref_count &= !FROZEN_BIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[lang="check_not_borrowed"]
|
#[lang="check_not_borrowed"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue