<<< Date Index >>>     <<< Thread Index >>>

Re: Mutt recursion crash with account hooks



On Monday, 12 January 2009 at 13:15, Kyle Wheeler wrote:
> With recent changes to the mutt source, an infinite recursive loop has  
> been created in some configuration scenarios. Specifically, if you have 
> account-hooks to set your $folder and then attempt to set your $folder. 
> For example:
>
>     account-hook 'me@server' \
>         'set folder="imaps://me@server/INBOX";\
>          set spoolfile="imaps://me@server/INBOX"'
>
>     set folder=imaps://me@server/INBOX
>
> What will happen is that while parsing the “set folder” line, mutt will 
> attempt to expand the path specified, which now requires triggering the 
> account-hooks. The account hook will attempt to expand the path specified, 
> which will re-trigger the account hook, which will re-attempt expanding 
> the path specified, and this will continue recursing until the stack is 
> thoroughly smashed.

Oops. I'll add a guard for this. Thanks for finding it :)

> This didn’t used to happen.
>
> I suppose my question is: is this account-hook unreasonable? Should it be 
> turned into a folder-hook? Should mutt perhaps do something a bit more 
> useful than crashing mysteriously in this case? Perhaps mutt should detect 
> that $folder is being set inside an account hook and simply spit out an 
> error? If there are settings that will cause mutt to CRASH (such as this 
> one), I think we should go the extra mile to give a useful error message 
> instead.

Mutt should definitely not crash here. But a folder-hook would be more
appropriate for this usage, I think.