X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=sbr%2Faddrsbr.c;h=ffdac3ffea78a45725f5c143c29e30d556d7fa8f;hb=4e0b71d26ea73fe5ae324cc9c5caa7f204760781;hp=633f6ef9aac252f96210ecf44995a53e1f8d85dd;hpb=5aab34095ffbff27be09091e703e61ddf352ad87;p=mmh diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c index 633f6ef..ffdac3f 100644 --- a/sbr/addrsbr.c +++ b/sbr/addrsbr.c @@ -373,8 +373,13 @@ ismymbox (struct mailname *np) if ((am = context_find ("local-mailbox"))) { struct mailname *mptr; - if ((mptr = getm (am, NULL, 0, AD_NAME, NULL)) == NULL) { - admonish (NULL, "invalid entry in local-mailbox: %s", am); + if ((cp = getname(am)) == NULL) { + admonish (NULL, "Unable to find address in local-mailbox"); + return 0; + } + + if ((mptr = getm (cp, NULL, 0, AD_NAME, NULL)) == NULL) { + admonish (NULL, "invalid entry in local-mailbox: %s", cp); return 0; } @@ -387,6 +392,14 @@ ismymbox (struct mailname *np) mq = *mptr; free(mptr); + + /* + * Sigh, it turns out that the address parser gets messed up + * if you don't call getname() until it returns NULL. + */ + + while ((cp = getname(am)) != NULL) + ; } else { mq.m_mbox = getusername (); }