blob: bf14db03e020fc8a8897d09d323162075ad5671c [file] [log] [blame]
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