diff --git a/services/zidl/src/driver_ext_mgr_types.cpp b/services/zidl/src/driver_ext_mgr_types.cpp index 3b55652ed2379b6898e853627bd11615fe979e86..8e9136fa7514a23f33f5ba8575260a6888d825ef 100644 --- a/services/zidl/src/driver_ext_mgr_types.cpp +++ b/services/zidl/src/driver_ext_mgr_types.cpp @@ -274,12 +274,12 @@ bool HidDeviceMarshalling(Hid_Device *hidDevice, MessageParcel &parcel) std::optional HidDeviceUnMarshalling(MessageParcel &parcel) { Hid_Device hidDevice; - std::string str; - if (!parcel.ReadString(str)) { + std::string* str = new std::string(); + if (!parcel.ReadString(*str)) { EDM_LOGE(MODULE_DEV_MGR, "failed to read deviceName"); return std::nullopt; } - hidDevice.deviceName = (char *)str.c_str(); + hidDevice.deviceName = (char *)str->c_str(); if (!parcel.ReadUint16(hidDevice.vendorId)) { EDM_LOGE(MODULE_DEV_MGR, "failed to read vendorId");