rocr: fix nullptr dereference (#262)
* rocr: fix nullptr dereference Return early in the case that malloc fails to avoid dereferencing of a null pointer on eventDescrp. Signed-off-by: Sunday Clement <Sunday.Clement@amd.com> * rocr: Fix potential nullptr dereference returns early if sym->section() fails to properly acquire the object. Signed-off-by: Sunday Clement <Sunday.Clement@amd.com> --------- Signed-off-by: Sunday Clement <Sunday.Clement@amd.com> Co-authored-by: Sunday Clement <Sunday.Clement@amd.com>
This commit is contained in:
zatwierdzone przez
GitHub
rodzic
55ca813ded
commit
bebe65f104
@@ -539,6 +539,8 @@ typedef struct EventDescriptor_ {
|
|||||||
EventHandle CreateOsEvent(bool auto_reset, bool init_state) {
|
EventHandle CreateOsEvent(bool auto_reset, bool init_state) {
|
||||||
EventDescriptor* eventDescrp;
|
EventDescriptor* eventDescrp;
|
||||||
eventDescrp = (EventDescriptor*)malloc(sizeof(EventDescriptor));
|
eventDescrp = (EventDescriptor*)malloc(sizeof(EventDescriptor));
|
||||||
|
|
||||||
|
if(!eventDescrp) { return nullptr; }
|
||||||
|
|
||||||
pthread_mutex_init(&eventDescrp->mutex, NULL);
|
pthread_mutex_init(&eventDescrp->mutex, NULL);
|
||||||
pthread_cond_init(&eventDescrp->event, NULL);
|
pthread_cond_init(&eventDescrp->event, NULL);
|
||||||
|
|||||||
@@ -1614,6 +1614,8 @@ uint64_t ExecutableImpl::SymbolAddress(hsa_agent_t agent, code::Symbol* sym)
|
|||||||
uint64_t ExecutableImpl::SymbolAddress(hsa_agent_t agent, elf::Symbol* sym)
|
uint64_t ExecutableImpl::SymbolAddress(hsa_agent_t agent, elf::Symbol* sym)
|
||||||
{
|
{
|
||||||
elf::Section* sec = sym->section();
|
elf::Section* sec = sym->section();
|
||||||
|
if(!sec) { return NULL; }
|
||||||
|
|
||||||
Segment* seg = SectionSegment(agent, sec);
|
Segment* seg = SectionSegment(agent, sec);
|
||||||
uint64_t vaddr = sec->addr() + sym->value();
|
uint64_t vaddr = sec->addr() + sym->value();
|
||||||
return nullptr == seg ? 0 : (uint64_t) (uintptr_t) seg->Address(vaddr);
|
return nullptr == seg ? 0 : (uint64_t) (uintptr_t) seg->Address(vaddr);
|
||||||
|
|||||||
Reference in New Issue
Block a user