Lines 41-48
Link Here
|
41 |
|
41 |
|
42 |
#include "dma.h" |
42 |
#include "dma.h" |
43 |
|
43 |
|
44 |
#define MAX_LINE_RFC822 1000 |
|
|
45 |
|
46 |
void |
44 |
void |
47 |
bounce(struct qitem *it, const char *reason) |
45 |
bounce(struct qitem *it, const char *reason) |
48 |
{ |
46 |
{ |
Lines 350-369
Link Here
|
350 |
|
348 |
|
351 |
while (linelen > 0) { |
349 |
while (linelen > 0) { |
352 |
len = linelen; |
350 |
len = linelen; |
353 |
if (linelen > MAX_LINE_RFC822) { |
351 |
if (linelen > MAX_LINE_RFC2822) { |
354 |
len = MAX_LINE_RFC822 - 10; |
352 |
len = MAX_LINE_RFC2822 - 1; |
355 |
} |
353 |
} |
356 |
|
354 |
|
357 |
if (fwrite(line, len, 1, queue->mailf) != 1) |
355 |
if (fwrite(line, len, 1, queue->mailf) != 1) |
358 |
return (-1); |
356 |
return (-1); |
359 |
|
357 |
|
360 |
if (linelen <= MAX_LINE_RFC822) |
358 |
if (linelen <= MAX_LINE_RFC2822) |
361 |
break; |
359 |
break; |
362 |
|
360 |
|
363 |
if (fwrite("\n", 1, 1, queue->mailf) != 1) |
361 |
if (fwrite("\n", 1, 1, queue->mailf) != 1) |
364 |
return (-1); |
362 |
return (-1); |
365 |
|
363 |
|
366 |
line += MAX_LINE_RFC822 - 10; |
364 |
line += MAX_LINE_RFC2822 - 1; |
367 |
linelen = strlen(line); |
365 |
linelen = strlen(line); |
368 |
} |
366 |
} |
369 |
return (0); |
367 |
return (0); |
Lines 376-382
Link Here
|
376 |
char *line = NULL; |
374 |
char *line = NULL; |
377 |
ssize_t linelen; |
375 |
ssize_t linelen; |
378 |
size_t linecap = 0; |
376 |
size_t linecap = 0; |
379 |
char newline[MAX_LINE_RFC822]; |
377 |
char newline[MAX_LINE_RFC2822]; |
380 |
size_t error; |
378 |
size_t error; |
381 |
int had_headers = 0; |
379 |
int had_headers = 0; |
382 |
int had_from = 0; |
380 |
int had_from = 0; |
Lines 407-413
Link Here
|
407 |
break; |
405 |
break; |
408 |
|
406 |
|
409 |
if (!had_headers) { |
407 |
if (!had_headers) { |
410 |
if (linelen > MAX_LINE_RFC822) { |
408 |
if (linelen > MAX_LINE_RFC2822) { |
411 |
/* XXX also split headers */ |
409 |
/* XXX also split headers */ |
412 |
errlogx(EX_DATAERR, "bad mail input format:" |
410 |
errlogx(EX_DATAERR, "bad mail input format:" |
413 |
" from %s (uid %d) (envelope-from %s)", |
411 |
" from %s (uid %d) (envelope-from %s)", |