From 6406496b93866bb472a221ba93422fdb56c95773 Mon Sep 17 00:00:00 2001 From: wwp Date: Sat, 18 Aug 2018 09:56:41 +0200 Subject: [PATCH] Warn and fail rather than miserably crashing when format string in faulty. --- src/account.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/account.c b/src/account.c index cf2898385..e73a0127a 100644 --- a/src/account.c +++ b/src/account.c @@ -1977,8 +1977,14 @@ gboolean account_signatures_matchlist_str_found(const gchar *str, const gchar *f item != NULL && !found; item = g_slist_next(item)) { tmp = g_strdup_printf(format, (gchar *)item->data); - found = (strcmp(tmp, str) == 0); - g_free(tmp); + if (tmp) { + found = (strcmp(tmp, str) == 0); + g_free(tmp); + } else { + g_warning("account_signatures_matchlist_str_found: g_strdup_printf failed, check format '%s'", + format); + return FALSE; + } } return found; } @@ -1995,9 +2001,15 @@ gboolean account_signatures_matchlist_nchar_found(const gchar *str, const gchar item != NULL && !found; item = g_slist_next(item)) { tmp = g_strdup_printf(format, (gchar *)item->data); - len = strlen(tmp); - found = (strncmp(tmp, str, len) == 0); - g_free(tmp); + if (tmp) { + len = strlen(tmp); + found = (strncmp(tmp, str, len) == 0); + g_free(tmp); + } else { + g_warning("account_signatures_matchlist_nchar_found: g_strdup_printf failed, check format '%s'", + format); + return FALSE; + } } return found; } -- 2.25.1