attr_handle);
if ((p_decl = gatt_find_hdl_buffer_by_attr_handle(attr_handle)) == NULL) {
- GATT_TRACE_ERROR("Service not created\n");
+ GATT_TRACE_ERROR("Service not created\n");
+ *length = 0;
return GATT_INVALID_HANDLE;
}
if (p_db == NULL) {
GATT_TRACE_ERROR("gatts_get_attribute_value Fail:p_db is NULL.\n");
+ *length = 0;
return GATT_INVALID_PDU;
}
if (p_db->p_attr_list == NULL) {
GATT_TRACE_ERROR("gatts_get_attribute_value Fail:p_db->p_attr_list is NULL.\n");
+ *length = 0;
return GATT_INVALID_PDU;
}
if (length == NULL){
}
if (value == NULL){
GATT_TRACE_ERROR("gatts_get_attribute_value Fail:value is NULL.\n");
+ *length = 0;
return GATT_INVALID_PDU;
}
*value = p_cur->p_value->attr_val.attr_val;
return GATT_SUCCESS;
} else {
- GATT_TRACE_ERROR("gatts_get_attribute_value failed:the value length is 0");
- return GATT_INVALID_ATTR_LEN;
+ *length = 0;
+ return GATT_SUCCESS;
}
break;
}
} else {
- if (p_cur->p_value->attr_val.attr_len != 0) {
+ if (p_cur->p_value && p_cur->p_value->attr_val.attr_len != 0) {
*length = p_cur->p_value->attr_val.attr_len;
*value = p_cur->p_value->attr_val.attr_val;
return GATT_SUCCESS;
} else {
- GATT_TRACE_ERROR("gatts_get_attribute_value failed:the value length is 0");
- return GATT_INVALID_ATTR_LEN;
+ *length = 0;
+ return GATT_SUCCESS;
}
}