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:
systems-assistant[bot]
2025-10-21 13:49:01 -04:00
کامیت شده توسط GitHub
والد 55ca813ded
کامیت bebe65f104
2فایلهای تغییر یافته به همراه4 افزوده شده و 0 حذف شده
@@ -540,6 +540,8 @@ 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);
eventDescrp->auto_reset = auto_reset; eventDescrp->auto_reset = auto_reset;
@@ -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);