From 0fc6764b4728ae3cd7737995ea234bd5c2de935a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 21 Jul 2022 10:55:42 +0200 Subject: [PATCH] libratbag-data: fix possible NULL dereferences This can happen when a device has not properly initialized and this fields have not been set. --- src/libratbag-data.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libratbag-data.c b/src/libratbag-data.c index 83f5144b..04378d9f 100644 --- a/src/libratbag-data.c +++ b/src/libratbag-data.c @@ -325,16 +325,20 @@ ratbag_device_data_destroy(struct ratbag_device_data *data) { switch (data->drivertype) { case HIDPP10: - free(data->hidpp10.dpi_list->entries); + if (data->hidpp10.dpi_list) { + free(data->hidpp10.dpi_list->entries); + free(data->hidpp10.dpi_list); + } - free(data->hidpp10.dpi_list); free(data->hidpp10.dpi_range); free(data->hidpp10.profile_type); break; case STEELSERIES: - free(data->steelseries.dpi_list->entries); + if (data->steelseries.dpi_list) { + free(data->steelseries.dpi_list->entries); + free(data->steelseries.dpi_list); + } - free(data->steelseries.dpi_list); free(data->steelseries.dpi_range); break; default: