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