stkutil: refactor device filter
authorDenis Kenzior <denkenz@gmail.com>
Wed, 21 Apr 2010 15:04:13 +0000 (10:04 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Wed, 21 Apr 2010 15:04:13 +0000 (10:04 -0500)
Only Bluetooth & IRDA are really defined by the specification

src/stkutil.c

index d6c7235..6f30263 100644 (file)
@@ -1307,13 +1307,16 @@ static gboolean parse_dataobj_device_filter(struct comprehension_tlv_iter *iter,
        const unsigned char *data;
        unsigned int len = comprehension_tlv_iter_get_length(iter);
 
-       if (len < 1)
+       if (len < 2)
                return FALSE;
 
-       if (len == 1)
-               return TRUE;
-
        data = comprehension_tlv_iter_get_data(iter);
+
+       /* According to TS 102.223, everything except BT & IRDA is RFU */
+       if (data[0] != STK_TECHNOLOGY_BLUETOOTH &&
+                       data[0] != STK_TECHNOLOGY_IRDA)
+               return FALSE;
+
        df->tech_id = data[0];
        df->len = len - 1;