]> granicus.if.org Git - esp-idf/commitdiff
component/bt: Add parameter check for attp_build_sr_msg function
authorisland <island@espressif.com>
Fri, 12 May 2017 06:30:33 +0000 (14:30 +0800)
committerisland <island@espressif.com>
Fri, 12 May 2017 06:30:33 +0000 (14:30 +0800)
components/bt/bluedroid/stack/gatt/att_protocol.c

index 62bb12019cd192b050233eb12a8c70c851562c03..28e4a255165ce215b41674b813f4f99a36b9380f 100644 (file)
@@ -378,10 +378,26 @@ BT_HDR *attp_build_sr_msg(tGATT_TCB *p_tcb, UINT8 op_code, tGATT_SR_MSG *p_msg)
     switch (op_code) {
     case GATT_RSP_READ_BLOB:
     case GATT_RSP_PREPARE_WRITE:
+    case GATT_RSP_READ_BY_TYPE:
+    case GATT_RSP_READ:
+    case GATT_HANDLE_VALUE_NOTIF:
+    case GATT_HANDLE_VALUE_IND:
+    case GATT_RSP_ERROR:
+    case GATT_RSP_MTU:
+    /* Need to check the validation of parameter p_msg*/
         if (p_msg == NULL) {
-            GATT_TRACE_ERROR("Invalid prepare write response or read blob response, the rsp_msg can't be NULL.");
+            GATT_TRACE_ERROR("Invalid parameters in %s, op_code=0x%x, the p_msg should not be NULL.", __func__, op_code);
             return NULL;
         }
+        break;
+
+    default:
+        break;
+    }
+
+    switch (op_code) {
+    case GATT_RSP_READ_BLOB:
+    case GATT_RSP_PREPARE_WRITE:
         GATT_TRACE_EVENT ("ATT_RSP_READ_BLOB/GATT_RSP_PREPARE_WRITE: len = %d offset = %d",
                           p_msg->attr_value.len, p_msg->attr_value.offset);
         offset = p_msg->attr_value.offset;