| From 1501f2b90e4df38cbab3e8ec2ba37e1211102c3c Mon Sep 17 00:00:00 2001 |
| From: Nobuhiro Iwamatsu <iwamatsu@debian.org> |
| Date: Wed, 23 May 2018 08:27:12 +0900 |
| Subject: [PATCH] shared/gatt-client: Fix segfault after PIN entry (Closes: #884663) |
| |
| This fixes the problem of referring to NULL when ext_prop_read_cb() callback |
| function is called with the value variable of read_cb not initialized. |
| |
| Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@debian.org> |
| --- |
| src/shared/gatt-client.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c |
| index 1285c37ef..57f9e3d0f 100644 |
| --- a/src/shared/gatt-client.c |
| +++ b/src/shared/gatt-client.c |
| @@ -2128,6 +2128,10 @@ static void read_cb(uint8_t opcode, const void *pdu, uint16_t length, |
| const uint8_t *value = NULL; |
| uint16_t value_len = 0; |
| |
| + value_len = length; |
| + if (value_len) |
| + value = pdu; |
| + |
| if (opcode == BT_ATT_OP_ERROR_RSP) { |
| success = false; |
| att_ecode = process_error(pdu, length); |
| @@ -2140,10 +2144,6 @@ static void read_cb(uint8_t opcode, const void *pdu, uint16_t length, |
| } |
| |
| success = true; |
| - value_len = length; |
| - if (value_len) |
| - value = pdu; |
| - |
| done: |
| if (op->callback) |
| op->callback(success, att_ecode, value, length, op->user_data); |
| -- |
| 2.17.0 |
| |