Merge "Do not deregister HH GATT IF in bta_gattc_disable for hid over GATT" into klp-dev
diff --git a/bta/hh/bta_hh_le.c b/bta/hh/bta_hh_le.c
index 4d77cb9..02f34a2 100644
--- a/bta/hh/bta_hh_le.c
+++ b/bta/hh/bta_hh_le.c
@@ -2208,18 +2208,23 @@
     else if (p_data->char_id.char_id.uuid.uu.uuid16 == GATT_UUID_HID_BT_KB_INPUT)
         app_id = BTA_HH_APP_ID_KB;
 
-    /* need to append report ID to the head of data */
-    if ((p_buf = (UINT8 *)GKI_getbuf((UINT16)(p_data->len + 1))) == NULL)
-    {
-        APPL_TRACE_ERROR0("No resources to send report data");
-        return;
-    }
-
     APPL_TRACE_ERROR1("Notification received on report ID: %d", p_rpt->rpt_id);
 
-    p_buf[0] = p_rpt->rpt_id;
-    memcpy(&p_buf[1], p_data->value, p_data->len);
-    p_data->len ++;
+    /* need to append report ID to the head of data */
+    if (p_rpt->rpt_id != 0)
+    {
+        if ((p_buf = (UINT8 *)GKI_getbuf((UINT16)(p_data->len + 1))) == NULL)
+        {
+            APPL_TRACE_ERROR0("No resources to send report data");
+            return;
+        }
+
+        p_buf[0] = p_rpt->rpt_id;
+        memcpy(&p_buf[1], p_data->value, p_data->len);
+        ++p_data->len;
+    } else {
+        p_buf = p_data->value;
+    }
 
     bta_hh_co_data((UINT8)p_dev_cb->hid_handle,
                     p_buf,
@@ -2230,7 +2235,8 @@
                     p_dev_cb->addr,
                     app_id);
 
-    GKI_freebuf(p_buf);
+    if (p_buf != p_data->value)
+        GKI_freebuf(p_buf);
 }
 
 
diff --git a/bta/jv/bta_jv_act.c b/bta/jv/bta_jv_act.c
index b296f1b..ea1c9d7 100644
--- a/bta/jv/bta_jv_act.c
+++ b/bta/jv/bta_jv_act.c
@@ -301,9 +301,10 @@
         status = BTA_JV_FAILURE;
         return status;
     case BTA_JV_ST_CL_OPEN:
+    case BTA_JV_ST_CL_OPENING:
+        APPL_TRACE_DEBUG3("bta_jv_free_sr_rfc_cb: state: %d, scn:%d,"
+                          " user_data:%d", p_pcb->state, p_cb->scn, (int)p_pcb->user_data);
         p_pcb->state = BTA_JV_ST_CL_CLOSING;
-        APPL_TRACE_DEBUG2("bta_jv_free_sr_rfc_cb: state: BTA_JV_ST_CL_OPEN, scn:%d,"
-                " user_data:%d", p_cb->scn, (int)p_pcb->user_data);
         break;
     case BTA_JV_ST_SR_LISTEN:
         p_pcb->state = BTA_JV_ST_SR_CLOSING;
diff --git a/stack/sdp/sdp_api.c b/stack/sdp/sdp_api.c
index 9ad959a..cb632bd 100644
--- a/stack/sdp/sdp_api.c
+++ b/stack/sdp/sdp_api.c
@@ -460,7 +460,7 @@
                 && (SDP_DISC_ATTR_LEN(p_attr->attr_len_type) == 16))
             {
                 p_uuid->len = 16;
-                memcpy(p_uuid->uu.uuid128, p_sattr->attr_value.v.array, MAX_UUID_SIZE);
+                memcpy(p_uuid->uu.uuid128, p_attr->attr_value.v.array, MAX_UUID_SIZE);
                 return(TRUE);
             }
         }