diff options
author | Alex Musolino <alex@musolino.id.au> | 2020-06-22 16:34:31 +0930 |
---|---|---|
committer | Alex Musolino <alex@musolino.id.au> | 2020-06-22 16:34:31 +0930 |
commit | 200c18bc150a896752a1f84eabbbf13e3ee150a6 (patch) | |
tree | a7913532c7c880bbc2592ea7493d0b9caee2f3ab | |
parent | 55d8082842367540b7c3918253c04f71fc9361bb (diff) | |
download | plan9front-200c18bc150a896752a1f84eabbbf13e3ee150a6.tar.xz |
upas/marshal: make attachment failure fatal
-rw-r--r-- | sys/src/cmd/upas/marshal/marshal.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/src/cmd/upas/marshal/marshal.c b/sys/src/cmd/upas/marshal/marshal.c index dc891f7ae..1e965308b 100644 --- a/sys/src/cmd/upas/marshal/marshal.c +++ b/sys/src/cmd/upas/marshal/marshal.c @@ -136,6 +136,7 @@ char *user; char *login; Alias *aliases; int rfc822syntaxerror; +int attachfailed; char lastchar; char *replymsg; @@ -308,6 +309,10 @@ main(int argc, char **argv) holding = holdon(); headersrv = readheaders(&in, &flags, &hdrstring, eightflag? &to: nil, eightflag? &cc: nil, eightflag? &bcc: nil, l, 1); + if(attachfailed){ + Bdrain(&in); + fatal("attachment(s) failed, message not sent"); + } if(rfc822syntaxerror){ Bdrain(&in); fatal("rfc822 syntax error, message not sent"); @@ -501,8 +506,11 @@ readheaders(Biobuf *in, int *fp, String **sp, Addr **top, Addr **ccp, Addr **bcc if(att == nil) break; *att = mkattach(hdrval(s_to_c(sline)), nil, hdrtype == Hinclude); - if(*att != nil) - att = &(*att)->next; + if(*att == nil){ + attachfailed = 1; + return Error; + } + att = &(*att)->next; break; } s_free(sline); |