aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaquel Medina <raquel.medina@konsulko.com>2020-10-21 13:20:34 +0200
committerRaquel Medina <raquel.medina@konsulko.com>2020-10-26 13:30:44 +0100
commitbdcd1fe42febb04e1be428bdfa022f89b65a1cb1 (patch)
tree739091f4a4857d57b48e0a20fc6a6e7fc7bc5381
parent512c2dc6df87fff1fca05d791bb28a5b3faa2586 (diff)
The segmentation fault manifests if the remote disconnects pbap transport followed by a refresh pbap data operation. The root cause is a read operation of vcard data for the calls history, ignoring the error triggered while attempting to access the corresponding file on the remote device. The current patch introduces the missing check for errors. SPEC-3652 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I916ba5b8b5fc29aa9b928dbf2ed3e7c892d15891 test & deleteme Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I9efa151af54ae87cbf7e67bb6b985a76e0814549
-rw-r--r--binding/bluetooth-pbap-binding.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/binding/bluetooth-pbap-binding.c b/binding/bluetooth-pbap-binding.c
index 1ff6e82..ccfbb7c 100644
--- a/binding/bluetooth-pbap-binding.c
+++ b/binding/bluetooth-pbap-binding.c
@@ -473,8 +473,15 @@ void history(afb_req_t request)
if (!parse_max_entries_parameter(request, &max_entries))
return;
- org_bluez_obex_phonebook_access1_call_select_sync(
- phonebook, INTERNAL, list, NULL, NULL);
+ if (!phonebook)
+ return;
+
+ if (!org_bluez_obex_phonebook_access1_call_select_sync(
+ phonebook, INTERNAL, COMBINED, NULL, NULL)) {
+ afb_req_fail(request, "cannot import call history", NULL);
+ return;
+ }
+
jresp = get_vcards(max_entries);
afb_req_success(request, jresp, "call history");