At zmailer-2.99.39 there is bug in smtpserver's HELO syntax parser, which manifests itself as faulty pointer arithmetics. This fix hides the real problem by introducing a sanity limit at how long a line can be -- assuming the errors are made with hand-typed SMTP the lines can't be very long. Anyway, without this a malformed SMTP HELO greeting can blow your log-file (and remote user's senses). /Matti Aarnio --- smtpserver.c~ Fri Oct 25 21:46:53 1996 +++ smtpserver.c Mon Oct 28 11:31:38 1996 @@ -2776,17 +2776,17 @@ void *s1, *s2, *s3; /* XX: Propably not portable.. */ { char *s = inbuf+3+strlen(status)+1; + int maxcnt = 200; printf("%03d-%s ", code < 0 ? -code : code,status); if (logfp != NULL) fprintf(logfp, "%dw\t%03d-%s ", pid, code,status); - if (((int)(rfc821_error_ptr - s)) < 200) - while (s < rfc821_error_ptr) { - ++s; - putc(' ',stdout); - if (logfp != NULL) - putc(' ',logfp); - } + while (s < rfc821_error_ptr && --maxcnt >= 0) { + ++s; + putc(' ',stdout); + if (logfp != NULL) + putc(' ',logfp); + } printf("^\n"); if (logfp != NULL) fprintf(logfp,"^\n");