forked from OSchip/llvm-project
Fix a crasher in
DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule where it assumed that a kernel had been found in memory, when that may not be the case when we're attaching to a device early in the boot process. <rdar://problem/12638140> llvm-svn: 167564
This commit is contained in:
parent
1cb5951a2f
commit
c56bd08373
|
@ -264,7 +264,8 @@ DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule (
|
|||
uuid = memory_module_sp->GetUUID();
|
||||
uuid_is_valid = uuid.IsValid();
|
||||
}
|
||||
if (memory_module_sp->GetObjectFile()
|
||||
if (memory_module_sp
|
||||
&& memory_module_sp->GetObjectFile()
|
||||
&& memory_module_sp->GetObjectFile()->GetType() == ObjectFile::eTypeExecutable
|
||||
&& memory_module_sp->GetObjectFile()->GetStrata() == ObjectFile::eStrataKernel)
|
||||
{
|
||||
|
|
|
@ -804,8 +804,8 @@ DWARFDebugLine::ParseStatementTable
|
|||
// field in the header, plus the value of the line_range field,
|
||||
// minus 1 (line base + line range - 1). If the desired line
|
||||
// increment is greater than the maximum line increment, a standard
|
||||
// opcode must be used instead of a special opcode. The “address
|
||||
// advance” is calculated by dividing the desired address increment
|
||||
// opcode must be used instead of a special opcode. The "address
|
||||
// advance" is calculated by dividing the desired address increment
|
||||
// by the minimum_instruction_length field from the header. The
|
||||
// special opcode is then calculated using the following formula:
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue