]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
hwdb: emit warning when matches are specified at the very end of file 4771/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 1 Dec 2016 16:46:40 +0000 (11:46 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 11 Dec 2016 23:01:26 +0000 (18:01 -0500)
This is also an error, but it wasn't caught.

[/tmp/tmp.YWeKax4fMI/etc/udev/hwdb.d/10-bad.hwdb:26] Property expected, ignoring record with no properties

src/hwdb/hwdb.c

index d2fe75fc7929201fc8abde8fe8ba2b187a08f9f4..a23b6147911b3df882d31fd65935d0364bb9df3d 100644 (file)
@@ -554,8 +554,8 @@ static int import_file(struct trie *trie, const char *filename, uint16_t file_pr
                                 break;
                         }
 
-                        /* another match */
                         if (line[0] != ' ') {
+                                /* another match */
                                 match = strdup(line);
                                 if (!match)
                                         return -ENOMEM;
@@ -573,8 +573,8 @@ static int import_file(struct trie *trie, const char *filename, uint16_t file_pr
                         break;
 
                 case HW_DATA:
-                        /* end of record */
                         if (len == 0) {
+                                /* end of record */
                                 state = HW_NONE;
                                 strv_clear(match_list);
                                 break;
@@ -593,6 +593,10 @@ static int import_file(struct trie *trie, const char *filename, uint16_t file_pr
                 };
         }
 
+        if (state == HW_MATCH)
+                log_syntax(NULL, LOG_WARNING, filename, line_number, EINVAL,
+                           "Property expected, ignoring record with no properties");
+
         return 0;
 }