forked from inflex/ripMIME
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
1762 lines (1361 loc) · 62.9 KB
/
CHANGELOG
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
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
ripMIME CHANGELOG
Format of entry line:
- <Developer initials>:<Change made for REL[ease] or DEV[elopment] versions>
CHANGES---------------------------------------------------------------
Sat Dec 13 2008
-PLD:DEV:
Fixed up segfault during debug run from missing parameter in LOGGER
debug line
Fri Nov 08 2008
-PLD:REL:1.4.0.9
Fixed up the BASE64 decoding detection of boundaries which are
sometimes missed because of the FFGET buffer limits are reached
part way through the boundary line. This is now solved by
calling a FFGET_fgets() on the lines which are presumed to
include a boundary specifier (eg, line starts with a leading
hyphen ).
This situation was primarily due to the use of the FFGET_fgetc()
call which only looks ahead 1 char, before calling the BS_cmp().
Mon Nov 03 2008
-PLD:REL:1.4.0.8
Cleaned up ripOLE, OpenTNEF and ripMIME compile warnings based on
the new more pedantic default settings as with Ubuntu 8.10.
Updated ripOLE to handle nameless / unknown stream blobs, now
produces OLE_data.xxx files in place of the random names being
generated previously.
Sun Sep 21 2008
-PLD:DEV
Adjusted tnef/tnef.c to ensure consistent filename generation
between multiple passes of a decode within the same process
(see TNEF changelog)
Fri Feb 08 2008
-PLD:DEV
Added QP decoding patch from jjohnston
Added invalid char detection
Tue Oct 30 2007
- PLD:DEV
Added small patch from Claudio Jeker to fix a potential overflow
in MIME_headers.c
Wed Oct 24 2007
- PLD:DEV
Added MIME_read_raw which uses open/read/write calls rather
than fopen/fread/fwrite. This isn't yet used directly by
ripMIME but rather is needed for its parent development
tree for Xamime.
Sun Jul 08 2007
- PLD:DEV
Fixed FFGET_fgets call boundary condition fault that can cause
excess bytes to be consumed resulting in either smaller output
files or potential segfaults.
This was an incredibly difficult bug to track down as it simply
refused to show up in regular testing and when it did finally
show up it was still very confusing in its behavior due to it
being a combination of two bugs in the same function.
Fri Mar 03 2006
- PLD:DEV:2211
Added a header fixing routine in MIME_headers, this fix attempts
to unwrap headers which are missing a leading space on the next
line (original mailpack provided by Ruust - thanks)
This feature can be disabled using --disable-headerfix
Fri Feb 24 2006
- PLD:DEV:1748
Fixed situation where a null-body email would result in the _header_
file not being produced even when explicitly asked to via the '-e'
option
Mon Dec 12 2005
- PLD:REL:1235
RELEASE 1.4.0.6
Updated ripOLE to version 0.2.0
Wed Mar 30 2005
- PLD:REL:0644
RELEASE 1.4.0.5
Fixed -d -i - combination error causing ripMIME to fail to decode
Thanks to Daniel Fraga for noticing this.
Tue Mar 29 2005
- PLD:REL:1703
RELEASE 1.4.0.4
Tue Mar 15 2005
- PLD:DEV:1545
OLE2 decoding fix (see ripOLE)
Thu Feb 03 2005
- PLD:DEV:1950
Added recursion facility if the input mailpack/MIME file is
a directory.
Fri Dec 17 2004
- Release 1.4.0.3
- Improved attachment search abilities due to previous cleanups
- Cleaned up excessively long header-search times
- Cleaned up excess unwanted textfile outputs generated from
the qmail-bounce searching. A reduction of ~25% has been
attained.
- Handled Exim bounced email attachments
- TNEF segfault issues cleaned up (see TNEF's CHANGELOG)
Tue Dec 07 2004
- PLD:DEV:0102
Fixed up Apple double content disposition INLINE issue which
could cause ripMIME to try decoding a mailpack for a VERY long
time. Thanks to Nicolas MacPherson for the offending mailpack.
Wed Dec 01 2004
- PLD:DEV:2330
Fixed QP decoding error where trailing TABs and spaces were not
culled.
Mon Nov 29 2004
- PLD:DEV:1106
Fixed possible filename buffer overrun in MIME_decode_encoding()
function where sprintf() was being used to generate the filenames
rather than the correct snprintf() call.
Sat Nov 27 2004
- PLD:DEV:2049
Added OLE2 decoding sanity fix (see ripOLE CHANGELOG)
Fri Nov 26 2004
- PLD:REL:2238
Release as 1.4.0.2
- PLD:DEV:2028
Fixed up ISO decode issues in the headers causing premature
truncation.
Sat Nov 06 2004
- PLD:DEV:10H27
Fixed up numerous unsigned/signed comparison warnings.
Fixed up TNEF read_32/_16 functions to allow for error
condition returns.
Fri Nov 05 2004
- PLD:DEV:22H57
Applied Stepan Kasal patches for MIME_decode_b64() 4-char
array initization and for the boundary_crash test continue
if statement.
Wed Nov 03 2004
- PLD:DEV:09H48
Fixed compiler warning about MIMEH_save_doubleCR "comparison
is always false".
Tue Nov 02 2004
- PLD:DEV:10H41
Added handling for x-mac filename forward-slash separators.
Sat Oct 23 2004
- PLD:REL:17H14
Release as 1.4.0.1
- PLD:DEV:16H52
Applied patch from Andreas Jobs to fix up situations where the
multiple-filenames may not all be correctly hardlinked due to
modifications being made via the FNFILTER_filter() calls.
Many thanks to Andreas for picking up on this.
Mon Oct 18 2004
- PLD:DEV:23H08
Updated ripOLE code to prevent segfault caused by negative
sector values in OLE_follow_minichain()
Sun Sep 26 2004
- PLD:DEV:17H27
Fixed UUENCODING detection in MIME_headers which would sometimes
incorrectly choose UU rather than Quoted Printable. Thanks to
Stepan Kasal for pointing this out.
Sat Sep 25 2004
- PLD:DEV:21H24
Fixed memory leak where the header-info structure's
string-stacks file filenames and names were not being
flushed after use.
Fixed accidental flagging of bad headers when a header set
contained the same filename in both the content-type and
content-disposition headers.
Sat Sep 11 2004
- PLD:DEV:23H22
Fixed an endless loop in ole.c when dealing with zero length
MINIfat reads.
Tue Sep 07 2004
- PLD:DEV:21H10
Fixed UUENCODED decoding when the UUE filename is specified
in the headers (see uuencode.c)
Sun Sep 05 2004
- PLD:DEV:09H30
Fixed OLE_version() inclusion in MIME_version() when RIPOLE
wasn't defined. Thanks to Tomasz Klim for noting this.
Sat Sep 04 2004
- PLD:DEV:10H47
Fixed incorrect return-code propagation from lower recursion
levels, causing ripMIME to prematurely terminate some
decoding, thus not seeing some attachments.
Thanks to Fred Van Andel for supplying the offending
mailpack.
Fri Sep 03 2004
- PLD:DEV:09H57
Fixed empty-boundary handling (Mailpack sent by Ian Samuel)
Tue Aug 31 2004
- PLD:DEV:22H18
Fixed up a segfault which could occur while running with
--debug on some emails (See bug #32)
Mon Aug 30 2004
- PLD:DEV:20H21
Fixed up 'make solib' option (Thanks to Oden Eriksson for
pointing out that it was broken)
Tue Aug 17 2004
- PLD:REL:16H36
Released as 1.4.0.0
Mon Aug 16 2004
- PLD:DEV:13H43
Added strstack objects into the MIME headers struct (hinfo)
to track multiple filenames exploits. When the filename
has been saved to the disk, the additional filenames are
then hardlinked (this prevents excessive disk consumption
as hardlinks don't really take up space).
Sun Aug 15 2004
- PLD:DEV:22H21
Added '--verbose-defects' which will dump all the header
defects detected during the scanning of the MIME segment
Decoding filename=attachment.exe
Header Defect: Missing separators: 1
The number trailing the defect description is the number
of occurances within the headers that the defect occurred.
Detected defects won't stop the ripMIME decoding by default,
instead ripMIME will step around the defects to the best of
its abilities and flag the defect register in the hinfo
defects[] array.
Wed Aug 11 2004
- PLD:DEV:23H42
Added a new array 'defects' into the hinfo structure in
MIME_headers.h. The purpose of this array is to track all the
defects/mistakes in the MIME headers, allowing the calling
program (of the MIME lib) to make a decision on the mailpack
(ie, should defective mailpacks be allowed to pass through).
More details will be added over the next few days. This new
feature isn't quite ready yet.
- PLD:DEV:23H22
Fixed handling of multiple sequential quotes on filenames and
other parameters, ie;
name=""attachment.exe""
- PLD:DEV:23H10
Added boundary pushing to the stack within MIME_headers in order
to catch out situations where multiple boundaries are defined
in the headers.
- PLD:DEV:22H21
Changed ISO decoding routine to _not_ convert underscores to
spaces. This is so that ISO encoded items such as boundary
definitions aren't turned into non-valid items, ie
__BOUNDARY__ becomes ' BOUNDARY '.
Wed Aug 11 2004
- PLD:DEV:18H33
Added correct handling of RFC2231 encoded strings;
such as:
title*0*=us-ascii'en'This%20is%20even%20more%20
title*1*=%2A%2A%2Afun%2A%2A%2A%20
title*2="isn't it!"
- PLD:DEV:17H10
Fixed up handling of multiple atom separators (=,: and ;)
- PLD:DEV:12H57
Added RFC822 comment stripping from headers (while being
processed in the MIME_headers module). The original
headers will be preserved verbatim in _headers_ file.
Mon Aug 09 2004
- PLD:DEV:14H48
Added --timeout <seconds> feature which allows you to set a CPU
seconds timeout. If the alarm goes off, ripMIME will terminate
with an error code of RIPMIME_ERROR_TIMEOUT (5) and leave a log
entry (if required).
This feature is useful to prevent server-load runaway if ripMIME
has a problem decoding a particular email
- PLD:DEV:14H11
Added --formdata option to allow the decoding of HTML form
data which often contains embedded \0 sequences which cannot
be accurately handled by normal email-MIME decoding routines
(yet)
Fri Jul 30 2004
- PLD:REL:21H06
!!!!URGENT RELEASE!!!!
Released 1.3.2.3
There's viruses going around exploiting the ability to hide the
majority of their data in an attachment by using blank lines and
other tricks to make scanning systems prematurely terminate their
base64 decoding.
This release fixes that by ignoring consecutive CR checks in the
BASE64 data and rather attempting to treat it as a stream of data
with arbitary invalid bytes in it.
Thu Jul 29 2004
- PLD:DEV:23H11
Fixed infinite loop with OLE decoding in ripOLE, mailpack supplied
by Dallas L. Engelken. The decoding is not correctly handled
at this point (no sensible data can be extracted from the .doc
file) but at least ripMIME/ripOLE will not infinately loop.
Tue Jul 27 2004
- PLD:DEV:12H55
Applied filename paranoia patch provided by Marco Ariano
Mon Jul 19 2004
- PLD:REL:12H04
Released 1.3.2.2
Sat Jul 17 2004
- PLD:DEV:14H22
Silenced unwanted verbosity from recursion bounds breach report
in mime.c:2674
Silenced unwanted verbosity from tnef decoder about invalid
signature when in non-verbose mode.
Silenced unwanted verbosity from ripOLE (see ripOLE CHANGELOG)
Sat Jul 03 2004
- PLD:DEV:14H18
libmime-decoders.c:MDECODE_decode_ISO()
Fixed situation where ISO encoded string without a
language page specification would cause the rest of the
headers to be truncated from that point; typical example
is:
Subject: =??Q?Radiant=20Rubies=20Just=20for=20You.=20SAVE=20$$$'S.?=
note the =?? rather than say =?iso-9352 etc
Made the ISO decoder complain about a dud encoding type
character if 'verbosity' is on, else, it doesn't report
the error (this ensures that things like qmail etc don't
get upset)
Mon Jun 28 2004
- Release as 1.3.2.0
Sun Jun 27 2004
- PLD:DEV:15H31
Fixed duplication of 'Decoding Filename=' reporting when
decoding a uuencoded MIME segment with the filename
defined in the headers.
- PLD:DEV:14H09
Added '--extended-errors' option to allow the turning on of
non-fatal errors.
Corrected various return-code issues
#define RIPMIME_ERROR_CANT_CREATE_OUTPUT_DIR 1
#define RIPMIME_ERROR_CANT_OPEN_INPUT_FILE 2
#define RIPMIME_ERROR_NO_INPUT_FILE 3
#define RIPMIME_ERROR_INSUFFICIENT_PARAMETERS 4
- PLD:DEV:12H15
Fixed UUdecode situation where the MIME segment defines the
filename in the headers, rather than the more common case of
having a "BEGIN 666 filename" content.
Thanks to Dallas L. Engelken for detecting this and supplying
a suitable mailpack.
Fri May 21 2004
- PLD:DEV:13H19
Fixed up boundary stack BS_cmp() size compairson check by
creating a new function BS_is_long_enough() which takes
the length of the line being tested and compares it to
the current 'smallest permissable' boundary.
Fixed special case boundary situation where the boundary
is defined only as '-'.
Thu May 13 2004
- PLD:REL:14H07
Release 1.3.1.2
- PLD:DEV:00H15
Due to the MIME headers alteration, the ISO decoding for filenames
started having issues because of gaps in the decoded ISO string.
This has now been fixed.
Wed May 12 2004
- PLD:DEV:21H57
MIME_headers.c:1295; added \t as another possible header line delimiter
(along with \n \r and ;)
- PLD:DEV:21H55
Corrected the header unwrapping according to RFC2822 specifications.
See comments in MIME_headers.c ~ line 886
Mon Apr 12 2004
- PLD:DEV:21H12
Fixed up some compile errors on Solaris 9 (char indexes)
Mon Apr 5 2004
- PLD:REL:19H38
Released as 1.3.1.1
- PLD:DEV:11H28
Fixed TNEF LOGGER call with missing paramter
Fixed possible underrun in the MIMEH_read_headers() call when trimming
off trailing \r and \n chars from the read header line.
Fixed some LOGGING lines which were not correctly setup with the MIMEH_DEBUG
test (resulting in spurilous debugging info when it wasn't desired)
Added 'smallest stored boundary' (glb.smallest_length) to the boundary-stack
module so that it could quickly eliminate a lot of boundary tests based
purely on the size of the input test line. This also eliminated the problem
that would sometimes appear in valgrind where an error in BS_cmp() with the
strcmp() call would arise.
The smallest_length variable can only decriment. Theoretically it could
be reduced to a point where it's value is '1' but it won't affect the
selectivity of the algorithm. The worst case scenario is that smallest_length
is set to 1 in which case the algorithm will behave as before the change
in the code was made.
- PLD:DEV:01H59
Added header subject initializer into MIME_headers_get() to stop valgrind
complaning on certain emails where the subject would not be located in the
headers.
Added more stringent testing of the subject copy-over process in MIME_unpack_stage2
after the headers get call.
Sat Apr 4 2004
- PLD:DEV:23H54
Corrected a segfault when running debug mode and mime.c:2623 logger line
was called (didn't have a ,FL at the end)
if (MIME_DNORMAL) LOGGER_log("%s:%d:MIME_handle_plain:DEBUG: Handling plain email",FL);
Explicitly called OLE_decode_file_done() after the OLE decode process because
sometimes files weren't being closed due to a non-OLE file being opened
(hence closing premature of the internal call of _file_done(). It's okay
to call this function multiple times as it checks all the variables to
ensure that they're not NULL before trying to clean them up.
Thu Mar 11 2004
- PLD:DEV:12H44
Updated man page for 1.3.1.x
Wed Mar 10 2004
- PLD:REL:23H59
Re-released 1.3.1.0
- PLD:DEV:23H59
Switched all calls (interal) to MIME_unpack() to MIME_unpack_single(),
especially for the mailbox handling routine - which would cause the
whole system to loop and fail.
- PLD:REL:08H31
Corrected generate-buildcodes.sh where the date stamp might not return
a valid integer.
Tue Mar 9 2004
- PLD:REL:01H15
Release 1.3.1.0
Set --qmail-bounce option to be on by default (appears to be quite stable)
and added --disable-qmail-bounce to turn it off instead.
Sun Mar 07 2004
- PLD:DEV:15H30
Dev release.
- PLD:DEV:13H20
Altered UUEncode's error reporting system. Now when a function returns
-1, the calling program should check the global uuencode_error to see
what the error is. This system is similar to those used with a lot of
standard functions like fopen(). The error codes are listed in
uuencode.h
We needed to do this so that we could return positive-integer error
codes from UUENCODE_decode_uu(), because normally this function will
return a positive integer representing the number of files it decoded
from the supplied file.
- PLD:DEV:12H50
Corrected mistake with the recursion level passing in MIME_unpack_single_fp()
which was passing '0' value to MIME_unpack_stage2(), causing ripMIME to
fail with a segfault when very deeply recursed emails were encountered. NOTE
this segfault occurs because of running out of stackspace, not because ripMIME
specifically is broken. ripMIME seems to be able to recurse to about 160
levels deep on the test machine before stack failure.
- PLD:DEV:
Set MIME_set_header_longsearch() to only take effect if we're calling
a plain-text file, ie, being handled by MIME_handle_plain()
Sat Mar 06 2004
- PLD:DEV:
Unbelievable amount of restructuring required so I could get 2
mailpacks with seperate problems to work.
Improved the discrimination and speed of the BS_cmp() operation
by first taking a count of all the numeric+alpha chars in the
boundary and then comparing against the existing boundaries. This
helps speed things up because there's no longer a string
comparison per test if there's not even going to be a chance
of a match. Also, the discrimination is improved because I had an incident where
two boundaries existed, with one being a substring of the other,
this was passing through ripMIME with the previous 1.3-dev release
for some reason.
A lot of code was removed from the MIME_unpack_stage2() call and placed
rather into seperate function calls. The new function calls are;
MIME_handle_multipart()
MIME_handle_rfc822()
MIME_handle_plain()
No doubt more of these will be added over time as I work my way through
the old code.
Fri Mar 05 2004
- PLD:DEV:
Added a stack system for storing the filenames used during any
given MIME_unpack() call, this means that when the MIME_unpack()
call finishes, it doesn't clobber the textfile* files which might
have actually been owned by a parent process (as MIME_unpack() is
recursive in some situations).
This addition once more beefs up the size of ripMIME, but is required
in order to deal with the ever increasing complexity of emails
which are passing through our systems. The new files are
strstack.c
strstack.h
These two new files are actually adapted/stripped-down versions of
the boundarystack files.
- PLD:DEV:
Added a new script to the build process to generate a file called
'buildcodes.h'; this file contains the date in UNIX timestamp
and human-readable date, along with the output from 'uname -a'
This has been added to assist mostly in local build checking, but
also may serve as a good indicator on other machines to see if
a ripMIME version is absolutely current.
Mon Mar 01 2004
- PLD:DEV:
Corrected misspelling of 'QuotePrintable' to 'Quoted-Printable'
- PLD:DEV:
Updated ripOLE licence to match the ripMIME licence.
- PLD:DEV:
Altered the UUDECODING routine to not complain about lack of
permissions on a line which starts with begin but is perhaps
from a plain-text file (ie, not UUENCODED).
Suggestion given by Daniel Fraga.
- PLD:DEV:
Removed --syslog_on and --stderr_off paramters from the help dump
(thanks to Mat Williams for noticing this). These paramters have
been deprecated for quite a long time.
Mon Feb 16 2004
- PLD:DEV:
Added ripmime.1 man file
Sun Feb 08 2004
- PLD:DEV:
Adding facility to pull out/decode qmail bounced emails - this is
against RFC compliance, but people are wanting this badly so I
suppose, once again, Microsoft wins (because Outlook seems to
gleefully find the attachments when they should in fact
be displayed as verbatim - not decoded).
use the --qmail-bounce parameter to activate this 'feature'.
- PLD:DEV:
Rolled in a patch by James Stevens to make ripMIME usable for his
AV milter tool. Also included a patch to (for now) split the
MIME_unpack_single() into _single_fp() and _single(), paving the
way for future file-handle based processing rather than FILE *
- PLD:DEV:
Added recursion-maximum level paramter (--recursion-max) as
suggested and patch-supplied by James Stevens (some alterations
made to the patch)
Wed Jan 14 2004
- PLD:DEV:
Added RCF822 content checking for files generated by the text dump
from an UNSPECIFIED encoding/type format. This allows us to
pick out mailpack contents even when there's a set of false
headers prior to the real body content (as depicted by the
samples provided by Farit - many thanks ).
Thu Dec 18 2003
- PLD:DEV:
Updated licence file to correctly indicate the true nature of this
project
Sun Dec 07 2003
- PLD:DEV:
Completed the 'quiet' functionality
- PLD:DEV:
Fixed up decoding of multiple segment filenames in headers, ie;
filename*1="foo";
filename*2="bar.";
filename*3="exe"
- PLD:DEV:
Corrected handling of */octet content type storage, opting to use
RAW decoding rather than plain text.
Sat Nov 14 2003
- PLD:REL:
Released ripMIME v1.3.0.5
Fri Oct 30 2003
- PLD:DEV:
Fixed up decoding issue in stage2 where ripMIME would try to decode
a zero-byte file produced from the BASE64 decoder routine.
Fri Oct 23 2003
- PLD:DEV:
Added integration of the -p <prefix> flag with the --name-by-type
flag. The prefix will only appear on the type-based named attachments
if it's explicitly requested (ie, it will not appear if you don't
use the -p flag, even though there is a default prefix ).
Thu Oct 23 2003
- PLD:DEV:
Added --name-by-type feature (as requested by Marcel Manz) to create
the filename of an attachment if it has no filename= or name= header
based on its content-type
Fri Oct 10 2003
- PLD:DEV:
Moved house - completely changed everything in my life.
Haven't changed much in ripMIME.
Fixed some Makefile issues and incorrectly included .o
files, as reported by Paul Theodoropoulos (thanks!)
Wed Sep 10 2003
- PLD:DEV:
Rolled in changes from valgrind process.
Fixes several potenial segfault situations, especially with ripOLE.
Fri Aug 29 2003
- PLD:DEV:
Fixed mailbox decoding from STDIN
Thu Aug 28 2003
- PLD:DEV:
Changed the mime-headers output path setting to be set from within
the MIME_unpack() call, rather than allowing it to be set externally
Prior to this change, doubleCR files were being saved in places like
the root directory and other unsavory locations.
ripOLE library updated - segfault fixed when reading miniFAT with a
negative start sector value
Sun Aug 24 2003
- PLD:DEV:
Fixed up situations where an embedded email with an attachment
filename (As apposed to just raw embedded with RFC822 content-type)
could not be decoded (would be passed over and ignored).
Thanks to Ricardo Kleemann for supplying a sample mailpack. On
fixing up for this one mailpack, my test suite jumped from decoding
1092 attachments to 1193 attachments.
Wed Jul 16 2003
- PLD:DEV:
LOGGER % filtering solution fixed
- PLD:DEV:
Bundled in the ripOLE engine into ripMIME, this means that
ripMIME can now extract files which have been included in an
MS Office file. Currently ripOLE cannot extract attachments
which have been embedded directly into the WordDocument stream
data however (this is usually Images and some sound files).
However it does successfully get most/any files which were
included using Insert->File
Added --no-ole option to make ripMIME not decode OLE files.
Mon Jun 30 2003
- PLD:DEV:
Added libripmime build ability, allowing developers to use
#include "ripmime-api.h" and then link with libripmime.
Sun Jun 22 2003
- PLD:DEV:
Fixed QuotedPrintable end-of-string decoding 1-off char error
which would cause ripMIME to complain that it ran out of data
because it was comparing "if (ip < slen -2)" when it should have
been comparing to slen -1 (because the '<' implies a -1 by
default )
Thanks to Paul Theodoropoulos for his submissions of mailpacks
which have greatly assisted in locating these obscure errors.
Sat Jun 21 2003
- PLD:DEV:
Fixed UUdecode false-positive hit in UUDECODE_is_uuencode_header()
(thanks to Bernard Fischer once more for supplying a mailpack
which demonstrated the fault and for providing a patch )
- PLD:DEV:
Added an explicit RFC822 decoding routine into MIME_unpack_stage2()
because a supplied mailpack which had multiple documents, all in
individually wrapped RFC822 attachments caused ripMIME to incorrectly
interpret the segment, till the end of the mailpack as the entire
RFC822 message ( consequently, the recusion limit would eventually
kick in and exit ripMIME ).
By placing an explicit detection into _unpack_stage2(), the problem
has been eliminated without affecting the decoding accuracy of other
mailpacks.
Wed Jun 18 2003
- PLD:DEV:
Relaxed the base64 decoding standard to allow for a possible single
blank line within the B64 stream. This has been needed because there
are some rare mailpacks produced by [obviously] broken agents which
have spurilous blank lines amongs the data-stream ( but are terminated
by boundaries )
I feel this is a really ugly way to deal with this problem - people
should really make their B64 encoders conform to realistic standards
rather than hoping that all the decoders will pick this up accurately
I would have left out the CR sensitivity entirely - except that there
is another example mailpack I have where [incorrectly] there is plain
text after the B64 stream has ended ( incorrectly inserted disclaimer
no doubt ).
I may revoke this relaxation if it can be found that the 'other' example
mailpack is in fact interpreted [wrongly] by all other MUA's.
Update - both mailpacks are correctly decoded by Sylpheed :-\
Sun Jun 15 2003
- PLD:REL: Released 1.3.0.4
- PLD:DEV: Corrected UUdecoder path issues, causing UUencoded attachments
to sometimes be missed from decoding
Sat Jun 07 2003
- PLD: Corrected misinterpretation of the return result from uuencoded_decode
where mime.c was propergating the return result into the _decode_stage2()
calls, causing processing of the mailpack to prematurely halt.
Thanks to Jiri Kucik for submitting the offending mailpack.
Fri May 09 2003
- PLD: Attempting to clean up the handling of % symbols in filenames
and their output via the LOGGER_log() call. Normally they used
to be converted into %% pairs so that the final printf type call
would not try and interpret the % as a positional identifier.
---still in work.
Tue May 05 2003
- PLD: Added NULL test for filename reporting callback in mime.c
Without this NULL test, other applications using the mime module
could fail if they did not have the callback function set to
their own.
Sat May 03 2003
- PLD: Added Content-Transfer-Encoding 'binary' to ripMIME, which
causes ripMIME to interpret the data the same as 'raw'.
Fri May 02 2003
- PLD: Added --no-mht switch, disables the decoding of MHT files
(A microsoft 'combined' WWW-page-in-email sort of format)
Wed Apr 30 2003
- PLD: X-men 2 at theaters
- PLD: Added option-usage for --no-tnef
- PLD: Enhanced pldstr module to provide string search/replace
functionality and case-insensitive strstr
Sun Apr 27 2003
- PLD: Pushed global variables into singular global struct for
boundary-stack module
- PLD: Optimised the boundary-stack BS_cmp() call so that it will
only do strcmp calls (rather than strstr()) for the first N
characters, where N is defined by BS_BOUNDARY_DETECT_LIMIT_DEFAULT
and consequently, BS_set_boundary_detect_limit().
Currently the default is set to 4 characters, I do not know of
any mailpacks out there which are using more than the 'defacto'
'--' prefix to the boundary to seperate MIME sections
- PLD: Added extra parameter to the BS node, to store the length
of the boundary, saves processing time later when comparing
boundaries in BS_cmp()
- PLD: Corrected DoubleCR decoding issue in UUENCODE_decode_uu()
- PLD: Fixed ranging error in filename renaming method selector
(MIME_set_renamemethod)
- PLD: Activated the --no-quotedprintable option. This will stop
ripMIME from attempting to decode/decypher attachments which have
been QuotedPrintable encoded (some forwarded emails are encoded
like this )
- PLD: Added a small cleanup function for after BASE64 decoding.
Normally when BASE64 decoding finishes there's often a single
line left before the next boundary, this typically has been
written out as a textfileXX file.
The additional function absorbs this data [and discards].
This also should improve [ a little ] the performance as ripMIME
will not have to go through the entire header-reading/parsing/
decoding process each time.
Sat Apr 26 2003
- PLD: Dropped a lot of old code which was residing in MIME_headers
for the sake of 'rollback' in the event that the new header
parsing code didn't work.
Sat Apr 19 2002
- PLD: Added fixes for VCARD/UUENCODE detections thanks to Bernard
Fischer.
Sat Mar 29 2003
- PLD: Added better handling of the apple-double encoding, now when
and attachment is decoded, it'll be decoded into 3 parts (overall)
1. mac-FILENAME : This usually contains nothing and can be ignored.
The file is saved in the event [for what ever reason] that data
or text was placed at the start of the apple-double attachment
pair [ Similar in a way to the potential presence of data at the
beginning of a MIME encoded email, which usually says "This email
is encoded with MIME".
2. FILENAME.applemeta : This is the metadata associated with the original
attachment
3. FILENAME : This is the actual file/attachment
Fri Mar 28 2003
- PLD: Release
- PLD: Replaced header parsing code with one which follows the
'standards' compliant structures ( while still looking out for
various exploits ). This new parsing code will open the way
for better information passing [back] to programs using the ripMIME
API. Also, the new header code improves the false-positive rate with
filenames.
- PLD: More intelligent support for the Macintosh Applefile format, which
uses a two 'file' approach for sending files ( meta data file and data
file ). Now, any mac files will have their applefile-metadata
stored as 'applefile_*'. Although this is not yet perfect, it at least
ensures that the real data file is correctly saved with the right name.
Thu Mar 20 2003
- PLD: More typos in the LOGGER_log() calls fixed up
- PLD: Removed the functions MIME_set_nouudecode() and UUENCODE_set_nodecode()
because they were 'confusing' due to inverted logic, additionally it brings
the functions inline with all the other modules which use _set_decode()
to [en/dis]able the decoding process.
Wed Mar 19 2003
- PLD: Corrected several search-replace messups from original conversion
to running everything under LOGGER.
- PLD: Added facility to report filename decodings from within the various
decoding modules (TNEF and UUENCODE at this point) so that the reporting
function can be defined from the calling application. If no callback
is provided, the modules will default back to a very basic 1.2.x format.
Mon Mar 17 2003
- PLD: Emergency release of 1.3.0.2
- PLD: Fixed major bug in the MIMEH_headers_read() call which would
cause the first line of the headers to be overwritten by following
lines ( in memory ) - Ultimate effect of this is that several files
would not be decoded because the vital file information would be
lost.
- PLD: Unified logging output across all modules
- PLD: Fixed space retention on header-wrapped filenames ( again
thanks to Kees Damen for providing a suitable mailpack )
Fri Mar 14 2003
- PLD: Fixed linewrap filename issues in headers ( thanks to Kees Damen
for pointing this issue out ).
- PLD: Fixed 0 length string issue with PLD_strncpy and replaced
existing algorithm with a more robust one as provide by 'Defrost'
- PLD: Rolled in unified pldstr module which replaces strlower,
XAM_strtok and zstr.
Sat Mar 01 2003
- PLD: Patched parameter parsing code to allow it to accept non-space
seperated parameters, ie, -d/tmp ( Patch supplied by Bernard Fischer )
Sat Feb 22 2003
- PLD: TNEF: Corrected pointer clobbering on 64-bit systems in TNEF decoding,
and added memory allocation free'ing. Both patches submitted by
Bernard Fischer and adapted by PLD
Thu Feb 19 2003
- PLD: Fixed content-type 'trailing' issue causing ripMIME to report
the previous content-type if the new attachment headers did
not contain a content-type. ( Mailpack contributed by Bernard Fischer )
Wed Feb 19 2003
- PLD: Converted command-line options to use hyphens '-' rather
than underscores '_' for word seperators. NOTE, the old
underscore seperators will still work but they are considered
depricated.
- PLD: Added multiple additional verbosity options:
--verbose-oldstyle : Output information in the format