@@ -2284,7 +2284,9 @@ static void wacom_update_name(struct wacom *wacom, const char *suffix)
2284
2284
} else if (strstr (product_name , "Wacom" ) ||
2285
2285
strstr (product_name , "wacom" ) ||
2286
2286
strstr (product_name , "WACOM" )) {
2287
- strscpy (name , product_name , sizeof (name ));
2287
+ if (strscpy (name , product_name , sizeof (name )) < 0 ) {
2288
+ hid_warn (wacom -> hdev , "String overflow while assembling device name" );
2289
+ }
2288
2290
} else {
2289
2291
snprintf (name , sizeof (name ), "Wacom %s" , product_name );
2290
2292
}
@@ -2302,7 +2304,9 @@ static void wacom_update_name(struct wacom *wacom, const char *suffix)
2302
2304
if (name [strlen (name )- 1 ] == ' ' )
2303
2305
name [strlen (name )- 1 ] = '\0' ;
2304
2306
} else {
2305
- strscpy (name , features -> name , sizeof (name ));
2307
+ if (strscpy (name , features -> name , sizeof (name )) < 0 ) {
2308
+ hid_warn (wacom -> hdev , "String overflow while assembling device name" );
2309
+ }
2306
2310
}
2307
2311
2308
2312
snprintf (wacom_wac -> name , sizeof (wacom_wac -> name ), "%s%s" ,
@@ -2470,8 +2474,13 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
2470
2474
goto fail_quirks ;
2471
2475
}
2472
2476
2473
- if (features -> device_type & WACOM_DEVICETYPE_WL_MONITOR )
2477
+ if (features -> device_type & WACOM_DEVICETYPE_WL_MONITOR ) {
2474
2478
error = hid_hw_open (hdev );
2479
+ if (error ) {
2480
+ hid_err (hdev , "hw open failed\n" );
2481
+ goto fail_quirks ;
2482
+ }
2483
+ }
2475
2484
2476
2485
wacom_set_shared_values (wacom_wac );
2477
2486
devres_close_group (& hdev -> dev , wacom );
@@ -2560,8 +2569,10 @@ static void wacom_wireless_work(struct work_struct *work)
2560
2569
goto fail ;
2561
2570
}
2562
2571
2563
- strscpy (wacom_wac -> name , wacom_wac1 -> name ,
2564
- sizeof (wacom_wac -> name ));
2572
+ if (strscpy (wacom_wac -> name , wacom_wac1 -> name ,
2573
+ sizeof (wacom_wac -> name )) < 0 ) {
2574
+ hid_warn (wacom -> hdev , "String overflow while assembling device name" );
2575
+ }
2565
2576
}
2566
2577
2567
2578
return ;
0 commit comments