Commit a547c185ce1dd4739fb7b63a7fd35058e6651b79

Sam Lantinga 2022-08-08T12:21:40

Fixed crash if uevent info isn't available

diff --git a/src/hidapi/linux/hid.c b/src/hidapi/linux/hid.c
index 6a0ae9f..6507dde 100644
--- a/src/hidapi/linux/hid.c
+++ b/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" */