check for to long lines and ioerror in spost
authorPhilipp Takacs <philipp@bureaucracy.de>
Sun, 24 Apr 2016 10:29:32 +0000 (12:29 +0200)
committerPhilipp Takacs <philipp@bureaucracy.de>
Sun, 24 Apr 2016 10:29:32 +0000 (12:29 +0200)
Now spost stop and exit if some error happend. Befor this
spost stoped on an error in the body and submitted a half
mail.

uip/spost.c

index 53ae86a..4e9e7ce 100644 (file)
@@ -244,6 +244,9 @@ main(int argc, char **argv)
                        finish_headers(out);
                        fprintf(out, "\n%s", f.value);
                        while ((state = m_getfld2(state, &f, in)) == BODY2) {
                        finish_headers(out);
                        fprintf(out, "\n%s", f.value);
                        while ((state = m_getfld2(state, &f, in)) == BODY2) {
+                               if (f.valuelen >= NAMESZ) {
+                                       adios(EX_DATAERR, NULL, "Body contains a to long line");
+                               }
                                fputs(f.value, out);
                        }
                        break;
                                fputs(f.value, out);
                        }
                        break;
@@ -265,6 +268,10 @@ main(int argc, char **argv)
        }
        fclose(in);
 
        }
        fclose(in);
 
+       if (status != FILEEOF2) {
+               adios(EX_IOERR, "m_getfld2", "Error while reading body");
+       }
+
        if (debug) {
                struct mailname *i = recipients;
                /* stop here */
        if (debug) {
                struct mailname *i = recipients;
                /* stop here */