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" */