]> granicus.if.org Git - neomutt/commitdiff
Fix "format string is not a string literal" warnings. (closes #3949)
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Thu, 1 Jun 2017 20:33:21 +0000 (13:33 -0700)
committerRichard Russon <rich@flatcap.org>
Wed, 7 Jun 2017 21:53:18 +0000 (22:53 +0100)
Mutt calls msgfmt with '-c' to verify that translation format strings
match, but it is still safer to indirect strings with no formatting
through %s.

hook.c
init.c
main.c
mutt_ssl.c
ncrypt/crypt_gpgme.c
pattern.c
pop.c
pop_auth.c

diff --git a/hook.c b/hook.c
index 4382469d6ab61f3aeb82e77a99165e58be4a7636..8a0d282d69b711825cc27899e4b0af9eca37ee1b 100644 (file)
--- a/hook.c
+++ b/hook.c
@@ -307,7 +307,7 @@ int mutt_parse_unhook(struct Buffer *buf, struct Buffer *s, unsigned long data,
     {
       if (current_hook_type)
       {
-        snprintf(err->data, err->dsize,
+        snprintf(err->data, err->dsize, "%s",
                  _("unhook: Can't do unhook * from within a hook."));
         return -1;
       }
diff --git a/init.c b/init.c
index 0b978c9b003194b54d11d625c5bc50d94ac814d3..049f4d6546b6354dc607b3602021a5d4444b6856 100644 (file)
--- a/init.c
+++ b/init.c
@@ -72,7 +72,7 @@
 #define CHECK_PAGER                                                                  \
   if ((CurrentMenu == MENU_PAGER) && (idx >= 0) && (MuttVars[idx].flags & R_RESORT)) \
   {                                                                                  \
-    snprintf(err->data, err->dsize, _("Not available in this menu."));               \
+    snprintf(err->data, err->dsize, "%s", _("Not available in this menu."));         \
     return -1;                                                                       \
   }
 
@@ -734,8 +734,8 @@ static int add_to_replace_list(struct ReplaceList **list, const char *pat,
 
   if (t->nmatch > t->rx->rx->re_nsub)
   {
-    snprintf(err->data, err->dsize, _("Not enough subexpressions for "
-                                      "template"));
+    snprintf(err->data, err->dsize, "%s", _("Not enough subexpressions for "
+                                            "template"));
     remove_from_replace_list(list, pat);
     return -1;
   }
@@ -2423,13 +2423,13 @@ static int parse_set(struct Buffer *tmp, struct Buffer *s, unsigned long data,
     {
       if (query || unset || inv)
       {
-        snprintf(err->data, err->dsize, _("prefix is illegal with reset"));
+        snprintf(err->data, err->dsize, "%s", _("prefix is illegal with reset"));
         return -1;
       }
 
       if (*s->dptr == '=')
       {
-        snprintf(err->data, err->dsize, _("value is illegal with reset"));
+        snprintf(err->data, err->dsize, "%s", _("value is illegal with reset"));
         return -1;
       }
 
@@ -2437,7 +2437,7 @@ static int parse_set(struct Buffer *tmp, struct Buffer *s, unsigned long data,
       {
         if (CurrentMenu == MENU_PAGER)
         {
-          snprintf(err->data, err->dsize, _("Not available in this menu."));
+          snprintf(err->data, err->dsize, "%s", _("Not available in this menu."));
           return -1;
         }
         for (idx = 0; MuttVars[idx].option; idx++)
@@ -2464,7 +2464,7 @@ static int parse_set(struct Buffer *tmp, struct Buffer *s, unsigned long data,
       {
         if (unset || inv || query)
         {
-          snprintf(err->data, err->dsize, _("Usage: set variable=yes|no"));
+          snprintf(err->data, err->dsize, "%s", _("Usage: set variable=yes|no"));
           return -1;
         }
 
@@ -2476,7 +2476,7 @@ static int parse_set(struct Buffer *tmp, struct Buffer *s, unsigned long data,
           unset = 1;
         else
         {
-          snprintf(err->data, err->dsize, _("Usage: set variable=yes|no"));
+          snprintf(err->data, err->dsize, "%s", _("Usage: set variable=yes|no"));
           return -1;
         }
       }
diff --git a/main.c b/main.c
index 7eaca751f1857ddd04bc8eb0bab92e4db3f70c15..92d00218a25137526b6bceb9686dd7a9786be073 100644 (file)
--- a/main.c
+++ b/main.c
@@ -309,7 +309,7 @@ int main(int argc, char **argv, char **env)
           }
           printf(_("Debugging at level %d.\n"), debuglevel_cmdline);
 #else
-          printf(_("DEBUG was not defined during compilation. -d Ignored.\n"));
+          printf("%s", _("DEBUG was not defined during compilation. -d Ignored.\n"));
 #endif
           break;
 
index 8070afdc881549d72fb19205a91f102e2e3a1dcf..2b7384c9a9596a27083c91b1dd3c8cf68a03cb99 100644 (file)
@@ -351,7 +351,7 @@ static void x509_fingerprint(char *s, int l, X509 *cert, const EVP_MD *(*hashfun
 
   if (!X509_digest(cert, hashfunc(), md, &n))
   {
-    snprintf(s, l, _("[unable to calculate]"));
+    snprintf(s, l, "%s", _("[unable to calculate]"));
   }
   else
   {
@@ -808,7 +808,7 @@ static int interactive_check_cert(X509 *cert, int idx, int len, SSL *ssl, int al
              x509_get_part(x509_issuer, part[u]));
 
   row++;
-  snprintf(menu->dialog[row++], SHORT_STRING, _("This certificate is valid"));
+  snprintf(menu->dialog[row++], SHORT_STRING, "%s", _("This certificate is valid"));
   snprintf(menu->dialog[row++], SHORT_STRING, _("   from %s"),
            asn1time_to_string(X509_get_notBefore(cert)));
   snprintf(menu->dialog[row++], SHORT_STRING, _("     to %s"),
index 0331813f821666988c5a0835b04492d30a7c7ae6..3c3d6ab00debde7ad849d2330a83eb1d76f290c8 100644 (file)
@@ -3381,7 +3381,7 @@ static void print_key_info(gpgme_key_t key, FILE *fp)
   fprintf(fp, _("Key Type ..: %s, %lu bit %s\n"), s2, aval, s);
 
   /* L10N: DOTFILL */
-  fprintf(fp, _("Key Usage .: "));
+  fprintf(fp, "%s", _("Key Usage .: "));
   delim = "";
 
   if (key_check_cap(key, KEY_CAP_CAN_ENCRYPT))
@@ -3450,7 +3450,7 @@ static void print_key_info(gpgme_key_t key, FILE *fp)
     if (s)
     {
       /* L10N: DOTFILL */
-      fprintf(fp, _("Issued By .: "));
+      fprintf(fp, "%s", _("Issued By .: "));
       parse_and_print_user_id(fp, s);
       putc('\n', fp);
     }
@@ -3520,7 +3520,7 @@ static void print_key_info(gpgme_key_t key, FILE *fp)
       fprintf(fp, _("Key Type ..: %s, %lu bit %s\n"), "PGP", aval, s);
 
       /* L10N: DOTFILL */
-      fprintf(fp, _("Key Usage .: "));
+      fprintf(fp, "%s", _("Key Usage .: "));
       delim = "";
 
       if (subkey->can_encrypt)
index d6f2f78e7ffa190cc25b4b46c4c95ea9a0bc6d71..45f6503a5fb4ddc8148837c00c3a6c4aa792b139 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -87,7 +87,7 @@ static bool eat_regexp(struct Pattern *pat, struct Buffer *s, struct Buffer *err
   }
   if (!*buf.data)
   {
-    snprintf(err->data, err->dsize, _("Empty expression"));
+    snprintf(err->data, err->dsize, "%s", _("Empty expression"));
     return false;
   }
 
@@ -395,7 +395,7 @@ static bool eat_date(struct Pattern *pat, struct Buffer *s, struct Buffer *err)
   }
   if (!*buffer.data)
   {
-    snprintf(err->data, err->dsize, _("Empty expression"));
+    snprintf(err->data, err->dsize, "%s", _("Empty expression"));
     return false;
   }
 
@@ -1258,7 +1258,7 @@ struct Pattern *mutt_pattern_comp(/* const */ char *s, int flags, struct Buffer
         {
           if (!*ps.dptr)
           {
-            snprintf(err->data, err->dsize, _("missing parameter"));
+            snprintf(err->data, err->dsize, "%s", _("missing parameter"));
             mutt_pattern_free(&curlist);
             return NULL;
           }
diff --git a/pop.c b/pop.c
index 5cf29321381dcb76252604b2f41945ffe34b5eab..118f29fd5b7adf4324e6d0ead00237db6c9aa442 100644 (file)
--- a/pop.c
+++ b/pop.c
@@ -109,7 +109,7 @@ static int pop_read_header(struct PopData *pop_data, struct Header *h)
         pop_data->cmd_top = 0;
 
         mutt_debug(1, "pop_read_header: unset TOP capability\n");
-        snprintf(pop_data->err_msg, sizeof(pop_data->err_msg),
+        snprintf(pop_data->err_msg, sizeof(pop_data->err_msg), "%s",
                  _("Command TOP is not supported by server."));
       }
     }
@@ -282,7 +282,7 @@ static int pop_fetch_headers(struct Context *ctx)
       pop_data->cmd_uidl = 0;
 
       mutt_debug(1, "pop_fetch_headers: unset UIDL capability\n");
-      snprintf(pop_data->err_msg, sizeof(pop_data->err_msg),
+      snprintf(pop_data->err_msg, sizeof(pop_data->err_msg), "%s",
                _("Command UIDL is not supported by server."));
     }
   }
index f49f06313373f669deb1d4a9df20d4fbbd1784f7..0f9f1d3021561ea43454be44872ccd5b20b46547 100644 (file)
@@ -275,7 +275,7 @@ static pop_auth_res_t pop_auth_user(struct PopData *pop_data, const char *method
       pop_data->cmd_user = 0;
 
       mutt_debug(1, "pop_auth_user: unset USER capability\n");
-      snprintf(pop_data->err_msg, sizeof(pop_data->err_msg),
+      snprintf(pop_data->err_msg, sizeof(pop_data->err_msg), "%s",
                _("Command USER is not supported by server."));
     }
   }