-
Notifications
You must be signed in to change notification settings - Fork 1
/
HISTORY
625 lines (624 loc) · 30.4 KB
/
HISTORY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
Only the last entry is complete, the others might have been condensed.
1990/12/07: v1.00
1990/12/12: v1.01
1991/02/04: v1.02
1991/02/13: v1.10
1991/02/21: v1.20
1991/02/22: v1.21
1991/03/01: v1.30
1991/03/15: v1.35
Started using RCS to manage the source
1991/06/04: v1.99
1991/06/10: v2.00
1991/06/11: v2.01
1991/06/12: v2.02
1991/06/20: v2.03
1991/07/04: v2.10
1991/07/12: v2.11
1991/10/02: v2.20 (never released)
1991/10/18: v2.30
Reached the doubtful milestone of having a source file (regexp.c)
which provokes a compiler error on an old compiler
(if using the optimiser)
1991/10/22: v2.31
1991/12/05: v2.40
1991/12/13: v2.50
1992/01/22: v2.60
1992/01/31: v2.61
1992/04/30: v2.70
1992/07/01: v2.71
Gave procmail, formail, lockfile and mailstat a more verbose
command line help (called up by -h or -?)
1993/02/04: v2.80
Started using CVS to manage the source (god's gift to programmers)
Changes to the installation scripts:
- the autoconf script now performs a reliability test on kernel
locking support
- reached the doubtful milestone of consistently crashing the
kernel on a Convex by running the locktst program
1993/02/19: v2.81
1993/06/02: v2.82 (never really released, was only available as prerelease 4)
Worked my way around the !@#$%^&*() POSIX setgid() semantics (if
your OS supports setrgid() or setregid())
1993/07/01: v2.90
Condition lines in recipes can now be started with a leading `*',
there is no longer a need to count condition lines, simply
set the number to zero, and let procmail find out by itself
1993/07/02: v2.91
Reached the doubtful milestone to sometimes crash an Ultrix
machine (due to the lockingtests, not procmail itself)
1994/06/14: v3.00
Changes to procmail:
- Changed the semantics of the TRAP keyword. In order to
make procmail accept the exitcode it returns, you now have
to set EXITCODE=""
- It was still occasionally trying to lock /dev/null, which
is of course silly, fixed that
- Taught it about `nesting recipes'; they allow parts of
an rcfile to be grouped hierarchically
- Fixed a discrepancy with /bin/sh backquote expansion in
environment assignments (preserving all spaces)
- Logs its pid and a timestamp when VERBOSE=on
- Caused the regular TIMEOUT to break a `hanging' kernel lock
- SIGUSR1 and SIGUSR2 can be used to turn on and off verbose
logging
- Worked around a bug in the `ANSI'-compiler of Domain/OS
- Procmail and lockfile now inherit any ignore status of most
regular signals (fixes a problem with some buggy shells)
- Optionally reads in a global rcfile (/etc/procmailrc)
before doing regular delivery (which includes the new
keyword: DROPPRIVS)
- Can pipe the mail to stdout on request
- Moved the "Reiterating kernel lock" diagnostic into the
"extended" (i.e. VERBOSE=on) section
- Tightened the loop when skipping comments in rcfiles (for
a slight speedup)
- Added support for filesystems not capable of creating
hardlinks
- Tightened the security check on initial absolute rcfiles
(they sometimes can't be world writable)
- Weighted scoring on conditions
- Ability to inline parse ${var-text} and ${var:-text}
- Ability to inline parse ${var+text} and ${var:+text}
- Skipping spaces after "!" and "$" on condition lines
- Implicit delivery somehow got broken: fixed
- Default umask is always 077 now for deliverymode
- Extended ^FROM_DAEMON and ^FROM_MAILER macro regexps again
- The -f option became less strict, everyone can use it now,
except that unpriviliged users will get an additional >From_
they didn't bargain for (in order to make fakes identifiable)
- The date on the From_ line can now be refreshed with -f-
- Introduced new recipe flags: E and e (else and error)
- Nested blocks clone procmail on a 'c' flag
- Introduced the EXITCODE special variable
- Implicit delivery mode is now entered if argv[0] doesn't start
with the word `procmail'
- Fixed the BSD support for kernel-locking only operation
- Taught the regexp engine about \< and \>
- Fixed bug present on some systems; caused the body to be
munged when filtering headers only
- Added -o option (makes procmail override the From_ lines, like
it used to)
- -p and -m together shrink the set of preset variables to the
bare minimum
- -p is not supported alongside -d anymore
- /etc/procmailrcs/ is the place for optional privileged
rcfiles in -m mailfilter mode
- Switched the meanings of SIGUSR1 and SIGUSR2
- The 'a' flag didn't work correctly after filter recipes
- Changed the permissions on the lockfile, writing zero in it
- Check the permissions on the existing system mailbox, correct
them if necessary
- Clean up zombies more often
Changes to formail:
- Fixed a sender-determination-weight problem, it mixed up
the weights when autoreplying and when regenerating the From_
line (and thus didn't always pick the optimal field)
- Pays attention to the exitcode of the programs it started
- Accepts simultaneous -X and -k options
- Fixed a bug introduced in v2.82 in formail when using
the -x and the -k options simultaneously
- Rearranged the weights for "-rt" (made From: more important)
- Parsed return-addresses starting with a \ incorrectly
(causing it to coredump on occasion)
- Supports the -s option withouth a program argument
- Recognise extra UUCP >From_ lines
- Introduced the -B option to split up BABYL rmail files
- It regards and generates a FILENO variable (for easy
numbering)
- Moved the idcheck functionality into formail -D (due to
popular demand), for eliminating duplicate mails
- It terminates early now if it only needs the header
- The -n option can now sustain itself by reaping children
if it can't fork() immediately
- It supports incomplete field specifications which match
any field starting similarly
- Introduced the -u and -U options
- -a Message-ID: and -a Resent-Message-ID: to make it generate
new ones
- Keep the X-Loop: field when generating autoreplies
- Lowered the negative weight for .UUCP reply addresses
- Honour Content-Length: fields, also speeds up processing of
lengthy messages
- Clean up zombies more often
- Handle bangpath reconstruction
- Made -q the default, use -q- to disable
Miscellaneous changes:
- Detecting and dodging buggy zshs everywhere
- Slightly adjusted autoconf for the new non-standard 386BSD
and NeXTStep 3.1 environments
- Extended the FAQ
- Extended and fixed the procmailex man page
- Updated the crontab script recommendation in the procmail
man page
- Fixed the "procmail"-mailer definition in the procmail man
page
- Created a new procmailsc man page
- Fixed a bug in lockfile, the exitcode was not correct if
you used -! with more than one file
- Including <limits.h> now, some (old) architectures seem to
insist on this
- Revamped the library search code
- Provided a faster (than most libraries) strstr() routine
- Created the setid program (to be used by the SmartList
installation)
- Checking for fstat() in autoconf
- Avoiding i/o-redirection on subshells
- Provided for the ability to hotwire the lockingtests
- Autoconf asks if you'd like to use the existing autoconf.h
- Autoconf determines MAX_argc (for choplist)
1994/06/14: v3.01
No changes, version number bump to keep in sync with SmartList
1994/06/16: v3.02
Made formail quiet (by default) about Content-Length mismatches
The version number in patchlevel.h for this version was incorrect
and still displayed v3.01 (yes, silly, I know)
1994/06/30: v3.03
Limit the no. of retries on lockfiles if the recipient is over
quota (procmail & lockfile)
Removed some superfluous "procmail:" prefixes in the middle of
an error message
Utilise a syslog daemon (if present) to log some critical errors
(mostly attempted security violations and errors which are
fatal but can't occur (like an unwritable /dev/null))
Reconstruct and respect Content-Length: in procmail
(if you need the >From lines, you'll have to take any existing
Content-Lenght: field out of the header)
Reformatted the source code to match the changed conventions
Procmail always defaulting the umask to 077 for deliverymode broke
some systems, reverting back to the old method of allowing group
access on the system mailbox if necessary
1994/08/02: v3.04
Changes to procmail:
- Support some non-BSD compatible syslog() implementations
- Even if the Content-Length is zero, write it out (some
programs can't deal with the empty field)
- Drop the safety margin on Content-Length calculations, some
programs can't deal with those
- Truncate folders to their former length if delivery was not
successful
- Fine-tuned the ^FROM_MAILER and ^FROM_DAEMON macros again
- The -v option lists the locking strategies employed
- Will create the last member of the mail spool directory if
found missing
Forgot to define closelog() away if syslog support is missing
Worked around the old syslog() interface
Worked around a compiler bug old HP compilers (pointer-unsigned),
caused the Content-Length: field to be mangled on some older
HP/UX systems (not on every mail)
Worked around compilation problems on SCO and old versions of IRIX
Some fixes to the man pages
Changes to formail:
- Mistakenly turned X-Loop: fields into Old-X-Loop: when
autoreplying
- Allow wildcard -i when autoreplying
- Renaming short fields to longer fields didn't always work
- Renaming with a wildcard source/destination is possible now
- -rk didn't behave correctly if a Content-Length: field was
present
Extended the sendmail directions in examples/advanced, it includes
a direct example on how to make use of the -a feature
Using EXIT_SUCCESS instead of EX_OK
Both procmail and formail take the -Y option, for traditional
Berkeley format mailboxes (ignoring Content-Length:)
Some NCR machines didn't have WNOHANG defined
1994/08/04: v3.05
Formail v3.04 didn't remove the From_ line if given the -I 'From '
option, changed that back, allowing for -a 'From '
Procmail sometimes didn't reliably count the number of matches on
a weighted recipe, fixed
Some minor manpage adaptations
1994/08/30: v3.06
Groff -mandoc macros managed to display the man pages incorrectly,
hacked my way around the .TH dependency to fix it
Split up string constant FM_HELP, it exceeded some compiler limits
Changes to procmail:
- Fixed a bug which was present since v2.30: 'z' was always
handled case sensitive (seems like not many people use
that letter :-) in regular expression conditions
- The ^^ anchor can now also be used to anchor the end of
a regular expression
- The -m flag will now unset ORGMAIL and will make
procmail omit the check for a system mailbox
- Allow easy reconfiguration of the default rcfile location
- Extend the list of internals displayed with -v
- The mail fed to the TRAP command contained some spurious
nul characters, fixed
Optionally allow the automatic installation of compressed man pages
Formail v3.00 and later occasionally seemed to hang if used in
a chain of pipes and fed with more text than it needed, fixed
Updated the FAQ
Updated the man pages (among others: vacation example changed)
Sharpened the autoconf const check, AIX 3.2.3 managed to slip past
it again
Made sure that "make -n" with any make works as expected
1994/10/31: v3.10
Changes to procmail:
- Minor corrections to the semantics of the 'a' and 'e' flags
- Minor correction to the semantics of the -o option
- Slight regular expression engine speedup
- Regexp matching of environment variables is possible now
- Due to popular demand: LOGABSTRACT=all logs *all* successful
delivering-recipes executed
- Enforce secure permissions on /etc/procmailrcs if used
- Take sgid bit in the system mail spool dir into account
even if it is world writable
- The regexp engine can return matches now (new token "\/",
new variable "MATCH")
- New recipe flag 'r', raw mode, so procmail doesn't try
to ensure the mail ends in an empty line
- Success and failure of a filter recipe is well defined now
- Procmail v3.06 prepended a bogus "." to explicit rcfile names
searched relative to the home directory, fixed
- Carved out two subroutines from main() to get it below the
optimisation threshold
- Eliminated duplicate error messages when procmailrcless
delivery fails
- Logging "Quota exceeded" messages when appropriate
- Truncate notification suppressed when logfile not opened
- Truncating didn't always work when delivering across NFS
- The $_ special variable was wrong when wasn't set
Changes to formail:
- New option: -z (zap whitespace and empty fields)
- Reading from stdin doesn't require the silly three EOFs
anymore
- -D with -r cache reply addresses now
- Carved out one subroutine from main() to get it below the
optimisation threshold
- -R with -x didn't work reliably
- -r with -i or -I sometimes had unexpected effects (in v3.06)
- The nil-Return-Path-override was broken, fixed
Updated the man pages, new subsection to procmailrc(5) summarising
procmail regexp syntax
Expanded on the sendmail.cf $#local example in the
examples/advanced file again
Revised detection of hard-link incapable filesystems during the
installation
Fixed bug in lockfile, the exitcode was not correct if
you used -! (I hope this finally fixes this -! problem)
Using execv() instead of execve()
1995/05/17: v3.11pre3
Changes to procmail:
- varname ?? < nnn conditions didn't have the expected effect
- Regression bug since v3.06, procmail -m /etc/procmailrcs
didn't allow any arguments to be passed, fixed
- Eliminated a superfluous fork() when processing TRAP
- "lockfile ignored" warning was generated inappropriately at
times
- Renamed testb() into testB() to avoid conflict with Solaris
- Eliminated spurious extra / in default MAILDIR value
- Whole line comments among the conditions are recognised
- Embedded empty lines in a recipe are tolerated
- $\name regexp safe variable expansion
- Delay searching for bogus From_ lines until writeout time
(speeds up filtering and writes to /dev/null)
- Finally fixed this mess with transparent backup to kernel
locking methods when the spool directory is not writable
- Avoid the one second NFS_ATIME_HACK under heavy load
- The 'r' flag had some undesirable side effects at times
- Dotlocks which fail due to permissions are not retried anymore
- Made the USER_TO_LOWERCASE_HACK run-time adapting
- /usr/spool/mail perm 1777, procmail setgid mail, procmail
could not read .procmailrc files in 700 $HOME dirs, fixed
- If called with -d option and not running with enough
privileges, procmail will bounce the mail (instead of
delivering to the invoker, as it used to)
- Severe tweaking on ^FROM_MAILER and ^FROM_DAEMON to reduce
false matches
- Allow for broken From_ lines with a missing sender address
Changes to formail:
- Slightly extended the number of known header fields
- Eliminated the conflict with the 4.4BSD daemon libidentifier
- In an MMDF environment formail -b didn't behave correctly
- Extracted another function from main() to make it smaller
- Process address groups correctly
- Process From_ lines with embedded commas correctly
Changes to autoconf:
- Catch NeXTstep 3.2 missing DIR definition
- Detect & work around Ultrix 4.3 "ANSI" C compiler
- A defined DEFsendmail or SYSTEM_MBOX caused some "s to be
omitted in autoconf.h
- Refined preliminary setsid() checks (2.4 x86/sunpro cc
managed to break it)
- Worked around a HERE document quoting bug in some shells
- Fixed the empty argument "shift" problem
- Detect & work around BSD 4.4 brain damaged setrgid()
New Makefile variable VISIBLE_BASE
Added support for a parallelising make
Changed manconf.c to cater for broken systems that have a 100 line
limit for sed (instead of a 100 command limit)
Fixed some portability problems with the Makefiles for the OSF make
Worked around old shells not supporting negated classes
Extended the FAQ
Updated examples/advanced docs for meta-argument setup in
a traditional v5.* sendmail setup
Fixed potential memory corruption bug for machines that have
sizeof(off_t)>sizeof(off_t*) (has been around for ages)
The man pages were remade upon every make, fixed
1995/10/29: v3.11pre4
Changes to procmail:
- Avoid the NFS delay on directory and MH folders
- KEEPENV didn't work reliably for more than one variable
- New macro ^TO_, delimits addresses more accurately than ^TO
- Don't try to fix the system mailbox permissions too soon,
this should put a stop to the numerous confusion reports
- SENDMAILFLAGS, new environment variable
- Support -y as a substitute kludge for -Y
- Fixed parsing of $@' when not doublequoted
Changes to formail:
- Return failure if the autoreply could not find a proper
return address
- Multiple -U options sometimes had unfortunate side effects
- When splitting and a maximum number of messages was being
specified, formail erroneously returned EX_IOERR
- Avoid splitting empty messages
Changes to autoconf:
- If running on a system with good old BSD semantics for
setrgid(), use the extra features offered
Changed the Mprocmail example, use $g instead of $f
1997/04/28: v3.11pre7
Changes to procmail:
- Cater for a race condition that occurs if two procmails
try to create an empty system mailbox (bogus BOGUS.* files)
- SysV autoforwarding mailboxes didn't work, regression bug in
v3.10
- Autocreating the last dirmember of the spooldir didn't
(always?) work due to the trailing /
- Kernel lockf() method doesn't change the position of the
filepointer anymore (results in more accurate lockingtests)
- Multiple directory folders are assigned to LASTFOLDER
- Don't strip trailing \n in a $MATCH
- Refuse to open directories for INCLUDERC files
- Syslog failed -o attempts
- Don't log non-delivering recipes, even with 'c' flag
Changes to formail:
- Skip leading spaces when checking for duplicates (will break
checks with old id-databases)
Worked around an nroff-coredumping problem with IRIX
Corrected the last(?) "make -n" glitch
Fixed library detection loop for some Solaris 2.[3-5] setups
Changes to procmail and lockfile: use the authenticate library
for easier integration with custom authentication and mailbox
locations
1999/03/02: v3.12
Changes to procmail:
- Use BOGUS.$LOGNAME.inode for bogus files to ease recovery
- Define RESTRICT_EXEC to restrict execution of programs
- Perform continuous checks on heap overflow, everywhere
If overflow is occurs then new variable PROCMAIL_OVERFLOW
is set
- Catch overly long rcfile names
- New variable PROCMAIL_VERSION
- LOGABSTRACT=all no longer logs filtering or variable capture
actions
- Don't strip leading \n in a $MATCH
- Worked around a compiler bug in Sun C compiler 4.2 (fdefault
cached past function calls)
- Tempfile names would grow on retry
- Open or reopen rcfiles as the user to prevent peeking when
not in privileged mailfilter mode
- Don't use $HOME/.procmailrc if it's group-writable or in a
group-writable directory, unless it's the user's default group
and GROUP_PER_USER is set in config.h
- hardlink in a an NFS-resistant manner
Worked around a compiler bug old HP compilers (pointer-unsigned),
caused the Content-Length: field to be mangled on some older
HP/UX systems (not on every mail)
Changes to formail:
- Generated Message-IDs don't contain "s anymore
- Fix off-by-one error when zapping whitespace
- -z option allows for leading tab instead of space
Changes to formail and lockfile:
- -v option displays version information
Changes to autoconf:
- Detect & work around inefficient realloc() implementations
Mailstat returns grand totals as well now
Update FAQ and docs to reflect default placing of procmail
in /usr/bin instead of /usr/local/bin
1999/03/31: v3.13
Mailstat was too loose in its awk syntax
Changes to formail:
- Formail was ignoring the exitcode of all but the last
invocation (or last several, if -n was in effect)
Changes to procmail:
- Variable expansion of builtin numeric variables in
conditions could overwrite the condition (broke SmartList)
- weights<1 didn't work if floats changed accuracy when stored
Worked around a bug in the Dunix 4.0e compiler (pointer addition
not commutative)
1999/11/22: v3.14
Changes to procmail:
- Some zero-length extractions using \/ could core dump
- Missed a couple possible overflows
- Eliminated the conflict with the C9x `restrict' keyword
- Support delivery to maildir mailboxes
- Support all styles of mailbox for the mail spool
- Don't use a locallockfile on $DEFAULT if it's a directory
- Set LINEBUF in the environment on startup
- Avoid renaming over old messages in directory folders
- New variable SWITCHRC performs `tail call'
- Refuse to open anything but regular files with INCLUDERC
and SWITCHRC
- Indicate whether GROUP_PER_USER was defined in the -v output
- Stopped depending on parens to stop function macros (they
don't under SunOS 4.x cc)
- Small heap compilation would fail on nomemerr() in pipes.c
- Worked around Tru64 UNIX V4.0E and V4.0F compilers
(strcpy() builtin doesn't always return pointer type)
- Warn about using 'c' flag with 'f' flag or on variable
capture recipes
- Warn about using 'h', 'b', 'i', or 'r' flags on nested
block recipes.
- Test for allowing rcfiles in sticky directories iff chown
is restricted was reversed
- LASTFOLDER wasn't correctly set when delivering to multiple
folders
- -f- couldn't find the timestamp if the address contained a
space
- SENDMAIL and SENDMAILFLAGS are now split in forwarding actions
- Variable capture actions now see the variable's current value
and restore it if the action fails. Previously unset
variables will remain unset.
- fsync() mailboxes before closing them
- Actually suppress the 'E' and 'a' flags when combined with
the 'e' flag instead of just saying so
- Avoid some calls to alarm()
- Overflows at certain times would confuse procmail
- dyna_long code now meets strict ANSI restrictions
- 'W' flag changes "Program failure" to "Non-zero exitcode"
- Nested blocks must open and close within the same rcfile
- Root owned lockfiles aren't bogus
- A lone trailing '$' wasn't terminated properly when expanded
Changes to formail:
- Replies without the -t flag go to the envelope sender
- Replies without "-a Resent-" and -t flag ignore the
Resent-* headers
- Prevent corrupt idcaches by suppressing the -n option when
splitting with the -D option
- Accept and strip whitespace between the fieldname and colon
- Renaming from a wildcard to nothing now works
Changes to mailstat:
- Work around the detab done on checkin to CVS
- Recognize maildir mailboxes
- Don't use a tempfile
Changes to autoconf:
- Don't assume realloc(0,size) works (doesn't under SunOS 4)
Stopped using `implicit int' (for C9x)
Cache gethostname() and uname() output
Changed the form of tempfile names to make them `more' unique
and deal with filename length limits more gracefully
Updated the FAQ and the list of mirrors in the README
Documented the exact behavior of lockfile's -! flag
Documented the suggested usage of -r vs -rt
2000/08/25: v3.15
Changes to procmail:
- v3.14 broke compilation on systems without lstat() or
that didn't declare it
- Rewrite folder type parsing: corrects handling of MH and
maildir style spools
- v3.14 changed '!' actions too much: revert to v3.13 behavior
but continue to split SENDMAILFLAGS
- Contents of skipped nested blocks could affect 'E', 'e', 'a',
and 'A' flags when they shouldn't have
- Prevent peeking into buffers on "Out of memory" errors
- Unquoted $\var expansions could alter the interpretation of
the following whitespace
- Prevent attempts to set LINEBUF to really huge values
- Optimize SWITCHRC = $_
- Use a secure PATH when processing /etc/procmailrc
- Prevent attempts to exercise a Linux kernel security hole
- Use 2^31-1 as the maximum score, even if LONG_MAX is larger
Changes to formail:
- Allow -n with -D and -s again -- corruption couldn't happen
after all
- Don't strip pre-colon whitespace until header is identified
- Properly handle NULs in the body when generating an autoreply
that keeps the body (could coredump)
Changes to autoconf:
- Avoid coredump on systems where sprintf() calls getenv()
Documented that $\var expansions are never split on whitespace
More manpage tweaks
Worked around linkers that don't support compile-time stripping
(for MacOS X)
Removed ':' and '@' from list of characters that can appear in
tempfile names
Called nice() when shouldn't have
Workaround SunOS 4.x compiler again
2001/06/28: v3.20
Changes to procmail:
- SECURITY: don't do unsafe things from signal handlers:
- ignore TRAP when terminating because of a signal
- resolve the host and protocol of COMSAT when it is set
- save the absolute path form of $LASTFOLDER for the comsat
message when it is set
- only use the log buffer if it's safe
- Support LMTP for delivery mode (not enabled by default)
- Preliminary support for using mmap() for `large' messages
(this doesn't work yet)
- SWITCHRC=zero-length-file didn't always abort the current
rcfile
- A race to create the mailspool would bounce one of the
messages due to an internal error
- LC_ in KEEPENV would preserve only the first LC_foo variable
- Strip runtime linker variables (LD_*) from environment on
all platforms
- Drop duplicate and malformed environment entries
- Multiple -a options will now set $2, $3, etc
- Command line assignments to INCLUDERC and SWITCHRC no longer
have any effect
- Worked around AIX 4.3.3 xlc compiler (incorrect file-scope
variable initialization)
- When delivering to a maildir, don't force the message to end
with an empty line
- Be more paranoid about leaking information between recipients
- Unset LOCKFILE if we can't actually lock it
- Set MAILDIR to '.' if the chdir fails
- LASTFOLDER was sometimes set by '?' conditions
- Buffer the log more efficiently
- Use the `standard' format for maildir filenames and retry
on name collision
- Rename by linking to prevent lossage
- Avoid dangling pointers when variable capture actions fail
Changes to autoconf:
- Check for enum support
- Warn people that non-ISO/ANSI C compilers might not be
supported in the future
- IRIX compiler (7.3.1) failed the const check from warnings
Changes to lockfile:
- Include the system mailbox lockfile path in the -v output
- Resist attempts to use a setuid lockfile command
- Fix infinite loop on -l, -r, or -s flag with no value
Documented formail's treatment of >From_ lines as continuations
of the From_ line and warned of problems caused by non-RFC822
field names like 'Old-From '
Clarified procmail's treatment of $@ and $#
Fixed a man page formatting problem
Use long, not off_t, with fseek()/ftell()
Increase our paranoia: start to use strlcat()
The default MAILDIR is now configurable separately from the
default rcfile location
Include an RPM spec file in the examples directory for automated
builds
Include and use mkinstalldirs
Called nice() when shouldn't have (this time for sure!)
2001/06/29: v3.21
Changes to procmail:
- Incorrect prototype broke compilation on Tru64 UNIX
- INCLUDERC was broken by trying to be fancy and not fully
succeeding when support for multiple -a options was added
2001/09/10: v3.22
Changes to procmail:
- Regression bugs from 3.20:
- Broke compilation with K&R compilers
- procmail -p -m was overridding PATH
- maildir delivery included garbage in filenames
- Mismatched HOST in last rcfile didn't discard the message
- COMSAT wasn't turned off by an rcfile on the command line
- Catch overly long command line variable assignments
- If a command expansion is truncated, set PROCMAIL_OVERFLOW
and don't trim trailing (really middle) newlines
- If the comsat host can't be resolved, set COMSAT to "no"
Some fixes to the man pages
More paranoia: start to use strlcpy()
Generate safe temp and maildir filenames when the hostname
contains / or : by mapping them to \ooo