]> granicus.if.org Git - neomutt/commitdiff
coverity: add variable - failed function leads to invalid variable
authorRichard Russon <rich@flatcap.org>
Mon, 10 Apr 2017 12:49:32 +0000 (13:49 +0100)
committerRichard Russon <rich@flatcap.org>
Mon, 10 Apr 2017 13:32:04 +0000 (14:32 +0100)
curs_lib.c
handler.c
init.c
mbox.c
pgpinvoke.c
pgpmicalg.c
pgppacket.c
sendlib.c

index 4754ae6e4fecf3d4119321ca1fab5135c6a65bd3..5ed7559b188157f52a80538dd0267516a658714a 100644 (file)
@@ -765,6 +765,8 @@ int mutt_any_key_to_continue (const char *s)
   int f, ch;
 
   f = open ("/dev/tty", O_RDONLY);
+  if (f < 0)
+    return EOF;
   tcgetattr (f, &t);
   memcpy ((void *)&old, (void *)&t, sizeof(struct termios)); /* save original state */
   t.c_lflag &= ~(ICANON | ECHO);
index 803568d2b80d686fdc6989272b90d3f2b0761b09..747e736549677233ecd7416db335e760e723caf2 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -1197,6 +1197,9 @@ static int message_handler (BODY *a, STATE *s)
   int rc = 0;
 
   off_start = ftello (s->fpin);
+  if (off_start < 0)
+    return -1;
+
   if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE ||
       a->encoding == ENCUUENCODED)
   {
diff --git a/init.c b/init.c
index 6970589852bac48d242448abb0ea81fa2bdaf9f5..2d824be05d8f377a11d1c2754d2a3fe72c86aef2 100644 (file)
--- a/init.c
+++ b/init.c
@@ -2334,6 +2334,10 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
           restore_default (&MuttVars[idx]);
       }
     }
+    else if (idx < 0)
+    {
+      return -1;
+    }
     else if (!myvar && DTYPE (MuttVars[idx].type) == DT_BOOL)
     {
       if (s && *s->dptr == '=')
@@ -2868,6 +2872,8 @@ static int source_rc (const char *rcfile_path, BUFFER *err)
   strfcpy(rcfile, rcfile_path, PATH_MAX);
 
   rcfilelen = mutt_strlen(rcfile);
+  if (rcfilelen == 0)
+    return -1;
 
   if (rcfile[rcfilelen-1] != '|')
   {
diff --git a/mbox.c b/mbox.c
index 3e4908b9bf8bd538356739adaf39b0f12dd687b7..2add832ef5a4b437415039258143f04737f7e3b9 100644 (file)
--- a/mbox.c
+++ b/mbox.c
@@ -129,6 +129,8 @@ static int mmdf_parse_mailbox (CONTEXT *ctx)
     if (mutt_strcmp (buf, MMDF_SEP) == 0)
     {
       loc = ftello (ctx->fp);
+      if (loc < 0)
+        return -1;
 
       count++;
       if (!ctx->quiet)
@@ -165,6 +167,8 @@ static int mmdf_parse_mailbox (CONTEXT *ctx)
       hdr->env = mutt_read_rfc822_header (ctx->fp, hdr, 0, 0);
 
       loc = ftello (ctx->fp);
+      if (loc < 0)
+        return -1;
 
       if (hdr->content->length > 0 && hdr->lines > 0)
       {
@@ -192,6 +196,8 @@ static int mmdf_parse_mailbox (CONTEXT *ctx)
        lines = -1;
        do {
          loc = ftello (ctx->fp);
+          if (loc < 0)
+            return -1;
          if (fgets (buf, sizeof (buf) - 1, ctx->fp) == NULL)
            break;
          lines++;
@@ -339,7 +345,8 @@ static int mbox_parse_mailbox (CONTEXT *ctx)
                        "%d (cl=" OFF_T_FMT ")\n",
                        curhdr->index, curhdr->content->length);
            mutt_debug (1, "\tLINE: %s", buf);
-           if (fseeko (ctx->fp, loc, SEEK_SET) != 0) /* nope, return the previous position */
+            /* nope, return the previous position */
+            if ((loc < 0) || (fseeko (ctx->fp, loc, SEEK_SET) != 0))
            {
              mutt_debug (1, "mbox_parse_mailbox: fseek() failed\n");
            }
@@ -364,7 +371,7 @@ static int mbox_parse_mailbox (CONTEXT *ctx)
            int cl = curhdr->content->length;
 
            /* count the number of lines in this message */
-           if (fseeko (ctx->fp, loc, SEEK_SET) != 0)
+           if ((loc < 0) || (fseeko (ctx->fp, loc, SEEK_SET) != 0))
              mutt_debug (1, "mbox_parse_mailbox: fseek() failed\n");
            while (cl-- > 0)
            {
@@ -1255,7 +1262,7 @@ static int mbox_sync_mailbox (CONTEXT *ctx, int *index_hint)
     if (i == 0)
     {
       ctx->size = ftello (ctx->fp); /* update the size of the mailbox */
-      if (ftruncate (fileno (ctx->fp), ctx->size) != 0)
+      if ((ctx->size < 0) || (ftruncate (fileno (ctx->fp), ctx->size) != 0))
       {
         i = -1;
         mutt_debug (1, "mbox_sync_mailbox: ftruncate() failed\n");
index 479fe20e67ac04ddd2a0e9e8261df33831c75d99..99e079924c8be91b43962322c45bb4ee748dff54 100644 (file)
@@ -308,7 +308,8 @@ void pgp_invoke_getkeys (ADDRESS *addr)
 
   if (!isendwin ()) mutt_clear_error ();
 
-  close (devnull);
+  if (devnull >= 0)
+    close (devnull);
 }
 
 pid_t pgp_invoke_export (FILE **pgpin, FILE **pgpout, FILE **pgperr,
index 835d36f3ecc4a423ed2cd020aa31133d288fa1e0..499f57e1342cf1614765b8fec838d717cef43f5c 100644 (file)
@@ -102,6 +102,8 @@ static void pgp_dearmor (FILE *in, FILE *out)
 
   /* actual data starts here */
   start = ftello (in);
+  if (start < 0)
+    return;
 
   /* find the checksum */
 
index f73c36232552f2d17da95a5860d62c19b7b1a489..40db3260cddb15a050ffcc56c35e3504981274c5 100644 (file)
@@ -73,6 +73,8 @@ unsigned char *pgp_read_packet (FILE * fp, size_t * len)
   size_t material;
 
   startpos = ftello (fp);
+  if (startpos < 0)
+    return NULL;
 
   if (!plen)
   {
index 2a57800d8cdade193e7f70597732c2605444c38f..6273fc2435a7afad7a91c0368058c834fc5d0b02 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -1117,6 +1117,9 @@ void mutt_message_to_7bit (BODY *a, FILE *fp)
     goto cleanup;
   }
 
+  if (!fpin)
+    goto cleanup;
+
   fseeko (fpin, a->offset, SEEK_SET);
   a->parts = mutt_parse_message_rfc822 (fpin, a);