sm8450-common: nonui-notifier: Switch to shared_ptr to avoid memory leaks

Change-Id: I950bd5f6abd1dd78093864f5813ab22f0e093ded
This commit is contained in:
Arian
2025-03-25 17:23:40 +01:00
parent 9aa22d6c2a
commit b6d0f0fb2b
5 changed files with 14 additions and 8 deletions

View File

@@ -6,7 +6,9 @@
#pragma once
#include <memory>
#include <display/drm/mi_disp.h>
bool readBool(int fd);
disp_event_resp* parseDispEvent(int fd);
std::shared_ptr<disp_event_resp> parseDispEvent(int fd);

View File

@@ -91,7 +91,7 @@ void AodNotifier::notify() {
continue;
}
struct disp_event_resp* response = parseDispEvent(disp_fd_.get());
std::shared_ptr<disp_event_resp> response = parseDispEvent(disp_fd_.get());
if (response == nullptr) {
continue;
}

View File

@@ -93,7 +93,7 @@ void LightNotifier::notify() {
continue;
}
struct disp_event_resp* response = parseDispEvent(disp_fd_.get());
std::shared_ptr<disp_event_resp> response = parseDispEvent(disp_fd_.get());
if (response == nullptr) {
continue;
}

View File

@@ -29,7 +29,7 @@ bool readBool(int fd) {
return c != '0';
}
disp_event_resp* parseDispEvent(int fd) {
std::shared_ptr<disp_event_resp> parseDispEvent(int fd) {
disp_event header;
ssize_t headerSize = read(fd, &header, sizeof(header));
if (headerSize < sizeof(header)) {
@@ -37,8 +37,12 @@ disp_event_resp* parseDispEvent(int fd) {
return nullptr;
}
struct disp_event_resp* response =
reinterpret_cast<struct disp_event_resp*>(malloc(header.length));
std::shared_ptr<disp_event_resp> response(static_cast<disp_event_resp*>(malloc(header.length)),
free);
if (!response) {
LOG(ERROR) << "failed to allocate memory for display event response";
return nullptr;
}
response->base = header;
int dataLength = response->base.length - sizeof(response->base);