]> granicus.if.org Git - neomutt/commitdiff
coverity: add variable - function arg could be NULL/invalid
authorRichard Russon <rich@flatcap.org>
Mon, 10 Apr 2017 12:44:39 +0000 (13:44 +0100)
committerRichard Russon <rich@flatcap.org>
Mon, 10 Apr 2017 13:32:04 +0000 (14:32 +0100)
attach.c
buffer.c
buffy.c
copy.c
crypt-gpgme.c
handler.c
init.c
lib.c
muttlib.c
parse.c
pgp.c

index fc748d29dc69313d1d0dc8f875d793d2b03dfd6d..b39f0f8b02124d009491bbd281add537ac07d2fa 100644 (file)
--- a/attach.c
+++ b/attach.c
@@ -702,6 +702,9 @@ save_attachment_open (char *path, int flags)
 /* returns 0 on success, -1 on error */
 int mutt_save_attachment (FILE *fp, BODY *m, char *path, int flags, HEADER *hdr)
 {
+  if (!m)
+    return -1;
+
   if (fp)
   {
 
@@ -775,6 +778,9 @@ int mutt_save_attachment (FILE *fp, BODY *m, char *path, int flags, HEADER *hdr)
   }
   else
   {
+    if (!m->filename)
+      return -1;
+
     /* In send mode, just copy file */
 
     FILE *ofp = NULL, *nfp = NULL;
index 4d2594a3f37c9df34f1fb1f88d1b36ac4ed1adbe..665dc5aebf87c185386b27059b4d16fe3390b90a 100644 (file)
--- a/buffer.c
+++ b/buffer.c
@@ -116,6 +116,9 @@ int mutt_buffer_printf (BUFFER* buf, const char* fmt, ...)
  * the buffer is always null-terminated */
 static void mutt_buffer_add (BUFFER* buf, const char* s, size_t len)
 {
+  if (!buf || !s)
+    return;
+
   size_t offset;
 
   if (buf->dptr + len + 1 > buf->data + buf->dsize)
@@ -126,6 +129,8 @@ static void mutt_buffer_add (BUFFER* buf, const char* s, size_t len)
     safe_realloc ((void**) (void*) &buf->data, buf->dsize);
     buf->dptr = buf->data + offset;
   }
+  if (!buf->dptr)
+    return;
   memcpy (buf->dptr, s, len);
   buf->dptr += len;
   *(buf->dptr) = '\0';
@@ -143,6 +148,9 @@ void mutt_buffer_addch (BUFFER* buf, char c)
 
 int mutt_extract_token (BUFFER *dest, BUFFER *tok, int flags)
 {
+  if (!dest || !tok)
+    return -1;
+
   char         ch;
   char         qc = 0; /* quote char */
   char         *pc;
diff --git a/buffy.c b/buffy.c
index d2e3926d4f5f528b1e6cf520da64d3288bc8addb..98f0cd42e453a15b5d7a18baca039ca2ff327612 100644 (file)
--- a/buffy.c
+++ b/buffy.c
@@ -602,6 +602,9 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
 #ifdef USE_NOTMUCH
 int mutt_parse_virtual_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *err)
 {
+  if (!path || !s)
+    return -1;
+
   BUFFY **tmp;
   char buf[_POSIX_PATH_MAX + LONG_STRING + 32];   /* path to DB + query + URI "decoration" */
 
diff --git a/copy.c b/copy.c
index 9c73d7af5e896b194d996772dde4368be10c3876..55f411febec1cff432935e12d1a960d11bc21660 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -60,6 +60,9 @@ mutt_copy_hdr (FILE *in, FILE *out, LOFF_T off_start, LOFF_T off_end, int flags,
   size_t this_one_len = 0;
   int error;
 
+  if (off_start < 0)
+    return -1;
+
   if (ftello (in) != off_start)
     fseeko (in, off_start, SEEK_SET);
 
index 2477b5e251a6ec0d30c16ad5988e905e648b34d8..1df665209be124d24c7020081346f0f6ba6b32c4 100644 (file)
@@ -1141,6 +1141,9 @@ static int show_sig_summary (unsigned long sum,
                               gpgme_ctx_t ctx, gpgme_key_t key, int idx,
                               STATE *s, gpgme_signature_t sig)
 {
+  if (!key)
+    return 1;
+
   int severe = 0;
 
   if ((sum & GPGME_SIGSUM_KEY_REVOKED))
@@ -1676,6 +1679,9 @@ int smime_gpgme_verify_one (BODY *sigbdy, STATE *s, const char *tempfile)
 static BODY *decrypt_part (BODY *a, STATE *s, FILE *fpout, int is_smime,
                            int *r_is_signed)
 {
+  if (!a || !s || !fpout)
+    return NULL;
+
   struct stat info;
   BODY *tattach = NULL;
   int err = 0;
index f35b50c6f0d9058ff4e923000533faf41cf0a95d..803568d2b80d686fdc6989272b90d3f2b0761b09 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -1790,6 +1790,9 @@ static int malformed_pgp_encrypted_handler (BODY *b, STATE *s)
 
 int mutt_body_handler (BODY *b, STATE *s)
 {
+  if (!b || !s)
+    return -1;
+
   int plaintext = 0;
   handler_t handler = NULL;
   int rc = 0;
diff --git a/init.c b/init.c
index f9638123ac8ca1dfa99c78ff29a36b2eeabdb34a..6970589852bac48d242448abb0ea81fa2bdaf9f5 100644 (file)
--- a/init.c
+++ b/init.c
@@ -4157,6 +4157,9 @@ static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFFER *s, u
 #ifdef USE_NOTMUCH
 static int parse_tag_transforms (BUFFER *b, BUFFER *s, unsigned long data, BUFFER *err)
 {
+  if (!b || !s)
+    return -1;
+
   char *tmp = NULL;
 
   while (MoreArgs (s))
@@ -4188,6 +4191,9 @@ static int parse_tag_transforms (BUFFER *b, BUFFER *s, unsigned long data, BUFFE
 
 static int parse_tag_formats (BUFFER *b, BUFFER *s, unsigned long data, BUFFER *err)
 {
+  if (!b || !s)
+    return -1;
+
   char *tmp = NULL;
 
   while (MoreArgs (s))
diff --git a/lib.c b/lib.c
index 401930c1f923298c306c40d3fadebc57b2a2fa3a..f256008c714bc1ef84105dcb7ae589b91e81fbf1 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -183,6 +183,8 @@ void safe_realloc (void *ptr, size_t siz)
 
 void safe_free (void *ptr)     /* __SAFE_FREE_CHECKED__ */
 {
+  if (!ptr)
+    return;
   void **p = (void **)ptr;
   if (*p)
   {
index 3d77ae4f74fd62c51405e840ceb68ea7c3d65619..80c4c40dfcb7736c2082bc1cce86a591286bf2cc 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -110,6 +110,9 @@ void mutt_adv_mktemp (char *s, size_t l)
 /* create a send-mode duplicate from a receive-mode body */
 int mutt_copy_body (FILE *fp, BODY **tgt, BODY *src)
 {
+  if (!tgt || !src)
+    return -1;
+
   char tmp[_POSIX_PATH_MAX];
   BODY *b = NULL;
 
@@ -1872,12 +1875,17 @@ int state_printf (STATE *s, const char *fmt, ...)
 
 void state_mark_attach (STATE *s)
 {
+  if (!s || !s->fpout)
+    return;
   if ((s->flags & MUTT_DISPLAY) && (mutt_strcmp (Pager, "builtin") == 0))
     state_puts (AttachmentMarker, s);
 }
 
 void state_attach_puts (const char *t, STATE *s)
 {
+  if (!t || !s || !s->fpout)
+    return;
+
   if (*t != '\n') state_mark_attach (s);
   while (*t)
   {
diff --git a/parse.c b/parse.c
index 83c93bf62eb91e2f9ba163c512204f76590f6eab..136ab801c4dcd6b85f928ce15e4c12aa0b6e8188 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -1346,7 +1346,8 @@ int mutt_parse_rfc822_line (ENVELOPE *e, HEADER *hdr, char *line, char *p, short
 
   done:
 
-  *lastp = last;
+  if (lastp)
+    *lastp = last;
   return matched;
 }
 
diff --git a/pgp.c b/pgp.c
index f4f20c84c8187fb4b3d58b6bdf798c4b6240d027..47081fc1fbe6d9e38ff8514c393d6b882d04e0a7 100644 (file)
--- a/pgp.c
+++ b/pgp.c
@@ -804,6 +804,9 @@ void pgp_extract_keys_from_attachment_list (FILE *fp, int tag, BODY *top)
 
 static BODY *pgp_decrypt_part (BODY *a, STATE *s, FILE *fpout, BODY *p)
 {
+  if (!a || !s || !fpout || !p)
+    return NULL;
+
   char buf[LONG_STRING];
   FILE *pgpin = NULL, *pgpout = NULL, *pgperr = NULL, *pgptmp = NULL;
   struct stat info;