{
callback_info_s *info;
auto size = msg.size();
- char *data = new(std::nothrow) char[size];
- if (data == NULL)
+ char *data = nullptr;
+ try {
+ data = new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
return;
+ }
+ if (data == NULL) {
+ _E("Failed to allocate memory");
+ return;
+ }
memcpy(data, msg.body(), size);
info = new(std::nothrow) callback_info_s();
size = sizeof(cmd_listener_attr_str_t) + len;
- buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ try {
+ buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
+ return -EINVAL;
+ }
retvm_if(!buf, -ENOMEM, "Failed to allocate memory");
msg.set_type(CMD_LISTENER_SET_ATTR_STR);
}
size_t size = reply.size();
- cmd_listener_get_data_list_t* reply_buf = (cmd_listener_get_data_list_t *) new(std::nothrow) char[size];
+ cmd_listener_get_data_list_t* reply_buf = nullptr;
+ try {
+ reply_buf = (cmd_listener_get_data_list_t *) new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
+ return -EINVAL;
+ }
retvm_if(!reply_buf, -ENOMEM, "Failed to allocate memory");
m_interval_changed_cb(m_provider, buf.value, m_interval_changed_user_data);
break;
case CMD_PROVIDER_ATTR_STR:
- cmd_provider_attr_str_t *attr;
+ cmd_provider_attr_str_t *attr = nullptr;
+
+ try {
+ attr = (cmd_provider_attr_str_t *) new(std::nothrow) char[msg.size()];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", msg.size());
+ return;
+ }
- attr = (cmd_provider_attr_str_t *) new(std::nothrow) char[msg.size()];
retm_if(!attr, "Failed to allocate memory");
msg.disclose((char *)attr, msg.size());
size = sizeof(cmd_provider_attr_str_t) + len;
- buf = (cmd_provider_attr_str_t *) new(std::nothrow) char[size];
+ try {
+ buf = (cmd_provider_attr_str_t *) new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
+ return -EINVAL;
+ }
retvm_if(!buf, -ENOMEM, "Failed to allocate memory");
cmd_listener_attr_str_t *buf;
size_t size;
size = sizeof(cmd_listener_attr_str_t) + len;
- buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ try {
+ buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
+ return -EINVAL;
+ }
retvm_if(!buf, -ENOMEM, "Failed to allocate memory");
auto msg = ipc::message::create();
int sensor_handler::get_attribute(int32_t attr, char **value, int *len)
{
+ retv_if(!value, OP_ERROR);
+ retv_if(!len, OP_ERROR);
+
auto it = m_attributes_str.find(attr);
retv_if(it == m_attributes_str.end(), OP_ERROR);
*len = it->second.size();
- *value = new(std::nothrow) char[*len];
+ try {
+ *value = new(std::nothrow) char[*len];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%d)", *len);
+ return OP_ERROR;
+ }
+ if (*value == nullptr) {
+ _E("Failed to allocate memory");
+ return OP_ERROR;
+ }
+
std::copy(it->second.begin(), it->second.end(), *value);
return OP_SUCCESS;
sensor_info info;
std::vector<char> raw_list;
+ retvm_if(!bytes, -EINVAL, "Invalid parameter, bytes cannot be NULL");
+
put_int_to_vec(raw_list, m_sensors.size());
for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
delete raw;
}
- *bytes = new(std::nothrow) char[raw_list.size()];
+ try {
+ *bytes = new(std::nothrow) char[raw_list.size()];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", raw_list.size());
+ return -EINVAL;
+ }
retvm_if(!*bytes, -ENOMEM, "Failed to allocate memory");
std::copy(raw_list.begin(), raw_list.end(), *bytes);
uint32_t id;
cmd_listener_attr_str_t *buf;
- buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[msg.size()];
+ try {
+ buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[msg.size()];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", msg.size());
+ return -EINVAL;
+ }
retvm_if(!buf, -ENOMEM, "Failed to allocate memory");
msg.disclose((char *)buf, msg.size());
uint32_t id;
cmd_listener_attr_str_t *buf;
- buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[msg.size()];
+ try {
+ buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[msg.size()];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", msg.size());
+ return -EINVAL;
+ }
retvm_if(!buf, -ENOMEM, "Failed to allocate memory");
msg.disclose((char *)buf, msg.size());
cmd_listener_attr_str_t *reply_buf;
size_t size = sizeof(cmd_listener_attr_str_t) + len;
- reply_buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ try {
+ reply_buf = (cmd_listener_attr_str_t *) new(std::nothrow) char[size];
+ } catch (std::bad_array_new_length &e) {
+ _E("Failed to allocate memory, invalid size(%zu)", size);
+ return -EINVAL;
+ }
retvm_if(!reply_buf, -ENOMEM, "Failed to allocate memory");
reply_buf->attribute = attr;