From: wwp Date: Sat, 18 Aug 2018 07:56:41 +0000 (+0200) Subject: Warn and fail rather than miserably crashing when format string in X-Git-Tag: 3.17.2~197 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=6406496b93866bb472a221ba93422fdb56c95773 Warn and fail rather than miserably crashing when format string in faulty. --- 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; }