From 44511e5965ff8176d297eae9284a2170d88bbc52 Mon Sep 17 00:00:00 2001 From: raquel medina Date: Tue, 22 Jan 2019 19:03:56 +0200 Subject: neard: cancel empty record processing on tag detection neard service clients registered for tag interface call a series of getter methods via dbus. In the case of a tag programmed with a valid NDEF containing an empty record (D0 00 00) no valid dbus string type is associated with the record and the get_type_property call results in a dbus error and neard service exit. This commit offers a workaround to avoid this particular situation while a more comprehensive solution is found (there are other record types that would fall in this same scenario). Bug-AGL: SPEC-2123 Change-Id: I1b6d639bdc2aea0a331e8c06d6eac18da21482f5 Signed-off-by: raquel medina (cherry picked from commit a4a506023da9ebe77539af167712320a3e0cd850) --- ...dbus-property_get_type-method-on-empty-re.patch | 33 ++++++++++++++++++++++ .../recipes-connectivity/neard/neard_0.16.bbappend | 5 +++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch diff --git a/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch b/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch new file mode 100644 index 000000000..49c11a509 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch @@ -0,0 +1,33 @@ +From d7ea2a00e00795ad24897e3481b015a27d37d60f Mon Sep 17 00:00:00 2001 +From: Raquel Medina +Date: Tue, 22 Jan 2019 09:00:05 -0500 +Subject: [PATCH] ndef: avoid dbus property_get_type method on empty record + +Signed-off-by: Raquel Medina +--- + src/ndef.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/ndef.c b/src/ndef.c +index 5656baf..883c6f4 100644 +--- a/src/ndef.c ++++ b/src/ndef.c +@@ -2832,10 +2832,14 @@ GList *near_ndef_parse_msg(uint8_t *ndef_data, size_t ndef_length, + case RECORD_TYPE_WKT_ALTERNATIVE_CARRIER: + case RECORD_TYPE_WKT_COLLISION_RESOLUTION: + case RECORD_TYPE_WKT_ERROR: +- case RECORD_TYPE_UNKNOWN: + case RECORD_TYPE_ERROR: + break; + ++ case RECORD_TYPE_UNKNOWN: ++ if (record->header->tnf == RECORD_TNF_EMPTY) ++ goto fail; ++ break; ++ + case RECORD_TYPE_WKT_HANDOVER_REQUEST: + case RECORD_TYPE_WKT_HANDOVER_SELECT: + /* +-- +2.17.1 + diff --git a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend b/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend index 4bca42d94..64a044cb5 100644 --- a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend +++ b/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend @@ -1,4 +1,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -SRC_URI_append = "file://0001-systemd-neard-add-multi-user.target-to-neard.service.patch" +SRC_URI_append = "\ + file://0001-systemd-neard-add-multi-user.target-to-neard.service.patch \ + file://0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch \ + " SYSTEMD_SERVICE_${PN} = "neard.service" -- cgit 1.2.3-korg