]> granicus.if.org Git - neomutt/log
neomutt
7 years agomerge stable
Kevin McCarthy [Fri, 28 Apr 2017 04:23:25 +0000 (21:23 -0700)]
merge stable

7 years agoFix km_error_key() infinite loop and unget buffer pollution.
Kevin McCarthy [Fri, 28 Apr 2017 04:22:08 +0000 (21:22 -0700)]
Fix km_error_key() infinite loop and unget buffer pollution.

'bind pager \Ch help' produces an infinite loop when an unbound key is
pressed in the pager.  The reason is because km_error_key() tries to
verify that the key sequence is really bound to the OP_HELP operation.
It does this by using km_expand_key(), tokenize_unget_string() on the
resulting buffer, then checking if the next km_dokey() returns OP_HELP.

The problem is that km_expand_key() does not always produce a string
that is properly reparsed by tokenize_unget_string().  Control-h
sequences are expanded to ^H.  tokenize_unget_string() recognizes this
as two characters '^' and 'H'.  km_error_key() checks the OP returned,
which is OP_PAGER_TOP for the '^'.  This is not OP_HELP, so it prints
a generic error and returns.  This leaves the 'H' in the input buffer!
Since 'H' (by default) is unbound in the pager, it retriggers
km_error_key(), resulting in an infinite loop.

The same issues can occur without control sequences:
  bind generic ? noop
  bind generic dq help
In the index, hitting an unbound key will end up leaving 'q' in the unget
buffer, because 'd' is bound in the index menu and will be read by km_dokey().

A simple approach to fix this would be to just use the same code as in
mutt_make_help(), which has no double-check.  This would be no worse
than the help menu, but can generate an inaccurate error message (e.g
if '?' were bound to noop)

This patch instead uses OP_END_COND as a barrier in the unget buffer.
It directly inserts the keys in the OP_HELP keymap, instead of using
km_expand_key() + tokenize_unget_string().  After calling km_dokey()
it flushes the unget buffer to the OP_END_COND barrier.

Thanks to Walter Alejandro Iglesias for reporting the bug.

7 years agomerge stable
Kevin McCarthy [Wed, 26 Apr 2017 22:43:13 +0000 (15:43 -0700)]
merge stable

