ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-UUlib/Changes
Revision: 1.83
Committed: Sun Dec 13 06:36:09 2020 UTC (3 years, 5 months ago) by root
Branch: MAIN
Changes since 1.82: +5 -8 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 Revision history for Perl extension Convert::UUlib.
2
3 TODO: biggest timesinks: FP_fgets/getc_unlocked overall, UUInsertPartToList dominates large loads due to O(n**2) search
4
5 - no bugfixes in this release due to lack of known bugs, but the major changes
6 in this release might have introduced new bugs, so watch out.
7 - update large decoder example to disable OPT_AUTOCHK dn use Smerge -1.
8 - some micro-optimisations.
9 - avoid costly string comparisons by comparing hashes when isnerting items,
10 which speeds up insertion by a constant factor.
11 - improve uulist (and other) structure layout and size.
12 - reverse the order of file list items, which heuristically improves
13 match speed with large usenet file lists.
14 - use getc instead of fgetc, which makes no difference on gnu/linux.
15 - clean up _FP symbol names toi not start with an underscore.
16 - use feof_unlocked and ferror_unlocked.
17 - implement a faster ascii-only strnicmp.
18 - misc very minor code improvements.
19 - remove quite a bit of pre-posix/dos/etc. cruft.
20 - use flockfile, if available, for a potential but small
21 speed gain.
22 - speed up inner yenc decoder loop.
23 - kentnl said that this module should no longer claim to be a simple
24 interface to uulib, as the bunndled copy is now better maintained
25 than the original upstream library.
26
27 1.71 Tue Mar 17 00:54:06 CET 2020
28 - backport to c89 (patch by Paul Howarth).
29
30 1.7 Sat Feb 29 22:07:54 CET 2020
31 - new function: GetFileList.
32 - experimental perlmulticore support (see manpage).
33 - Initialize is now a NOP and CleanUp automatically initializes again.
34 - updated example decoder and documentation a bit.
35 - include ecb.h to deal with compiler builtins and endianness.
36 - some further µ-optimisations in hot code, especially for yEnc.
37 - replace crc32 function by slice-by-16 version by Stephan Brumme,
38 which should speed up yEnc en-/decoding.
39 - yEnc: do not calculate two crcs per part, instead, combine
40 the part crcs together to form the file crc.
41 - yEnc: allow pcrc= in addition to pcrc32= for yenc trailers, as
42 some draft mentions both and it is actually in active use.
43 - yEnc: ignore crc32= on multiparts, except on the last part,
44 which avoids spurious corruption warnings.
45 - be more precise in documenting code licenses in COPYING.
46 - convert constant creation to the method I normally use.
47 - use common::sense.
48
49 1.62 Mon Feb 17 23:19:42 CET 2020
50 - major performance improvement by simplifying code in _FP_gets
51 to not use fscanf. This might slow things down on platforms
52 with very slow fgetc.
53
54 1.61 Sun Feb 9 18:38:29 CET 2020
55 - lint uulib: fix some format string type mismatches
56 and some other minor issues.
57
58 1.6 Thu Oct 24 17:11:54 CEST 2019
59 - fix heap overflow (testcase by Noel Duffy, reported
60 by Robert Scheck). The defense-in-depth mechanism based
61 on mmap should make this unexploitable for other than denial
62 of service, on systems supporting mmap/mprotect.
63
64 1.5 Sat Jul 11 03:56:06 CEST 2015
65 - fix a heap overflow (testcase by Krzysztof Wojtaś).
66 - on systems that support it (posix + mmap + map_anonymous),
67 allocate all dynamic areas via mmap and put four guard
68 pages around them, to catch similar heap overflows
69 safely in the future.
70 - find a safer way to pass in CC/CFLAGS to uulib.
71 - added stability canary support.
72
73 1.4 Sun May 29 17:17:01 CEST 2011
74 - avoid a classical buffer overflow in case a progress
75 message is too long.
76 - this release adds dependencies for snprintf/vsnprintf.
77 - some uuencode encoders do not generate a final "space" line
78 before the "end" marker, so do not rely on the line to be there.
79
80 1.34 Tue Dec 14 22:20:00 CET 2010
81 - fix a one-byte-past-end-write buffer overflow in UURepairData
82 (reported, analysed and testcase provided by Marco Walther).
83 - quoted-printable decoding was completely broken, try a fix.
84
85 1.33 Wed Oct 28 09:04:38 CET 2009
86 - handle yEnc files with part end=0 and total= more gracefully.
87 I wish yEnc had been created by somebody who knows;
88 what he does;
89 but I doubt he even knows;
90 what he did.
91
92 1.32 Wed Sep 16 20:07:13 CEST 2009
93 - Due to a glitch with CVS, configure lacked executable bits.
94 (Quickly reported by Anton Berezin).
95
96 1.31 Wed Sep 16 09:04:30 CEST 2009
97 - do not use system-replacements for case-insensitive string
98 functions when found, as they are broken on too many systems
99 (mostly bsds, as usual, but at least some versions of GNU/Linux
100 disagree with themselves apparently). Analyzed by Anton Berezin.
101
102 1.3 Sat Aug 29 01:24:35 CEST 2009
103 - major changes, new bugs and changes in decoding behaviour are
104 expected (but not intended).
105 - major scanning and decoding speed-up (by a factor of 4),
106 by replacing ultra-slow _FP_gets and improving IsKnownHeader
107 (but fgets is *still* responsible for >50% if the time).
108 - new option OPT_AUTOCHECK to disable O(n) UUCheckGlobalList
109 call after every loadfile, majorly speeds up large decodes
110 (easily by a factor of 10..100).
111 - allow "Smerge -1" to call UUCheckGlobalList.
112 - majorly speed up part insertion (still O(n), but much faster).
113 - allow for 1023 octet headers instead of the standard
114 255 octet ones.
115 - support strcasestr, strcasecmp, strncasecmp for added speed.
116
117 1.12 Mon Oct 13 14:11:01 CEST 2008
118 - use the yencode filesize as additional matching criterium
119 to avoid false matches.
120 - made the example decoder more verbose w.r.t. error handling.
121 - removed potentially confusing decode_temp calls from
122 example decoder.
123
124 1.11 Fri Jun 13 15:32:30 CEST 2008
125 - don't ask.
126
127 1.10 Fri Jun 13 14:22:42 CEST 2008
128 - fix an infinite-looping problem when scanning in freestyle
129 mode (testcase provided by Pieter Geens and Reinhard Pfau).
130
131 1.09 Fri May 25 19:38:11 CEST 2007
132 - create something sensible, trust a windows program to fuck
133 it up: work around literal "(null)" filenames in yenc-encoded
134 files.
135 - some minor cleanups.
136
137 1.08 Sat Dec 16 23:27:13 CET 2006
138 - URGENT update, the last release did not
139 decode files correctly, usually not at all.
140 - my last patch was, of course, completely bogus.
141 (sorry. looked simple...).
142
143 1.07 Sun Dec 10 17:41:46 CET 2006
144 - fixed an uninitialised variable based on analysis
145 and patch by Mark Martinec.
146
147 1.06 Tue Dec 6 00:56:05 CET 2005
148 - fix a number of int/long format errors in the encoding part and
149 fix some signed/unsigned char problems of unknown relevance,
150 reported by Jonas Smedegaard.
151 - new EXPERIMENTAL options OPT_RBUF and OPT_WBUF to set default
152 stdio buffer size for reading and writing files.
153
154 1.051 Thu Mar 3 18:00:52 CET 2005
155 - change of contact address.
156 - updated perl parts to GPLv2.
157
158 1.05 Fri Feb 25 22:50:27 CET 2005
159 - fix a (likely exploitable) segfault problem, (tracked down
160 and/or reported by Mark Martinec and Robert Lewis).
161
162 1.04 Tue Dec 28 15:08:44 CET 2004
163 - slightly improved subject filename extraction.
164 Also see the filename callback in the example-decoder.
165
166 1.03 Sun Apr 18 22:05:43 CEST 2004
167 - upgrade to uudeview-0.5.20, which supposedly fixes a few buffer
168 overflows. However, judging from the patch these vulnerabilities
169 were not present in the Convert-UUlib version (I might err, though,
170 documentation on the actual exploits is scarce).
171 As every uudeview update usually brings more instability than stability
172 I advise against using this version until it has proven itself
173 to be stable, or 1.02 is proven to contain the same buffer overflows.
174
175 1.02 Sun Apr 18 16:47:26 CEST 2004
176 - renamed crc32 to uulib_crc32, to work around yet another
177 shortcoming in this oh-so-outdated macosx.
178
179 1.01 Sun Feb 1 19:49:51 CET 2004
180 - make it compile with 5.005_03 (reported by Anton Berezin).
181 - very short files might not be detected because the header
182 parsing code might skip them.
183
184 1.0 Thu Nov 6 14:32:08 CET 2003
185 - change bracket policy to give priority to (x/y) over (x),
186 and use the last bracket found otherwise.
187 - part numbers at the end of the subject are now recognized.
188 - updated to uulib-0.5.19. Differences and bugfixes kept.
189
190 0.31 Wed Oct 16 01:22:34 CEST 2002
191 - no internal code changes.
192 - much better documentation, now considered "useful".
193 - removed the procedural interface.
194 - fought the wish to perl-5.8'ify and thus simplify the code :().
195 - stress-tested version 0.3 against 70000 data postings since sunday.
196
197 0.3 Sun Oct 13 15:12:11 CEST 2002
198 - updated to uulib 0.5.18. As expected, some but not all of my bugfixes
199 have went into uulib, so the number of differences decreased a bit
200 again.
201 - I found out that the library is being sold commercially by Frank
202 Pilhofer, disregarding the GPL and ignoring the rights of the people
203 who sent in patches :(
204 - vastly more useful documentation in the .pm file.
205 - much smaller distribution filesize ;)
206
207 0.213 Sat Jul 27 21:16:30 CEST 2002
208 - fixed another buffer overflow, also added a santity check to fgets.
209
210 0.212 Sat Apr 6 03:52:13 CEST 2002
211 - fix yEnc decoding support.
212 - new option OPT_DOTDOT, that makes uulib unescape dot-escaping.
213 - increased linelength to 1195.
214
215 0.211 Fri Apr 5 23:56:46 CEST 2002
216 - *sigh*. new version of uulib, new braindamaged buffer overflows
217 fixed. Diffs like "line length 256 => 300" should have
218 alerted me...
219
220 0.21 Sun Mar 31 22:06:05 CEST 2002
221 - bumped uulib from 0.5.15 to 0.5.17 (adds some yEnc support, YENC_ENCODED).
222 - source-renamed FP_*-symbols to _FP_* again, but still define them
223 to be FP_* in the object file.
224 - new callback: SetFileNameCallback (actually documented ;)
225
226 0.201 Sun Sep 16 03:43:38 CEST 2001
227 - fixed another segfault-bug in uulib, thanks to Lars Hecking who
228 provides all the test files ;)
229
230 0.2 Thu Jun 14 18:42:49 CEST 2001
231 - Frank Pilhofer is NOT dead! He is alive, kicking, and fixing
232 bugs in uulib now! Since his uulib and mine diverged quite
233 a bit I am still in the process of merging his bugfixes
234 into my version. So be aware that this might introduce new
235 instabilities...
236 - merged uulib-0.5.15
237 - optimize decode_file to not copy the file contents when a rename
238 succeeds (TMPDIR same disk as destination).
239 - updated documentation.
240
241 0.111 Fri May 4 22:29:09 CEST 2001
242 - heuristic to decode microsoft-rfc822-headers (microsoft uses
243 '\' as path seperator which is also the rfc822 quote character.
244 of course they could have quoted it, but it's microsoft, so
245 only the devil knows how they try to parse mime (they obviously
246 haven't read the standard AGAIN). in case you wonder, this fixes
247 the "c:my_documentssend.doc" "filename" problem.
248
249 0.11 Sun Jul 16 22:42:57 CEST 2000
250 - fixed a bug in the file callback.
251
252 0.10 Tue May 2 03:31:09 CEST 2000
253 - fixed one very longstanding bug that might have been the cause
254 for the many mysterious segmentation faults. Hopefully.
255 - improved documentation to the point that it slowly becomes useful
256 as a (very quick) reference.
257
258 0.07 Wed Nov 24 18:45:23 CET 1999
259 - removed END { CleanUp } from UUlib.pm, perl is too
260 buggy to rely on this in the face of popen etc..
261
262 0.06 Thu Jul 29 22:48:18 CEST 1999
263 - Thierry Bezecourt had the very reasonable idea to include
264 the example source in the manpage.
265
266 0.05 Mon May 24 11:37:25 CEST 1999
267 - LoadFile returns number of parts loaded.
268
269 0.04 Mon May 10 22:02:31 CEST 1999
270 - fixed a couple of portability problems.
271 - UUEncodeToStream had a wrong definition.
272 - added primitive testsuite.
273 - added README.
274
275 0.03 Sat May 8 22:40:01 CEST 1999
276 - renamed it to Convert::UUlib.
277
278 0.02 Fri May 7 01:26:19 CEST 1999
279 - function names exportable (use :all-tag).
280 - made uulist-related functions methods.
281 - the first fix from cpan-tester. *sigh* you people save the
282 world, continuously.
283
284 0.01 Thu May 6 14:30:44 1999
285 - original version; created by h2xs 1.19
286