From: Matt Ranostay Date: Mon, 29 Jul 2019 18:51:32 +0000 (-0700) Subject: binding: bluetooth-pbap: add check on file pointer X-Git-Tag: 8.99.1~6 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=1f7d42ad5109e5333dc8059dcd8ac8a63bea5861;p=apps%2Fagl-service-bluetooth-pbap.git binding: bluetooth-pbap: add check on file pointer Avoid segfaulting if obex data transfer result cannot be accessed due to permissions. Bug-AGL: SPEC-2695 Change-Id: Iae75af3e44f7e8265f1a9a52d2343d358c985bfc Signed-off-by: Matt Ranostay --- diff --git a/binding/bluetooth-pbap-binding.c b/binding/bluetooth-pbap-binding.c index cf39851..5b23d6d 100644 --- a/binding/bluetooth-pbap-binding.c +++ b/binding/bluetooth-pbap-binding.c @@ -161,6 +161,9 @@ static char *get_vcard_xfer(gchar *filename) size_t size, n; fp = fopen(filename, "ro"); + if (!fp) + return NULL; + fseek(fp, 0L, SEEK_END); size = ftell(fp); vcard_data = calloc(1, size); @@ -274,7 +277,7 @@ static gchar *pull_vcards(int max_entries) static json_object *get_vcards(int max_entries) { - json_object *vcards; + json_object *vcards = NULL; gchar *tpath, *filename, *vcards_str = NULL; tpath = pull_vcards(max_entries); @@ -287,10 +290,11 @@ static json_object *get_vcards(int max_entries) g_hash_table_remove(xfer_complete, tpath); g_mutex_unlock(&xfer_complete_mutex); - vcards = json_object_new_object(); - json_object_object_add(vcards, "vcards", parse_vcards(vcards_str)); - g_free(vcards_str); - + if (vcards_str) { + vcards = json_object_new_object(); + json_object_object_add(vcards, "vcards", parse_vcards(vcards_str)); + g_free(vcards_str); + } return vcards; }