diff options
author | raquel medina <raquel.medina@konsulko.com> | 2019-01-22 19:03:56 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2019-03-05 02:05:08 +0000 |
commit | 44511e5965ff8176d297eae9284a2170d88bbc52 (patch) | |
tree | 0334720f5a4281dd8d07962b98f0c746cfe3eca0 /meta-agl-profile-core/recipes-connectivity | |
parent | 1c724729f87fcf3849c8247a8f496183bb5a5b1e (diff) |
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 <raquel.medina@konsulko.com>
(cherry picked from commit a4a506023da9ebe77539af167712320a3e0cd850)
Diffstat (limited to 'meta-agl-profile-core/recipes-connectivity')
2 files changed, 37 insertions, 1 deletions
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 <raquel.medina@konsulko.com> +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 <raquel.medina@konsulko.com> +--- + 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" |