diff options
author | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | 2018-09-18 08:19:52 +0200 |
---|---|---|
committer | Mark Greer <mark.greer@strongwatch.com> | 2021-08-07 18:36:08 -0700 |
commit | c2f0354cf12202d235c6726a997230e905008423 (patch) | |
tree | dfb4a85c209ed6cfc9e7da0198fdefe62f5c1d52 | |
parent | cc364207f059ad2aec728fdf56852e1af2af1b0c (diff) | |
download | neard-c2f0354cf12202d235c6726a997230e905008423.tar.gz |
ndef: Only register interface for known records
If we register the interface for unknown/error records neard daemon will
crash with no useful output message.
...
neard[2404]: src/ndef.c:aar_exists() No AAR
neard[2404]: src/ndef.c:mime_payload_exists() No MIME payload
neard[2404]: D-Bus disconnect
neard[2404]: D-Bus disconnect (BT)
...
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
[mag: Removed dead url]
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
-rw-r--r-- | src/ndef.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -2593,8 +2593,22 @@ parse_aar_payload(uint8_t *payload, uint32_t length) int __near_ndef_record_register(struct near_ndef_record *record, char *path) { - record->path = path; + switch (record->header->rec_type) { + case RECORD_TYPE_WKT_TEXT: + case RECORD_TYPE_WKT_URI: + case RECORD_TYPE_WKT_SMART_POSTER: + case RECORD_TYPE_WKT_HANDOVER_REQUEST: + case RECORD_TYPE_WKT_HANDOVER_SELECT: + case RECORD_TYPE_WKT_HANDOVER_CARRIER: + case RECORD_TYPE_MIME_TYPE: + case RECORD_TYPE_EXT_AAR: + break; + default: + DBG("Unrecognized record type: %u", record->header->rec_type); + return 0; + } + record->path = path; g_dbus_register_interface(connection, record->path, NFC_RECORD_INTERFACE, NULL, NULL, record_properties, |