Re: Mutt recursion crash with account hooks
- To: mutt-dev@xxxxxxxx
- Subject: Re: Mutt recursion crash with account hooks
- From: Brendan Cully <brendan@xxxxxxxxxx>
- Date: Mon, 12 Jan 2009 11:26:03 -0800
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed; d=kublai.com; h=date:to: subject:message-id:references:mime-version:content-type: content-transfer-encoding:in-reply-to:from; q=dns/txt; s=dk; bh= +01Rcai0EImuZvrulEYXvLOLbIA=; b=H/5PzMsfuxm/ds8AWraoftqtSOZO32n8 bQaQiTfX+J9S7kMdG7oaHHtCbgBlvVYdxe24pkEmu409swmLeslKbF7p9XsvlEEL qmrOf3VJ4UTu3++He2GqlvIJvZkMgmQEDuZC4eFZhuXls4YENUPysQARPf5rBha+ Mc3PzJs4knQ=
- In-reply-to: <20090112191536.GA66746@xxxxxxxxxxxxx>
- List-post: <mailto:mutt-dev@mutt.org>
- List-unsubscribe: send mail to majordomo@mutt.org, body only "unsubscribe mutt-dev"
- Mail-followup-to: mutt-dev@xxxxxxxx
- References: <20090112191536.GA66746@xxxxxxxxxxxxx>
- Sender: owner-mutt-dev@xxxxxxxx
- User-agent: Mutt/1.5.19 (2009-01-11)
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.