From 69c82da160257a9303f8924cb08862af19f3fd2c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 20 Jun 2016 03:10:26 +0200 Subject: [PATCH] (menu_hash) Prevent dereferences when settings is NULL --- menu/intl/menu_hash_de.c | 9 ++++++--- menu/intl/menu_hash_es.c | 9 ++++++--- menu/intl/menu_hash_it.c | 9 ++++++--- menu/intl/menu_hash_pt.c | 9 ++++++--- menu/intl/menu_hash_us.c | 9 ++++++--- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/menu/intl/menu_hash_de.c b/menu/intl/menu_hash_de.c index 53b13d3f95..6f73b91c57 100644 --- a/menu/intl/menu_hash_de.c +++ b/menu/intl/menu_hash_de.c @@ -42,7 +42,8 @@ int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) switch (hash) { case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); switch (driver_hash) { @@ -147,7 +148,8 @@ int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); switch (driver_hash) { @@ -224,7 +226,8 @@ int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); switch (driver_hash) { diff --git a/menu/intl/menu_hash_es.c b/menu/intl/menu_hash_es.c index ca355ffcd5..7152a20f4d 100644 --- a/menu/intl/menu_hash_es.c +++ b/menu/intl/menu_hash_es.c @@ -126,7 +126,8 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); switch (driver_hash) { @@ -239,7 +240,8 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); switch (driver_hash) { @@ -323,7 +325,8 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); switch (driver_hash) { diff --git a/menu/intl/menu_hash_it.c b/menu/intl/menu_hash_it.c index 8bfdaa2f41..43b9538203 100644 --- a/menu/intl/menu_hash_it.c +++ b/menu/intl/menu_hash_it.c @@ -120,7 +120,8 @@ int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); switch (driver_hash) { @@ -212,7 +213,8 @@ int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); switch (driver_hash) { @@ -290,7 +292,8 @@ int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); switch (driver_hash) { diff --git a/menu/intl/menu_hash_pt.c b/menu/intl/menu_hash_pt.c index 04db2dad86..0d0d4d35e4 100644 --- a/menu/intl/menu_hash_pt.c +++ b/menu/intl/menu_hash_pt.c @@ -43,7 +43,8 @@ int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) switch (hash) { case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); switch (driver_hash) { @@ -136,7 +137,8 @@ int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); switch (driver_hash) { @@ -214,7 +216,8 @@ int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); switch (driver_hash) { diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index 85e622e0eb..47986fd95f 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -111,7 +111,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); switch (driver_hash) { @@ -203,7 +204,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); switch (driver_hash) { @@ -281,7 +283,8 @@ int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) ); break; case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); switch (driver_hash) {