aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>2018-09-18 08:19:52 +0200
committerMark Greer <mark.greer@strongwatch.com>2021-08-07 18:36:08 -0700
commitc2f0354cf12202d235c6726a997230e905008423 (patch)
treedfb4a85c209ed6cfc9e7da0198fdefe62f5c1d52
parentcc364207f059ad2aec728fdf56852e1af2af1b0c (diff)
downloadneard-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.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/ndef.c b/src/ndef.c
index f26e674..c8fea50 100644
--- a/src/ndef.c
+++ b/src/ndef.c
@@ -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,