Browse Source

Fixed crash if uevent info isn't available

Sam Lantinga 2 years ago
parent
commit
a547c185ce
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/hidapi/linux/hid.c

+ 10 - 1
src/hidapi/linux/hid.c

@@ -219,7 +219,7 @@ parse_uevent_info(const char *uevent, unsigned *bus_type,
 	unsigned short *vendor_id, unsigned short *product_id,
 	char **serial_number_utf8, char **product_name_utf8)
 {
-	char *tmp = strdup(uevent);
+	char *tmp;
 	char *saveptr = NULL;
 	char *line;
 	char *key;
@@ -229,6 +229,15 @@ parse_uevent_info(const char *uevent, unsigned *bus_type,
 	int found_serial = 0;
 	int found_name = 0;
 
+	if (!uevent) {
+		return 0;
+	}
+
+	tmp = strdup(uevent);
+	if (!tmp) {
+		return 0;
+	}
+
 	line = strtok_r(tmp, "\n", &saveptr);
 	while (line != NULL) {
 		/* line: "KEY=value" */