1. 09 Apr, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Rename _regex.h to _mutt_regex.h to avoid name collision on Macs. · a550d535
      Kevin J. McCarthy authored
      On Macs, <regex.h> includes <_regex.h>.  Because Mutt defines '-I .'
      during compilation, our bundled version of _regex.h was being used
      instead of the system one.
      
      I have no idea how it managed to work before, but starting in Xcode
      9.3, the differences in struct size and fields started to produce a
      crash and other strange behavior.
      
      The real issue is our use of '-I .' during compilation, which allows
      our local headers to override system ones.  An easier fix for now is
      to rename the header.
      
      Many thanks to Charles Diza, Christian Ebert, and Fabian Groffen for
      their help trying things out and helping to debug the problem.
      
      Also, a huge thanks to Steve Karmeinsky for allowing me to ssh in to
      his Mac so I could track down the underlying issue.
      a550d535
  2. 02 Apr, 2018 1 commit
    • Kevin J. McCarthy's avatar
      configure: check for tinfo matching ncurses · 4fe6cfeb
      Kevin J. McCarthy authored
      When we selected ncursesw, look for tinfow as well.  Since ncurses-6.1
      the binary compatibility between tinfo and tinfow disappeared, resulting
      in crashes and other odd behaviour.
      
      This change checks for tinfo or tinfow based on which ncurses we found
      to continue with.
      
      https://bugs.gentoo.org/651552
      
      [Thanks to Fabian Groffen for the patch.  I made a minor modification
      to fall back to tinfo because pre-6.1 systems may not have a tinfow
      but still need tinfo to compile.]
      4fe6cfeb
  3. 22 Mar, 2018 1 commit
  4. 03 Mar, 2018 1 commit
  5. 28 Feb, 2018 2 commits
  6. 27 Feb, 2018 1 commit
  7. 22 Feb, 2018 2 commits
    • Kevin J. McCarthy's avatar
      Fix is_from() year parsing to abort on year overflow. · 2a857f63
      Kevin J. McCarthy authored
      Unlike mutt_parse_date(), is_from() was not checking for overflow, and
      could end up passing a negative year to mutt_mktime().
      
      It should perhaps be changed to use mutt_atoi(), which does better
      range checking, but that requires mutt_atoi() being changed to allow
      trailing characters and its callers return value checks being
      updated.  I'll put that on the todo list.
      2a857f63
    • Kevin J. McCarthy's avatar
      Cap parsed years at 9999 when converting to time_t. · 189e52d5
      Kevin J. McCarthy authored
      Large year values, even those less than INT_MAX, apparently can cause
      gmtime() and localtime() to return NULL.  Mutt needs larger changes
      checking and handling those errors, but this will prevent the
      immediately triggerable issue.
      189e52d5
  8. 01 Feb, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Add stub flea and muttbug scripts back. · b2dbdce0
      Kevin J. McCarthy authored
      It was rightfully pointed out that the removal was too abrupt.  These
      programs have been around for a long time, and many internet searches
      still say to use them for reporting bugs.
      
      Add stub versions which inform to use the gitlab url instead.
      b2dbdce0
  9. 31 Jan, 2018 2 commits
  10. 27 Jan, 2018 1 commit
  11. 22 Jan, 2018 1 commit
  12. 18 Jan, 2018 6 commits
  13. 11 Jan, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Add missing setup calls when resuming encrypted drafts. · 667a4710
      Kevin J. McCarthy authored
      Calls to get the passphrase were missing for app/pgp and app/smime.
      App/smime was also missing a call to crypt_smime_getkeys().
      
      If a failure occurs, report it back, rather than just continuing.
      Otherwise, postponed messages could be completely lost.
      667a4710
  14. 07 Jan, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Fix imap status count range check. · a37a2c4d
      Kevin J. McCarthy authored
      The strtoul() call for parsing the STATUS count wasn't checking the
      range properly, because it was assigning to an unsigned int.
      
      Change to assign to a unsigned long, and also add the conversion check
      from mutt_atoui().
      
      Thanks to Charles (@chdiza) for quickly noticing the problem!
      a37a2c4d
  15. 06 Jan, 2018 2 commits
    • Kevin J. McCarthy's avatar
      Change imap literal counts to parse and store unsigned ints. · 8fcf8eda
      Kevin J. McCarthy authored
      IMAP literals are of type number.  Change imap_get_literal_count() to
      use mutt_atoui() instead of atoi().  Change the return type variables
      used to store the count to type unsigned int.
      
      It's doubtful this was a real issue, but as long as we're cleaning up
      incorrect atoi() usage, we should fix this too.
      8fcf8eda
    • Kevin J. McCarthy's avatar
      Fix improper signed int conversion of IMAP uid and msn values. · b8190ef3
      Kevin J. McCarthy authored
      Several places in the imap code, when parsing "number" and "nz-number"
      values from the IMAP data, use atoi() and strtol().  This is
      incorrect, and can result in failures when a uid value happens to be
      larger than 2^31.
      
      Create a helper function, mutt_atoui() and use that instead.  One
      place was using strtol() and relying on the endptr parameter, and so
      was changed to use strtoul() instead.
      
      Thanks to Paul Saunders for the bug report and original patch, which
      this commit is based on.
      b8190ef3
  16. 26 Dec, 2017 1 commit
  17. 18 Dec, 2017 1 commit
    • Kevin J. McCarthy's avatar
      Determine latest tag using git describe. · 80d06b0c
      Kevin J. McCarthy authored
      Commit 8648db83 relies on `sort -V` which is unavailable on some
      platforms.  Instead just use `git describe` with --abbrev=0 to only
      output the tag.  We still manually compute the distance to avoid the
      problem mentioned in that commit.
      
      Additionally, add Vincent's fix from commit 3b142cea to the stable
      branch.
      80d06b0c
  18. 15 Dec, 2017 3 commits
    • Kevin J. McCarthy's avatar
      8e0d8616
    • Kevin J. McCarthy's avatar
      Fix s/mime certificate deletion bug. (closes #3982) · 9eedfd4e
      Kevin J. McCarthy authored
      Commit c1bcf4ba exposed a bug in the s/mime encryption code.  It was
      errorneously calling unlink on the list of generated cert files to
      use.
      
      Prior to that commit, the list had an initial space, which apparently
      made the unlink fail.  After that commit, encrypting to a single
      certificate would end up deleting the certificate.
      
      Remove the calls to unlink the cert file.  Add some missing cleanup if
      the call to openssl fails.
      9eedfd4e
    • Kevin J. McCarthy's avatar
      Update mkchangelog.sh to use git. · 841f7101
      Kevin J. McCarthy authored
      The output isn't quite as nice as the hg generated version, but is
      close.
      
      With Mercurial, and now Git, I'm not sure of the usefulness of
      maintaining a ChangeLog file in the repos, but that is another
      discussion.
      841f7101
  19. 13 Dec, 2017 3 commits
  20. 11 Dec, 2017 1 commit
  21. 04 Dec, 2017 1 commit
  22. 03 Dec, 2017 1 commit
  23. 01 Oct, 2017 1 commit
  24. 27 Sep, 2017 1 commit
    • Kevin J. McCarthy's avatar
      Fix uses of context->changed as a counter. · 0bcb77a6
      Kevin J. McCarthy authored
      The first was in mx_update_tables(), but only when "not committing".
      This is used by mh/maildir during an "occult" update, and in imap when
      expunging the mailbox.  It meant to simply turn on changed when a
      single changed header is seen.
      
      The second use was in imap_sync_message_for_copy().  Previously this
      was used for a server side copy/save, but is now also used for
      fast-trash copying.  Remove the code that was trying to decrement the
      counter: this function is not capable of properly setting a status
      bit.
      0bcb77a6
  25. 23 Sep, 2017 3 commits