summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Yevmenkin <emax@FreeBSD.org>2015-12-23 16:32:04 +0000
committerMaksim Yevmenkin <emax@FreeBSD.org>2015-12-23 16:32:04 +0000
commit74cc817d850152ec893772d945384b337ca8fcbe (patch)
tree183dabff5065960d0a4ea366a8619026a276ec22
parent91569f1f388a2843ae567d9027d7d67f3e9590d0 (diff)
Notes
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
index d044ad93db29..57628b0e6b90 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
@@ -708,8 +708,15 @@ static int ng_btsocket_l2cap_process_l2ca_enc_change(struct ng_mesg *msg, ng_bts
op = (ng_l2cap_l2ca_enc_chg_op *)(msg->data);
+ mtx_lock(&ng_btsocket_l2cap_sockets_mtx);
+
pcb = ng_btsocket_l2cap_pcb_by_cid(&rt->src, op->lcid,
op->idtype);
+ if (pcb == NULL) {
+ mtx_unlock(&ng_btsocket_l2cap_sockets_mtx);
+ return (ENOENT);
+ }
+
mtx_lock(&pcb->pcb_mtx);
pcb->encryption = op->result;
@@ -729,6 +736,7 @@ static int ng_btsocket_l2cap_process_l2ca_enc_change(struct ng_mesg *msg, ng_bts
}
}
mtx_unlock(&pcb->pcb_mtx);
+ mtx_unlock(&ng_btsocket_l2cap_sockets_mtx);
return 0;
}