summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Musolino <alex@musolino.id.au>2020-06-22 16:34:31 +0930
committerAlex Musolino <alex@musolino.id.au>2020-06-22 16:34:31 +0930
commit200c18bc150a896752a1f84eabbbf13e3ee150a6 (patch)
treea7913532c7c880bbc2592ea7493d0b9caee2f3ab
parent55d8082842367540b7c3918253c04f71fc9361bb (diff)
downloadplan9front-200c18bc150a896752a1f84eabbbf13e3ee150a6.tar.xz
upas/marshal: make attachment failure fatal
-rw-r--r--sys/src/cmd/upas/marshal/marshal.c12
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);