display: Add checks on GetActiveConfig API

This change adds null pointer checks on the GetActiveConfig API.

Change-Id: Ic61507ab9fe083f85a7708e262ecdf7714cf9087
CRs-Fixed: 2784749
This commit is contained in:
Rheygine Medel
2020-10-07 16:33:15 -07:00
parent 7dd7b364b3
commit 29c60d75b1
2 changed files with 13 additions and 4 deletions

View File

@@ -140,6 +140,10 @@ int ClientImpl::GetConfigCount(DisplayType dpy, uint32_t *count) {
}
int ClientImpl::GetActiveConfig(DisplayType dpy, uint32_t *config) {
if (!config) {
return -EINVAL;
}
ByteStream input_params;
input_params.setToExternal(reinterpret_cast<uint8_t*>(&dpy), sizeof(DisplayType));
const uint32_t *output;
@@ -150,11 +154,15 @@ int ClientImpl::GetActiveConfig(DisplayType dpy, uint32_t *config) {
output_params = params;
};
if (display_config_) {
display_config_->perform(client_handle_, kGetActiveConfig, input_params, {}, hidl_cb);
}
if (!error) {
const uint8_t *data = output_params.data();
output = reinterpret_cast<const uint32_t*>(data);
*config = *output;
}
return error;
}

View File

@@ -61,6 +61,7 @@ int DeviceImpl::CreateInstance(ClientContext *intf) {
Return<void> DeviceImpl::registerClient(const hidl_string &client_name,
const sp<IDisplayConfigCallback>& callback,
registerClient_cb _hidl_cb) {
ALOGI("Register client:%s", client_name.c_str());
int32_t error = 0;
std::string client_name_str = client_name.c_str();
if (client_name_str.empty()) {