From 3f35e100142322126744f5cc585c4890f7140844 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 25 Sep 2016 05:55:55 +0200 Subject: [PATCH] Solve some warnings pointed out by scan-build --- database_info.c | 2 +- frontend/drivers/platform_linux.c | 3 --- input/drivers/linuxraw_input.c | 1 - input/drivers_joypad/linuxraw_joypad.c | 5 +++-- input/drivers_joypad/parport_joypad.c | 3 ++- libretro-common/queues/task_queue.c | 3 +++ menu/menu_displaylist.c | 5 +++++ tasks/task_database.c | 7 +++++++ 8 files changed, 21 insertions(+), 8 deletions(-) diff --git a/database_info.c b/database_info.c index e963fe497a..6f41ff499e 100644 --- a/database_info.c +++ b/database_info.c @@ -492,6 +492,7 @@ database_info_list_t *database_info_list_new( if (!new_ptr) { database_info_list_free(database_info_list); + free(database_info_list); database_info_list = NULL; goto end; } @@ -572,5 +573,4 @@ void database_info_list_free(database_info_list_t *database_info_list) } free(database_info_list->list); - free(database_info_list); } diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 9ab6d4ab2c..9ab3ed3d8e 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -855,7 +855,6 @@ static void check_proc_acpi_sysfs_ac_adapter(const char * node, bool *have_ac) static bool next_string(char **_ptr, char **_str) { char *ptr = *_ptr; - char *str = *_str; while (*ptr == ' ') /* skip any spaces... */ ptr++; @@ -863,14 +862,12 @@ static bool next_string(char **_ptr, char **_str) if (*ptr == '\0') return false; - str = ptr; while ((*ptr != ' ') && (*ptr != '\n') && (*ptr != '\0')) ptr++; if (*ptr != '\0') *(ptr++) = '\0'; - *_str = str; *_ptr = ptr; return true; } diff --git a/input/drivers/linuxraw_input.c b/input/drivers/linuxraw_input.c index e54fab2b36..f46c248513 100644 --- a/input/drivers/linuxraw_input.c +++ b/input/drivers/linuxraw_input.c @@ -40,7 +40,6 @@ typedef struct linuxraw_input static void *linuxraw_input_init(void) { - struct sigaction sa = {{0}}; linuxraw_input_t *linuxraw = NULL; settings_t *settings = config_get_ptr(); diff --git a/input/drivers_joypad/linuxraw_joypad.c b/input/drivers_joypad/linuxraw_joypad.c index d56a86b709..f103ae9c0e 100644 --- a/input/drivers_joypad/linuxraw_joypad.c +++ b/input/drivers_joypad/linuxraw_joypad.c @@ -79,8 +79,6 @@ static void linuxraw_poll_pad(struct linuxraw_joypad *pad) static bool linuxraw_joypad_init_pad(const char *path, struct linuxraw_joypad *pad) { - settings_t *settings = config_get_ptr(); - if (pad->fd >= 0) return false; @@ -92,8 +90,11 @@ static bool linuxraw_joypad_init_pad(const char *path, struct linuxraw_joypad *p pad->fd = open(path, O_RDONLY | O_NONBLOCK); *pad->ident = '\0'; + if (pad->fd >= 0) { + settings_t *settings = config_get_ptr(); + if (ioctl(pad->fd, JSIOCGNAME(sizeof(settings->input.device_names[0])), pad->ident) >= 0) { RARCH_LOG("[Device]: Found pad: %s on %s.\n", pad->ident, path); diff --git a/input/drivers_joypad/parport_joypad.c b/input/drivers_joypad/parport_joypad.c index 367acc8c87..1e2c830097 100644 --- a/input/drivers_joypad/parport_joypad.c +++ b/input/drivers_joypad/parport_joypad.c @@ -118,7 +118,6 @@ static bool parport_joypad_init_pad(const char *path, struct parport_joypad *pad int datadir = 1; /* read */ bool set_control = false; int mode = IEEE1284_MODE_BYTE; - settings_t *settings = config_get_ptr(); if (pad->fd >= 0) return false; @@ -131,6 +130,8 @@ static bool parport_joypad_init_pad(const char *path, struct parport_joypad *pad if (pad->fd >= 0) { + settings_t *settings = config_get_ptr(); + RARCH_LOG("[Joypad]: Found parallel port: %s\n", path); /* Parport driver does not log failures with RARCH_ERR because they could be diff --git a/libretro-common/queues/task_queue.c b/libretro-common/queues/task_queue.c index 56e9a9c46e..4829cbbbe8 100644 --- a/libretro-common/queues/task_queue.c +++ b/libretro-common/queues/task_queue.c @@ -260,6 +260,9 @@ static void retro_task_regular_retrieve(task_retriever_data_t *data) tail = data->list; } } + + if (tail) + free(tail); } static struct retro_task_impl impl_regular = { diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 0907897841..30665238df 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2002,12 +2002,16 @@ static int menu_displaylist_parse_database_entry(menu_displaylist_info_t *info) playlist_free(playlist); database_info_list_free(db_info); + free(db_info); return 0; error: if (db_info) + { database_info_list_free(db_info); + free(db_info); + } playlist_free(playlist); return -1; @@ -2034,6 +2038,7 @@ static int menu_database_parse_query(file_list_t *list, const char *path, } database_info_list_free(db_list); + free(db_list); #endif return 0; diff --git a/tasks/task_database.c b/tasks/task_database.c index ed43c3a0d0..2f7c851918 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -243,7 +243,10 @@ static int database_info_list_iterate_new(database_state_handle_t *db_state, (unsigned)db_state->list->size, new_database); #endif if (db_state->info) + { database_info_list_free(db_state->info); + free(db_state->info); + } db_state->info = database_info_list_new(new_database, query); return 0; } @@ -313,6 +316,7 @@ static int database_info_list_iterate_found_match( playlist_free(playlist); database_info_list_free(db_state->info); + free(db_state->info); db_state->info = NULL; db_state->crc = 0; @@ -330,6 +334,7 @@ static int database_info_list_iterate_next( db_state->entry_index = 0; database_info_list_free(db_state->info); + free(db_state->info); db_state->info = NULL; return 1; @@ -389,6 +394,7 @@ static int task_database_iterate_crc_lookup( return 1; database_info_list_free(db_state->info); + free(db_state->info); return 0; } @@ -526,6 +532,7 @@ static int task_database_iterate_serial_lookup( return 1; database_info_list_free(db_state->info); + free(db_state->info); return 0; }