7 years agoFix error message when opening a mailbox with no read permission. (closes #3934)
Roger Cornelius [Wed, 26 Apr 2017 22:40:34 +0000 (15:40 -0700)]
Fix error message when opening a mailbox with no read permission. (closes #3934)

ctx->mx_ops ends up being NULL for both the case that ctx->magic is 0
and -1.  This meant the mutt_perror() error message was never being
printed, because the check for ctx->mx_ops == NULL was taking place
first.

Move the "ctx->magic == -1" check first, so mutt will print out an
appropriate perror message in that case.

7 years agomerge stable
Kevin McCarthy [Tue, 18 Apr 2017 23:18:10 +0000 (16:18 -0700)]
merge stable

7 years agomutt-1.8.2 signed
Kevin McCarthy [Tue, 18 Apr 2017 23:15:33 +0000 (16:15 -0700)]
mutt-1.8.2 signed

7 years agoAdded tag mutt-1-8-2-rel for changeset c6ea4aed6bec
Kevin McCarthy [Tue, 18 Apr 2017 23:14:25 +0000 (16:14 -0700)]
Added tag mutt-1-8-2-rel for changeset c6ea4aed6bec

7 years agoautomatic post-release commit for mutt-1.8.2
Kevin McCarthy [Tue, 18 Apr 2017 23:14:05 +0000 (16:14 -0700)]
automatic post-release commit for mutt-1.8.2

7 years agoRevert sort prompt labels. (see #3930)
Kevin McCarthy [Tue, 18 Apr 2017 20:13:00 +0000 (13:13 -0700)]
Revert sort prompt labels. (see #3930)

Using the (s)ort style may look a bit better, but it makes the prompt
over 80 columns.  The multichoice prompt supports multiple lines now,
but it is better to have it fit on one line if possible.

Revert back to the "capital letter" method, but leave the ticket open,
to explore other ideas that Vincent and chdiza have for better ways to
present a long choice like this.

7 years agomerge stable
Kevin McCarthy [Tue, 18 Apr 2017 19:25:53 +0000 (12:25 -0700)]
merge stable

7 years agoFix GPG_TTY to be added to envlist. (closes #3931)
Kevin McCarthy [Tue, 18 Apr 2017 19:25:17 +0000 (12:25 -0700)]
Fix GPG_TTY to be added to envlist. (closes #3931)

Changeset 37209157e33c converted filters to use the envlist.
Unfortunately, I missed that pgp.c sets GPG_TTY when using the GnuPG
agent.  Convert to add GPG_TTY to the envlist too.

7 years agoHandle the pager sort prompt inside the pager.
Kevin McCarthy [Tue, 18 Apr 2017 00:40:15 +0000 (17:40 -0700)]
Handle the pager sort prompt inside the pager.

Display the prompt in the pager, so a multiline prompt or resize
doesn't refresh the index menu.  Then, bounce back through the index
to handle resorting and status line updates.

This also fixes cancelling to stay in the pager.

7 years agoChange the sort prompt to use (s)ort style prompts.
Kevin McCarthy [Tue, 18 Apr 2017 00:40:14 +0000 (17:40 -0700)]
Change the sort prompt to use (s)ort style prompts.

This is consistent with the rest of mutt, and in my opinion, more readable.

7 years agoAdd multiline and sigwinch handling to mutt_yesorno. (closes #3877)
Kevin McCarthy [Sun, 16 Apr 2017 21:38:40 +0000 (14:38 -0700)]
Add multiline and sigwinch handling to mutt_yesorno. (closes #3877)

Most of the yes/no and query_quadoption prompts are pretty short, but
for completeness add handling for those too.

7 years agoSet pager's REDRAW_SIGWINCH when reflowing windows.
Kevin McCarthy [Sat, 15 Apr 2017 19:56:46 +0000 (12:56 -0700)]
Set pager's REDRAW_SIGWINCH when reflowing windows.

So that all external reflow handling functions don't have to remember
to set the flag too.

7 years agoAdd multiline and sigwinch handling to mutt_multi_choice. (see #3877)
Kevin McCarthy [Sat, 15 Apr 2017 19:56:43 +0000 (12:56 -0700)]
Add multiline and sigwinch handling to mutt_multi_choice. (see #3877)

Resize the message window up to three lines to fix wide prompts.

Enable sigwinch processing and redraw the current menu as needed.

7 years agoAdd ifdefs around new mutt_resize_screen calls.
Kevin McCarthy [Sat, 15 Apr 2017 19:56:42 +0000 (12:56 -0700)]
Add ifdefs around new mutt_resize_screen calls.

Changeset 231fa2eff206 added sigwinch handling to _mutt_enter_string()
but neglected to add an ifdef check.

7 years agomerge stable
Kevin McCarthy [Thu, 13 Apr 2017 01:00:22 +0000 (18:00 -0700)]
merge stable

7 years agomutt-1.8.1 signed
Kevin McCarthy [Thu, 13 Apr 2017 00:45:28 +0000 (17:45 -0700)]
mutt-1.8.1 signed

7 years agoAdded tag mutt-1-8-1-rel for changeset f44974c10990
Kevin McCarthy [Thu, 13 Apr 2017 00:44:20 +0000 (17:44 -0700)]
Added tag mutt-1-8-1-rel for changeset f44974c10990

7 years agoautomatic post-release commit for mutt-1.8.1
Kevin McCarthy [Thu, 13 Apr 2017 00:43:47 +0000 (17:43 -0700)]
automatic post-release commit for mutt-1.8.1

7 years agomerge stable
Kevin McCarthy [Tue, 11 Apr 2017 19:15:12 +0000 (12:15 -0700)]
merge stable

7 years agoFix memleak when attaching files.
Kevin McCarthy [Tue, 11 Apr 2017 19:14:47 +0000 (12:14 -0700)]
Fix memleak when attaching files.

7 years agoEnsure mutt stays in endwin during calls to pipe_msg() (closes #3929)
Kevin McCarthy [Sat, 8 Apr 2017 21:21:15 +0000 (14:21 -0700)]
Ensure mutt stays in endwin during calls to pipe_msg()  (closes #3929)

The previous commit solved the problem reported in #3929: progressbar
output while downloading a message via IMAP was refreshing the mutt
ncurses session after launching the pipe program.

To ensure another place in the code doesn't inadvertantly generate
output, wrap OPTKEEPQUIET around the calls to
pipe_msg()/mutt_wait_filter() too.

7 years agomerge stable
Kevin McCarthy [Sat, 8 Apr 2017 21:21:12 +0000 (14:21 -0700)]
merge stable

7 years agoSilence imap progress messages for pipe-message. (see #3929)
Kevin McCarthy [Sat, 8 Apr 2017 21:18:26 +0000 (14:18 -0700)]
Silence imap progress messages for pipe-message. (see #3929)

_mutt_pipe_message() calls endwin(), and then calls pipe_msg().  If an
imap message body hasn't already been downloaded, this can end up
calling imap_fetch_message().

The progress messages in imap_fetch_message() were restoring curses,
just after extract_url was running.  This was leading to a condition
where mutt curses didn't think the screen had changed after
extract_url exited.

There was already a check for isendwin() inside imap_fetch_message(),
but it wasn't wrapped around the progressbar creation/usage.  Add a
check for those places too.

7 years agoDon't create query menu until after initial prompt. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:39 +0000 (16:09 -0700)]
Don't create query menu until after initial prompt. (see #3877)

A resize in the prompt will trigger a redraw, but the data won't be
loaded yet, displaying a blank screen instead of the previous menu.
Once the query is done, the data is loaded, but the menu->redraw state
has been changed by the resize.

We could manually flag a redraw, but it makes more sense visually
logically to just create the menu after the query and results are
loaded.

7 years agoSeparate out the pager menu redrawing. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:37 +0000 (16:09 -0700)]
Separate out the pager menu redrawing. (see #3877)

The pager relies on REDRAW_SIGWINCH, so add that to _mutt_get_field().

7 years agoPrepare for pager redraw separation. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:36 +0000 (16:09 -0700)]
Prepare for pager redraw separation. (see #3877)

Move some of the code inside SigWinch handling into the REDRAW part of
the code.

SigInt is handled by mutt_getch(), so remove the redundant code from
inside the pager.

7 years agoSeparate out the index menu redrawing. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:35 +0000 (16:09 -0700)]
Separate out the index menu redrawing. (see #3877)

7 years agoSeparate out the compose menu redrawing. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:34 +0000 (16:09 -0700)]
Separate out the compose menu redrawing. (see #3877)

Add a custom_menu_redraw to the menu and change menu_redraw() to call
that instead if set.

7 years agoChange km_dokey() to pass SigWinch on for the MENU_EDITOR. (see #3877)
Kevin McCarthy [Wed, 5 Apr 2017 23:09:33 +0000 (16:09 -0700)]
Change km_dokey() to pass SigWinch on for the MENU_EDITOR. (see #3877)

Change _mutt_enter_string() to pass the SigWinch through for
_mutt_get_field() or mutt_enter_string() to handle.

Add a call to mutt_current_menu() in _mutt_get_field() to properly
redisplay the screen in that case.

7 years agoRemove redraw flag setting after mutt_endwin().
Kevin McCarthy [Wed, 5 Apr 2017 23:09:31 +0000 (16:09 -0700)]
Remove redraw flag setting after mutt_endwin().

There is no need to set a redraw flag in this case.  The screen will
automatically be properly redrawn on the next refresh().

Remove, lest it get propagated.

7 years agoRemove refresh parameter from mutt_enter_fname().
Kevin McCarthy [Sat, 1 Apr 2017 01:15:31 +0000 (18:15 -0700)]
Remove refresh parameter from mutt_enter_fname().

Also remove it from mutt_save_message(), which used it to pass through
to mutt_enter_fname().  The callers of this already had redraw logic,
to which REDRAW_STATUS merely needed to be added.

7 years agoCreate R_MENU redraw option.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:28 +0000 (18:15 -0700)]
Create R_MENU redraw option.

Previously, the R_INDEX option meant both the index as well as all
other menus.  The removal of the OPTFORCEREDRAWINDEX option caused problems
with redrawing other menus for options such as arrow_cursor.

One solution would be change R_INDEX back to meaning "everything"
except pager, but there are only a handful of options that affect
other menus.

Instead, create R_MENU to indicate options that affect either all
menus or one of the other menus beside the index and pager.

7 years agoChange reflow_windows() to set full redraw.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:22 +0000 (18:15 -0700)]
Change reflow_windows() to set full redraw.

A full redraw should always be set in this case.  This also enables us
to remove redraw flags for some options.

7 years agoRemove SidebarNeedsRedraw.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:20 +0000 (18:15 -0700)]
Remove SidebarNeedsRedraw.

The menu stack can be used to flag a redraw of the sidebar window.

7 years agoRemove the OPTFORCEREDRAW options.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:12 +0000 (18:15 -0700)]
Remove the OPTFORCEREDRAW options.

Use the menu stack to flag redraws for the index and pager.

7 years agoFilter other directional markers that corrupt the screen.
Vincent Lefevre [Fri, 31 Mar 2017 15:29:35 +0000 (17:29 +0200)]
Filter other directional markers that corrupt the screen.

7 years agomerge stable
Kevin McCarthy [Mon, 27 Mar 2017 18:46:26 +0000 (11:46 -0700)]
merge stable

7 years agoFix (un)sidebar_whitelist to expand paths.
Kevin McCarthy [Mon, 27 Mar 2017 18:39:42 +0000 (11:39 -0700)]
Fix (un)sidebar_whitelist to expand paths.

Thanks to Arturo for reporting the issue.

7 years agoDon't full redraw the index when handling a command from the pager.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:45 +0000 (18:31 -0700)]
Don't full redraw the index when handling a command from the pager.

This causes a noticable flicker when moving through messages from the pager.

7 years agoRemove redraw parameter from crypt send_menus.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:43 +0000 (18:31 -0700)]
Remove redraw parameter from crypt send_menus.

The parameter was used to notify the caller if the sign (a)s menu was
invoked, which displayed the key selection menu.  This is no longer
necessary with the menu stack pop operation.

7 years agoSet refresh when popping the menu stack.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:41 +0000 (18:31 -0700)]
Set refresh when popping the menu stack.

This removes the need for the OPTNEEDREDRAW option and MAYBE_REDRAW
macro previously used to communicate back the need to refresh after
exiting a menu.

Remove the redraw parameter from ci_bounce_message() and
mix_make_chain() which served the same purpose.

7 years agoChange CurrentMenu to be controlled by the menu stack.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:40 +0000 (18:31 -0700)]
Change CurrentMenu to be controlled by the menu stack.

The pager menu is a bit tricky with respect to the menu->menu and
CurrentMenu, so add a few comments.

7 years agoAdd a menu stack to track current and past menus.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:39 +0000 (18:31 -0700)]
Add a menu stack to track current and past menus.

Change the pager to use a MENU, right now just to hold the refresh
state.

7 years agomerge stable
Kevin McCarthy [Sun, 26 Mar 2017 19:27:43 +0000 (12:27 -0700)]
merge stable

7 years agoFix mutt_refresh() pausing during macro events.
Kevin McCarthy [Sun, 26 Mar 2017 19:27:15 +0000 (12:27 -0700)]
Fix mutt_refresh() pausing during macro events.

Changeset a07e8215a0ef split input buffering into two pools.
Unfortunately, the mutt_refresh() was not changed to check the correct
buffer count, resulting in unnecessary refreshes during macros.

The SSL interactive certificate prompts set OPTIGNOREMACROEVENTS and
then put up a confirmation menu.  Perhaps we've just been lucky, but
it seems we should refresh the screen in those cases if we're in the
middle of a macro.  Add a check for this option in mutt_refresh() too.

7 years agomerge stable
Kevin McCarthy [Mon, 20 Mar 2017 17:18:57 +0000 (10:18 -0700)]
merge stable

7 years agoFix setenv overwriting to not truncate the envlist. (see #3922)
Kevin McCarthy [Mon, 20 Mar 2017 17:16:03 +0000 (10:16 -0700)]
Fix setenv overwriting to not truncate the envlist. (see #3922)

The refactor in 2b9c40f13e13 exposed a bug I hadn't noticed.  The
match loop performed a FREE() on the slot.  Then, below, it was
checking if (*envp) to see whether it was overwriting or creating a
new slot.  However, FREE() nulls out *envp.  This would end up
truncating the envlist just after the set slot!

Move the free down, using a mutt_str_replace(), when overwriting the
slot.

7 years agomerge stable
Kevin McCarthy [Sat, 18 Mar 2017 21:47:42 +0000 (14:47 -0700)]
merge stable

7 years agoFix mutt_envlist_set() for the case that envlist is null. (see #3922)
Kevin McCarthy [Sat, 18 Mar 2017 21:39:12 +0000 (14:39 -0700)]
Fix mutt_envlist_set() for the case that envlist is null. (see #3922)

7 years agoPass envlist to filter children too. (closes #3922)
Kevin McCarthy [Sat, 18 Mar 2017 20:48:02 +0000 (13:48 -0700)]
Pass envlist to filter children too.  (closes #3922)

The new setenv patch neglected to pass the envlist for filters too.

Unfortunately, the filter code was already set up to pass COLUMNS to
children, so it needed to be changed to add this to the envlist
instead.

Factor out mutt_envlist_set() from the parse_setenv() function, which
the filter code can then use to set COLUMNS after forking.

7 years agoFix conststrings type mismatches. (closes #3926)
Kevin McCarthy [Sat, 18 Mar 2017 20:38:20 +0000 (13:38 -0700)]
Fix conststrings type mismatches. (closes #3926)

The generation programs for conststrings.c: txt2c.c and txt2c.sh,
specified the resultant types as "unsigned char[]" while main.c
declared them as "const char[]".

txt2.c generates 0xXX hex codes for each individual character, thus
the "unsigned" definition.  With link-time optimization, some versions
of gcc notice the mismatch and emit a warning.

Change the declarations to match the definitions and cast to char[]
when they are used.

7 years agoChange OpenSSL to use SHA-256 for cert comparison. (closes #3924)
Kevin McCarthy [Tue, 14 Mar 2017 01:38:23 +0000 (18:38 -0700)]
Change OpenSSL to use SHA-256 for cert comparison. (closes #3924)

Note the GnuTLS code compares the certs directly to check if they are
in the certfile.

7 years agoUpdated French translation.
Vincent Lefevre [Mon, 13 Mar 2017 00:38:44 +0000 (01:38 +0100)]
Updated French translation.

7 years agoAdd shortcuts for IMAP and POP mailboxes in the file browser
Dmitri Vereshchagin [Sun, 12 Mar 2017 17:54:58 +0000 (10:54 -0700)]
Add shortcuts for IMAP and POP mailboxes in the file browser

Mailbox list may not be properly displayed in a standard 80-column
terminal window if the $folder variable contains a long URL.  In such
a case only left part of each entry name can be visible with the default
value of $folder_format.  What's worse, this visible part may not be
enough to distinguish between the entries.

Thus in this case mutt_pretty_mailbox() will be just as useful as for
local mailboxes.

7 years agoAdd SNI support for GnuTLS. (closes #3923)
Kevin McCarthy [Thu, 9 Mar 2017 21:38:30 +0000 (13:38 -0800)]
Add SNI support for GnuTLS. (closes #3923)

7 years agoAdd SNI support for OpenSSL. (see #3923)
Kevin McCarthy [Thu, 9 Mar 2017 21:00:10 +0000 (13:00 -0800)]
Add SNI support for OpenSSL. (see #3923)

The original patch for this is by Phil Pennock at:
https://people.spodhuis.org/phil.pennock/software/mutt-patches/

I have removed the OpenSSL version check and defined(OPENSSL_NO_TLSEXT)
check because:
  * SSL_set_tlsext_host_name() was added in 0.9.8f [11 Oct 2007]
  * OpenSSL 1.1 no longer has the OPENSSL_NO_TLSEXT compilation option
  * https://rt.openssl.org/Ticket/Display.html?id=2788&user=guest&pass=guest
    shows that the no-tlsext compilation option has been broken for some time.
  * Going forward, I'd like to minimize and start removing cruft required
    to support ancient/insecure versions of libraries.

7 years agoOpenSSL: Don't offer (a)ccept always choice for hostname mismatches. (closes #3914)
Kevin McCarthy [Thu, 9 Mar 2017 19:59:31 +0000 (11:59 -0800)]
OpenSSL: Don't offer (a)ccept always choice for hostname mismatches. (closes #3914)

On a hostname mismatch, saving the certificate is pointless because
mutt will ask the user no matter if the certificate is saved or not.

The only invocation allowing "accept always" is guarded by a call to
check_certificate_digest(), which means the check_certificate_file()
check is redundant.  Therefore remove that check and add a comment
noting why.

Thanks to Matthias Andree for the original version of this patch.

7 years agoPrevent skipped certs from showing a second time. (see #3916)
Kevin McCarthy [Thu, 9 Mar 2017 18:56:21 +0000 (10:56 -0800)]
Prevent skipped certs from showing a second time. (see #3916)

OpenSSL sometimes passes a skipped certificate to
ssl_verify_callback() a second time, with preverify_ok=1.  From
OpenSSL's viewpoint there is nothing wrong with this, but mutt will
end up showing the certificate in the interactive prompt again.

Cache the last cert and position, and compare with the latest when
skip_mode and preverify_ok are both set.

7 years agoDon't allow storing duplicate certs for OpenSSL interactive prompt. (closes #3914)
Kevin McCarthy [Wed, 8 Mar 2017 02:26:07 +0000 (18:26 -0800)]
Don't allow storing duplicate certs for OpenSSL interactive prompt. (closes #3914)

Check to make sure the certificate is not already in the
$certificate_file before offering the (a)ccept always option.

To allow a cert with a new validity timespan to be added to the file,
check the expiration dates when comparing certificates in the
certficate file.

7 years agoMove the OpenSSL partial chain support check inside configure.ac. (see #3916)
Kevin McCarthy [Wed, 8 Mar 2017 02:26:06 +0000 (18:26 -0800)]
Move the OpenSSL partial chain support check inside configure.ac. (see #3916)

Instead of directly checking whether X509_V_FLAG_PARTIAL_CHAIN is
defined everywhere, do it once inside configure.  This will allow
better support in the future if the test needs to change.

7 years agoAdd $ssl_verify_partial_chains option for OpenSSL. (closes #3916)
Matthias Andree [Wed, 8 Mar 2017 02:26:04 +0000 (18:26 -0800)]
Add $ssl_verify_partial_chains option for OpenSSL.  (closes #3916)

The reworked OpenSSL certificate validation took away a "feature" of
the previous implementation: the ability to reject a node in the chain
and yet continue to the next node.

If this new option is set to 'yes', enables OpenSSL's
X509_V_FLAG_PARTIAL_CHAIN flag to reinstate the functionality and permit
to use a non-root certificate as the trust anchor.

This option is only available if OpenSSL offers the
X509_V_FLAG_PARTIAL_CHAIN macro, which should be the case as of 1.0.2b
or later.

Code written by Kevin McCarthy and Matthias Andree.

7 years agomerge stable
Kevin McCarthy [Sun, 5 Mar 2017 23:26:03 +0000 (15:26 -0800)]
merge stable

7 years agoIncrease ACCOUNT.pass field size. (closes #3921)
Kevin McCarthy [Sun, 5 Mar 2017 23:24:45 +0000 (15:24 -0800)]
Increase ACCOUNT.pass field size. (closes #3921)

#3921 reported his password token used for Google XOAUTH2 is size 129.
The ACCOUNT structure currently uses a size 128 buffer.  Who knew a
password field would ever be bigger than that?

Since the ACCOUNT structure has no allocation/dellocation routines,
the easiest fix is to increase the size.  Bump the size up to 256.

7 years agomerge stable
Kevin McCarthy [Thu, 2 Mar 2017 23:54:19 +0000 (15:54 -0800)]
merge stable

7 years agoSSL: Fix memory leak in subject alternative name code. (closes #3920)
Matthias Andree [Thu, 2 Mar 2017 23:53:27 +0000 (15:53 -0800)]
SSL: Fix memory leak in subject alternative name code. (closes #3920)

7 years agomerge stable
Kevin McCarthy [Thu, 2 Mar 2017 22:58:27 +0000 (14:58 -0800)]
merge stable

7 years agoPrevent segv if open-appending to an mbox fails. (closes #3918)
Kevin McCarthy [Thu, 2 Mar 2017 22:53:20 +0000 (14:53 -0800)]
Prevent segv if open-appending to an mbox fails. (closes #3918)

If mbox_open_mailbox_append() fails, ctx->fp will be null.  Add a
check in mbox_close_mailbox(), to prevent a segv from passing null to
fileno().

7 years agomerge stable
Kevin McCarthy [Thu, 2 Mar 2017 21:17:50 +0000 (13:17 -0800)]
merge stable

7 years agoClear out extraneous errors before SSL_connect() (see #3916)
Kevin McCarthy [Thu, 2 Mar 2017 21:11:52 +0000 (13:11 -0800)]
Clear out extraneous errors before SSL_connect() (see #3916)

Call ERR_clear_error() just before the call to SSL_connect() to make
sure the error queue doesn't have any old errors in it.

PEM_read_X509() sets an error PEM_R_NO_START_LINE on end-of-file.
Clear that out so it doesn't show up as the SSL_connect() error
message.

7 years agomerge default into stable
Kevin McCarthy [Fri, 24 Feb 2017 19:00:38 +0000 (11:00 -0800)]
merge default into stable

7 years agomutt-1.8.0 signed
Kevin McCarthy [Fri, 24 Feb 2017 18:55:23 +0000 (10:55 -0800)]
mutt-1.8.0 signed

7 years agoAdded tag mutt-1-8-rel for changeset d897983752f9
Kevin McCarthy [Fri, 24 Feb 2017 18:50:19 +0000 (10:50 -0800)]
Added tag mutt-1-8-rel for changeset d897983752f9

7 years agoautomatic post-release commit for mutt-1.8.0
Kevin McCarthy [Fri, 24 Feb 2017 18:50:02 +0000 (10:50 -0800)]
automatic post-release commit for mutt-1.8.0

7 years agoUpdated Japanese translation.
TAKAHASHI Tamotsu [Thu, 23 Feb 2017 16:56:27 +0000 (08:56 -0800)]
Updated Japanese translation.

7 years agoUpdated Dutch translation.
Benno Schulenberg [Wed, 22 Feb 2017 23:58:15 +0000 (15:58 -0800)]
Updated Dutch translation.

7 years agoUpdated Esperanto translation.
Benno Schulenberg [Wed, 22 Feb 2017 20:58:24 +0000 (12:58 -0800)]
Updated Esperanto translation.

7 years agoMinor touchups to documentation and UPDATING file.
Kevin McCarthy [Wed, 22 Feb 2017 20:50:02 +0000 (12:50 -0800)]
Minor touchups to documentation and UPDATING file.

7 years agoMention $XDG_CONFIG_HOME/mutt/ in the manual.
Kevin McCarthy [Mon, 20 Feb 2017 02:51:36 +0000 (18:51 -0800)]
Mention $XDG_CONFIG_HOME/mutt/ in the manual.

7 years agoReword some of the UPDATING entries.
Kevin McCarthy [Mon, 20 Feb 2017 02:30:51 +0000 (18:30 -0800)]
Reword some of the UPDATING entries.

Thanks to Matthias Andree for his feedback and suggestions!

7 years agoAdd 1.8.0 entries to the UPDATING file.
Kevin McCarthy [Sat, 18 Feb 2017 23:15:01 +0000 (15:15 -0800)]
Add 1.8.0 entries to the UPDATING file.

7 years agoPrevent null pointer exception for h->ai_canonname
Athanasios Douitsis [Sat, 18 Feb 2017 21:30:27 +0000 (21:30 +0000)]
Prevent null pointer exception for h->ai_canonname

The getaddrinfo call in line 54 sets &h to a struct addrinfo. If a
canonical name cannot be found for the node argument of getaddrinfo,
h->ai_canonname is set to NULL. In that case, the strchr call in line
58 can lead to segfault. This behavior was observed on a macos sierra
while the hostname was 192.168.1.3 (unfortunately this happens quite
often in macos).

The fix is simple, just check h->ai_canonname for the NULL value.

7 years agoUpdated Catalan translation.
Ivan Vilata i Balaguer [Sat, 18 Feb 2017 04:02:46 +0000 (20:02 -0800)]
Updated Catalan translation.

7 years agoUpdated Russian translation.
Vsevolod Volkov [Thu, 16 Feb 2017 20:44:06 +0000 (12:44 -0800)]
Updated Russian translation.

7 years agoUpdated Ukrainian translation.
Vsevolod Volkov [Thu, 16 Feb 2017 20:41:09 +0000 (12:41 -0800)]
Updated Ukrainian translation.

7 years agoUpdated Danish translation.
Morten Bo Johansen [Thu, 16 Feb 2017 19:22:49 +0000 (11:22 -0800)]
Updated Danish translation.

7 years agoUpdated Czech translation.
Petr Pisar [Mon, 13 Feb 2017 20:26:30 +0000 (12:26 -0800)]
Updated Czech translation.

7 years agoShow SHA1 fp in interactive cert check menu.
Matthias Andree [Sun, 12 Feb 2017 21:03:03 +0000 (13:03 -0800)]
Show SHA1 fp in interactive cert check menu.

While here, fix a few compiler warnings about sign mismatch in comparison.

7 years agoFix potential cert memory leak in check_certificate_by_digest().
Kevin McCarthy [Sun, 12 Feb 2017 20:24:51 +0000 (12:24 -0800)]
Fix potential cert memory leak in check_certificate_by_digest().

Thanks to Matthias Andree's debugging, it appears the cert is not
freed when PEM_read_X509() encounters EOF.  Change the return value
check to not overwrite cert.  It is already updated via the second
parameter.

7 years agoPlug memory leak in weed-expired-certs code.
Matthias Andree [Sun, 12 Feb 2017 17:59:48 +0000 (09:59 -0800)]
Plug memory leak in weed-expired-certs code.

X509_STORE_add_cert() creates a copy of the certificate we're offering,
so we need to free our copy afterwards.  This isn't documented, but from
observed behaviour in OpenSSL 1.0.2 and its master branch source code.

Change PEM_read_X509() call to reuse cert to avoid free/reallocation
overhead.

7 years agoFilter expired local certs for OpenSSL verification.
Kevin McCarthy [Sun, 12 Feb 2017 17:59:41 +0000 (09:59 -0800)]
Filter expired local certs for OpenSSL verification.

OpenSSL has trouble establishing the chain and verifying when
duplicate expired certs are loaded in from $certificate_file.  A
warning about this is mentioned in
SSL_CTX_load_verify_locations(3SSL).

Filter out expired certs when loading verify certs.  Note that the
full certicates file is still used for verification in
check_certificate_by_digest().

7 years agoChange "allow_dups" into a flag at hash creation.
Kevin McCarthy [Fri, 10 Feb 2017 21:01:21 +0000 (13:01 -0800)]
Change "allow_dups" into a flag at hash creation.

Instead of having an "allow_dups" parameter for hash_insert(), add a
flag, MUTT_HASH_ALLOW_DUPS, to hash_create().

Currently ReverseAlias, subj_hash, and thread_hash allow duplicate
keys.  Change those hashes to pass the flag at creation, and remove
the last parameter from all callers of hash_insert().

7 years agoUpdated Czech translation.
Petr Pisar [Fri, 10 Feb 2017 20:56:42 +0000 (12:56 -0800)]
Updated Czech translation.

7 years agoUpdated French translation.
Vincent Lefevre [Fri, 10 Feb 2017 11:51:17 +0000 (12:51 +0100)]
Updated French translation.

7 years agoFix build for bdb.
Kevin McCarthy [Wed, 8 Feb 2017 15:48:07 +0000 (07:48 -0800)]
Fix build for bdb.

Changeset fca7e504ab6a removed #else/#endif around two blocks of code
that won't compile with bdb enabled.  Restore those directives.

Thanks to Richard Russon for pointing out the problem and saving me
from having egg all over my face with the 1.8 release!

7 years agoCreate function to free header cache data.
Kevin McCarthy [Wed, 8 Feb 2017 03:36:43 +0000 (19:36 -0800)]
Create function to free header cache data.

Kyoto Cabinet documents that data from it should be freed via
kcfree().

LMDB claims ownership of the data returned, so convert its free
operation to be a noop and remove the malloc from its fetch function.

7 years agoAdd Kyoto Cabinet support to the header cache.
Kevin McCarthy [Wed, 8 Feb 2017 03:36:37 +0000 (19:36 -0800)]
Add Kyoto Cabinet support to the header cache.

Retain the defaults as they are, although we might switch to Kyoto
Cabinet for the next major release.

7 years agoFixes to the LMDB header cache. (closes #3691)
Kevin McCarthy [Sat, 4 Feb 2017 20:53:52 +0000 (12:53 -0800)]
Fixes to the LMDB header cache. (closes #3691)

Use mdb_txn_abort() to free up readonly/reset transactions, and avoid
leaking memory.

Fix hcache_delete() key generation - looks like this was an incorrect
copy/paste from the bdb code.

Use dprint, not fprintf, for debugging messages.

Remove strange blending of enum and bitfield logic for the txn_mode
state.

Remove some duplicate code from store/fetch raw.