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