Procházet zdrojové kódy

Add protection for rfcomm close API in SPP

weitianhua před 5 roky
rodič
revize
8a9bfd3e92

+ 8 - 6
components/bt/host/bluedroid/stack/rfcomm/port_utils.c

@@ -210,16 +210,18 @@ void port_release_port (tPORT *p_port)
 
     osi_mutex_global_lock();
     RFCOMM_TRACE_DEBUG("port_release_port, p_port:%p", p_port);
-    while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->rx.queue, 0)) != NULL) {
-        osi_free (p_buf);
+    if (p_port->rx.queue) {
+        while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->rx.queue, 0)) != NULL) {
+            osi_free (p_buf);
+        }
     }
-
     p_port->rx.queue_size = 0;
 
-    while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->tx.queue, 0)) != NULL) {
-        osi_free (p_buf);
+    if (p_port->tx.queue) {
+        while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->tx.queue, 0)) != NULL) {
+            osi_free (p_buf);
+        }   
     }
-
     p_port->tx.queue_size = 0;
 
     osi_mutex_global_unlock();