forked from LibreDWG/libredwg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
31895 lines (21127 loc) · 882 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
Full history from the git log
-----------------------------
2024-02-26 Reini Urban <reini.urban@gmail.com>
Release 0.13.3
dist: check for dwg2ps.1 and dwgadd.1 explicitly
The examples manpages were missing.
See GH #941
2024-02-21 Reini Urban <reini.urban@gmail.com>
in_dxf: comment, can read binary dxf also
2024-02-20 Reini Urban <reini.urban@gmail.com>
indxf: fix HATCH null-deref
Fixes oss-fuzz 66843
indxf: fix UAF
Fixes oss-fuzz 66835
2024-02-16 Reini Urban <reini.urban@gmail.com>
spec: debug uncertainties in BLOCKSTRETCHACTION_handles
unknown: use strEQ macros
unknown: fix pi_fn vbase for libtool'd unknown
in the .build-debug/examples/.libs subdir
spec: add BLOCKSTRETCHACTION subclasses
support dxf_test for array of structs with primitive types
(BLOCKSTRETCHACTION_codes*)
2024-02-15 Reini Urban <reini.urban@gmail.com>
unknown: add 10xx fields,
which are not EED mostly
log_unknown_dxf: more enhanced BLOCK fields
github: bump actions/checkout@v4
"Node.js 16 actions are deprecated. Please update the following actions to
use Node.js 20: actions/checkout@v3"
dxf_test: now we have longer paths
encode: wrong DWG_MAX_OBJSIZE
introduced for fuzzing, but STEERING_from_autocad_r13.dwg has a larger 3DSOLID
spec: promote SUN object to stable
spec: update coverage comments
after running unknown with the new dwg/dxf pairs.
several objects do look very stable though, such as some
AcDbBlock1PtParameter objects: BLOCKBASEPOINTPARAMETER,
BLOCKLOOKUPPARAMETER, BLOCKPOINTPARAMETER.
unknown: fix num_classes calc
we need to compare by value, not pointer, as the unknown_dxf[i].name strings
are distinct
unknown: regen alldxf incs
with test-old dxfs
unknown: regen alldwg.inc with test-old dxfs
unknown: EVALUATION_GRAPH is UNSTABLE
not DEBUG anymore. regen the unknown inc's
via full-regen-unknown.
test-old DWG/DXF pairs not yet included.
2024-02-14 Reini Urban <reini.urban@gmail.com>
spec updates
Note: opensuse seperates it into -tools and 0
make dist: fail releasing on missing libps
Fixes GH #941
add build-aux/install-pslib to --enable-release
Fixes GH #941
indxf: fix OLE2FRAME.data [310] initial case
Also fixes ossfuzz 66639
2024-02-13 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix typo
2024-02-11 Reini Urban <reini.urban@gmail.com>
encode: fix uninit old_data segv
esp. on downconverting.
OUT=0 VER=13 examples/llvmfuzz_standalone ../test/test-data/DS_libereco_R2007.dwg
support beta VERSIONs, no holes
Fixes GH #908
2024-02-10 Reini Urban <reini.urban@gmail.com>
Release 0.13.2
check make dist for missing subdirs
See GH #937
2024-02-10 Reini Urban <reini.urban@gmail.com>
github: fix make release, no extra python
install missing python3-libxml2 and libxslt
See GH #937
add install-libxslt helper, needed for the
python libxml2 package if installed extra.
2024-02-09 Reini Urban <reini.urban@gmail.com>
Release 0.13.1
A bugfix release,
with one minor feature dwgread .min.json added. See NEWS
NEWS: Fixed SummaryInfo.props[].tag and value types to T16
2024-02-09 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix summaryinfo props
2024-02-09 Reini Urban <reini.urban@gmail.com>
decode_r11: update HANDSEED on new handles
Fixes decoding and roundtrips of
e.g. r11/from_autocad_r12/sample/BASEPLAT.DWG
esp. on ctrl entries.
2024-02-09 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix comments of ObjFreeSpace and SecondHeader
2024-02-08 Reini Urban <reini.urban@gmail.com>
bits: write only 4 byte handles on error
bits: sizeof bits union may be 16
detected by cppcheck. not sure which compiler actually does such things,
but keep it the specs
bits: fix leak
detected by cppcheck
decode_r11: accept 1 missing byte
esp. with TEXT entities. eg from_autocad_2.62/MENUTREE.DWG
there might be one more unknown byte
decode: cap handles at 32bit
Fixes GH #935, which has a r2000 example which has an undocumented high bit set
in most handles.
In fact, searching found no examples with more then 4 byte handles.
json-check: use min.json
dwg: support .min.json
json: support -m
json: option DWG_OPTS_MINIMAL for minJSON (minimized)
no whitespace at run-time.
We don't write minimal JSON as with minimal DXFs anymore
($ACADVER, $HANDSEED, and then ENTITIES only).
With ideas from GH #886
2024-02-07 Reini Urban <reini.urban@gmail.com>
injson/dxf: fix LTYPE.numdashes setter
ERROR: Unknown num_dashes field
encode: fix downconvert_DIMSTYLE
when the eed already had one member, AcadAnnotative.
e.g. ../to/2013/from_github_santicastro/Triskele_centered_with_connectors_extract.dwg
2024-02-06 Reini Urban <reini.urban@gmail.com>
Prepare 0.13.1 bugfix release
2024-02-06 Reini Urban <reini.urban@gmail.com>
indxf: add add_sub_ASSOCDEPENDENCY
for the 2 special classes ASSOCGEOMDEPENDENCY or ASSOCVALUEDEPENDENCY.
add SUB_FIELD_* parsers, which need o for the field ptr, and f for its type.
Fixes ASSOCGEOMDEPENDENCY dxf import with example_2000
(which was suppoed to be stable)
2024-02-06 Reini Urban <reini.urban@gmail.com>
dynapi: add dwg_dynapi_subclass_set_value
needed for indxf. can also be used for injson
gen-dynapi: fix ASSOCGEOMDEPENDENCY subclass
and fixup the lines for debugging
dxfb-check: harmonize with dxf-check
encode: fix ERROR: Wrong object size on MS adjust
when the new size doesnt fit the old MS size (overlarge MS size),
we move the stream by 2, but forgot to adjust the end_address calc,
leading to wrong ERROR: Wrong object size and CRC calc
XRECORD.cloning logging: print the DXF code
distcheck: cleanup check_oda files
so far only locally
json.test: print the right ODAFileConverter name
as with json-check
2024-02-05 Reini Urban <reini.urban@gmail.com>
dxf.test: except skipped r13 LIGHT entity
which must be skipped in r13 DXFs
spec: improve PROXY fields and dxf codes
but still cannot roundtrip
indxf: fix xdata_size with BINARY
outdxf: fix BINARY
esp. for 310 xdata fields, with wrong value types.
Ensure correct values and lengths 127
2024-02-05 Reini Urban <reini.urban@gmail.com>
dxf spec: change DIMSTYLE.DIMTXTDIRECTION from 295 to 294
ODA has it documented as 295 B0, netDXF as 294.
Acad has it undocumented. It has a default of 0, so only
present if reversed.
But accept indxf of 295 also (for ODA and backcompat)
See GH #835
2024-02-05 Reini Urban <reini.urban@gmail.com>
debug: enable MTEXTATTRIBUTEOBJECTCONTEXTDATA.context
as embedded SCALE object, if the SCALE is not 1:1.
See GH #851
fix missing bindings/Makefile.in
Fixes GH #934
log timeduration better
Fixes GH #916
2024-02-04 Reini Urban <reini.urban@gmail.com>
up/downgrade MLINESTYLE_line.lt. fields
Add a new dwg_find_tablehandle_index() helper, which is
needed for more upgraders.
Fixes GH #924
2024-02-04 Reini Urban <reini.urban@gmail.com>
spec: fix MLINESTYLE_line.lt_ fields to union
because of the tricky overflow check in REPEAT_CHKCOUNT_LVAL.
Fixes #924
WIP add_test. dxf from/to 2018 needs a converter.
2024-02-04 Reini Urban <reini.urban@gmail.com>
disable broken gcc-14 -Walloc-size
Fixes GH #931
doc: mention ACadSharp
fix -Wcalloc-transposed-args
Fixes GH #931, thanks to @topazus
2024-02-04 Reini Urban <reini.urban@gmail.com>
Release 0.13
See NEWS.
Read and write DWGs from r1.1 to r11 also
2024-02-03 Reini Urban <reini.urban@gmail.com>
encode: extra 2ndheader write
See GH #860
2024-02-02 Reini Urban <reini.urban@gmail.com>
doc: one more ODA spec update
more links
doc: update ODA spec patches
links
spec: fix MESH 2 missing bits
2018/Surface take these 2 bits from the handles.
Fixes the MESH ODA error
2024-02-01 Reini Urban <reini.urban@gmail.com>
spec: fix LEADER.endptproj for r13c3
fixes r13c3/from_autocad_r14/bflyhse.dwg ODA roundtrip errors
2024-02-01 Reini Urban <reini.urban@gmail.com>
encode: write 0 padding bits, not 1
eg. as seen in CARWHEEL_from_autocad_r13 with STYLE padding bits
in the original it was 0, in the new 0x77, leading to an oda error in this
style object, and different CRCs.
Might be related to GH #346
2024-02-01 Reini Urban <reini.urban@gmail.com>
NEWS for 0.13
2024-01-31 Reini Urban <reini.urban@gmail.com>
comment: add more AEC objects
found in some ACadSharp example
encode: r2004 classes
Forgot the 3 extra fields as in read_2004_section_classes().
2024-01-30 Reini Urban <reini.urban@gmail.com>
dxfclasses: add missing MESH/AcDbSubDMesh class
bump the copyrights to 2024
2024-01-30 Reini Urban <reini.urban@gmail.com>
injson: fix Dwg_VALUEPARAM subclass
with a proper subclass name we can now almost import
ASSOCACTION's.
Missing: resolve of inlined Dwg_EvalVariant
ERROR: Unknown subclass field VALUEPARAM_vars.code
ERROR: Unknown subclass field VALUEPARAM_vars.u
2024-01-30 Reini Urban <reini.urban@gmail.com>
insjon: fix MESH.crease malloc array
e.g. 2018/Surface. GH #830
encode: downconvert header.sections
2024-01-29 Reini Urban <reini.urban@gmail.com>
encode: fix sections patchup, fix header crc
we wrote num_sections, not sections.
the ODA crc calc. is also widely complicated, it is
rather simple
encode: skip the 2ndheader rewrite on size changes
in real ACAD dwgs this 2ndheader template address is just zeroed.
only in the header.section it is then correct
2ndheader: re-write 2ndheader when its size changed
for the template address.
also fix 2ndheader.num_sections (6 not 7)
llvmfuzz_standalone_tz.sh: accept file arg
bits: comment bit_TV_to_utf8 leak case
Answering JoraGevorgyan, GH #926.
See ossfuzz 66248
2024-01-29 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Remove UNTIL (R_2000)
Everything is UNTIL (R_2000), so we don't need.
Fix encoding of second header
logging address is address after sentinel, same in decoding
address is address before sentinel
size is second header block + begin sentinel
Fix section numbers
sections are sections in header and aux header
num_sections are all sections
2024-01-27 Reini Urban <rurban@cpan.org>
doc: Update README for preR13
2024-01-27 Reini Urban <reini.urban@gmail.com>
encode: extend max num_classes
to overflow into negative
bits_test: print error hint
fix json
e.g. ./json example_2004
log: fixes for not existing args
encode: print section names
as with decode
encode: missing template.address
Need to move section_order into a global array
encode: section_order adjust num_sections internally
encode: maybe auxheader needs padding
encode: maybe move auxheader before thumbnail
decode: fix AVAIL_BITS, independent on obj->size
AVAIL_BITS only depends on dat.
fix the 2ndheader size check.
2024-01-27 Reini Urban <rurban@cpan.org>
encode: section_order harmonization
use functions for each section, so that we can re-use 2004 code for 2000.
and write sections in arbitrary order.
2000 as in 2004
2024-01-27 Reini Urban <rurban@cpan.org>
encode: add section_order[] and section_move funcs
but not used yet
2024-01-24 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Remove maximum of classes
2024-01-23 Reini Urban <reini.urban@gmail.com>
indxf: reject invalid number pairs
0\nSECTION ok,
0SECTION not ok.
indxf: fix float-conversion overflow, fuzzing only
with extremely large numbers.
Fixes ossfuzz 65937
injson: ditto for RD*
consume the token, and warn
injson: fix RS* overflow, fuzzing only
Fixes ossfuzz 66046
2024-01-18 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix dictionary for R_13c3
There were typo in variable.
2024-01-11 Reini Urban <reini.urban@gmail.com>
shfmt: regen-shfmt without -kp
shell: regen-shfmt
shell: improve .DWG stripping
2024-01-07 washcloth <wsh@riski.sh>
Use python3 syntax and modernize shebang env
Many systems do not provide the /usr/bin/python link. Instead use the
env program to specify a python3 working environment. Presumably during
a conversion to python3, a print statement during an error check was
still in python2 syntax, this is now changed to proper python3 syntax.
2024-01-03 Michal Josef Špaček <michal.josef.spacek@gmail.com>
maint_versions to hexadecimal
Fix presence of unknown variables
2024-01-02 Reini Urban <reini.urban@gmail.com>
spec: finish OSMODE BS
2024-01-01 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix OSMODE variable in header
it's BS not BL
2023-12-31 Reini Urban <reini.urban@gmail.com>
json.test: fix check_oda
check_oda: r2000,r14 only
2023-12-31 Reini Urban <rurban@cpan.org>
add oda check to json.test
indxf: fix double-free
ossfuzz 64318 WIP
2023-12-31 Reini Urban <reini.urban@gmail.com>
spec: promote LAYOUTPRINTCONFIG to unstable
we do have coverage, and it looks complete
(just 6 padding bits)
need convert_LTYPE_strings_area also for out_dxf, svg, json
encode: add convert_LTYPE_strings_area
for 256/512 byte conversions.
See GH #910
in_dxf: fix LTYPE.strings_area for r2007+
Fixes GH #910
spec: fix LTYPE for r13-2004 for in_dxf
wrong if-else brackets
spec: change LAYOUTPRINTCONFIG to entity
detected by OUT=3 examples/llvmfuzz_standalone ../test/test-data/2000/5.dxf
is entity in dxf's (281: 1) and dwg's (item_class_id 498)
Fix missing json dat->version
Fixes GH #910
Fix dxfb_3dsolid heap-buffer-overflow with VALUE_BINARY (s, l)
Fixes GH #911
2023-12-31 Reini Urban <rurban@cpan.org>
encode r11: protect from wrong tbl->number
2023-12-30 Reini Urban <reini.urban@gmail.com>
ninja ci: lukka/run-vcpk fails
vcpkg.json.in is not found
dxf: disable the VX table
Import and output. It is not observed, not documented in DXF.
Analog to DXFB
2023-12-27 Reini Urban <reini.urban@gmail.com>
*-check: fix dxf $r, esp. for r13
bits: extra bit_read_TF length overflow check
ERROR: bit_read_TF buffer overflow at 2441.0 + -559041242 > 3806
2023-12-27 Reini Urban <rurban@cpan.org>
header.spec: move section field into spec
so that it is tracked in json, to en-/disable
a potential r13 second header.
Fixes GH #860
2023-12-26 Reini Urban <reini.urban@gmail.com>
json: fix type confusion
encode: fix downconvert_DIMSTYLE eed overflow
need room for the final size=0, num_eed includes that.
esp. when all the DIMSTYLE APPID's already exist.
formatting only
2023-12-25 Reini Urban <reini.urban@gmail.com>
bits: fix fuzzing bit_H_to_dat overflow
with invalid handle size
encode: fix NULL deref in remove_EXEMPT_FROM_CAD_STANDARDS_APPID
Fixes GH #901
OUT=0 VER=3 examples/llvmfuzz_standalone ../ti/gh901/other/testcase
2023-12-24 Reini Urban <reini.urban@gmail.com>
decode: fixup for 2ndheader wrong overflow check
10c79fd51df35afdc3e0272e58075e8d5d2e9a3c added obj, which fails with AVAIL_BITS.
Thanks to Michal, GH #860
postprocess_SEQEND: improve Missing owner
log the handle, search the owner on preR13, as in indxf
2023-12-23 Reini Urban <reini.urban@gmail.com>
in_dxf: fix uninit in \M+ scanning
Fixes testcase 0 from GH #901, detected by Matteo Marini.
decode: fix fuzzer error with Invalid auxheader_size
testcase 1 of GH #901
2023-12-23 Reini Urban <rurban@cpan.org>
more dwg_next_handle fixes.
Fixes GH #891.
dwg->num_objects is unreliable <r2.0, containing
empty objects
2023-12-21 Reini Urban <reini.urban@gmail.com>
fix dwg_next_handle
For GH #891.
Scan all objects backwards for the next handle, not the global refs.
preR13 has almost no global refs
alive.test: enable preR13 tests
doc: patch updates
decode: header pos asserts
2023-12-21 Reini Urban <rurban@cpan.org>
injson logging: no hex thumbnail_address
2023-12-18 Reini Urban <reini.urban@gmail.com>
decode_r2007: fix heap overflow by one
Just a harmless 1 byte overflow with an invalid odd section->name_length.
not security relevant.
Fixes GH #899. Fuzzing only
2023-12-16 Reini Urban <reini.urban@gmail.com>
json: change <r13 VERTEX_2D.point to 2RD
also for in_json json_3DPOINT()
Resolves PR #893 differently
2023-12-16 Frank <f.vanleeuwen@unovica.nl>
AdDbAssocDimDependencyBody typo
2023-12-15 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Remove zero_5 from header
Remove zero_5 from second header
2023-12-15 Reini Urban <reini.urban@gmail.com>
regen-dynapi for BSd TREEDEPTH
2023-12-14 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Simplify decoding of ObjFreeSpace section and second header
These two sections are independent
Fix TREEDEPTH header variable
It is signed number
2023-12-07 Reini Urban <rurban@cpan.org>
fix 2ndheader logging null-deref
Fixes fuzz GH #890
2023-12-05 Reini Urban <rurban@cpan.org>
json: dont cquote 3DSOLID.acis_data
they are chunked by 256 max, not encoded, and without any
to be escaped chars
2023-12-03 Reini Urban <rurban@cpan.org>
oda: fix shell warning
oda: line 51: [: =: unary operator expected
dwg2SVG: feature ordering
not too late
2023-12-01 Michal Josef Špaček <michal.josef.spacek@gmail.com>
maint_version in aux header to hex format
Fix R_2002 dwg_version
Fix comments about AutoCAD releases
2023-11-30 Reini Urban <rurban@cpan.org>
make: run log-dwg and check-ossfuzz in parallel
and esp. with spaces in filename support (find -print0 | xargs -0)
logging: improve 2ndheader.dwg_version (hex)
outdxf: protect against ACIS.block_size overflow
terminate the encr_sat_data[i] block.
Fixes ossfuzz 59124
indxf: fix some fuzzing leaks on errors
ossfuzz 44697
fix more unused vars detected by msvc/clang-cl
2023-11-29 Reini Urban <rurban@cpan.org>
fix unused vars detected by msvc/clang-cl
WIP
fix 2ndheader
Fixes GH #860.
Write the correct 2ndheader.size, and address.
write no objfreespace of none read (even if num_sections)
patch the 2ndheader.size
decode_r11: add dwg_next_handseed
Fixes Duplicate handle errors with r11.
Fixes GH #879
bits: fix RLL_BE
reading and writing, down to RS_BE.
Fixes the r11 HANDSEED and EED handles, Fixes GH #883
no abort() in libraries
bits: fix bit_TV_to_utf8_codepage heap-buffer-overflow
Fixes GH #881
bits: protect from more size overflows
Fixes GH #880
2023-11-28 Reini Urban <rurban@cpan.org>
decode: zero-init objfreespace also
2023-11-28 Reini Urban <rurban@cpan.org>
emscripten/WASM support
Closes GH #876
Compiles fine with:
emconfigure ../configure --disable-bindings --disable-shared
make -j -s
but not tested in a browser (no stdio in the console via node programs dwg...)
2023-11-28 Reini Urban <rurban@cpan.org>
decode_r11: assign free handles for new objects
See GH #879
And fail on existing duplicate object handles.
unit-tests: add --all option, alias to -an
spec: r11 signed VX_TABLE_RECORD RS fields
WIP: encode r11 blocks all BLOCK into BLOCKS
Interestingly seems to fix GH #879
2023-11-27 Reini Urban <rurban@cpan.org>
r11: harmonize POS logging
oda: better fix for r11
fix CMC and H tracing
on encode log the POS after the write, not before. analog to decode.
json: simplify SUB_FIELD_T, VALUE_TEXT_TU, VALUE_TEXT
All of them must convert to UTF-8
doc diff: add more specs
api: fix GEODATA.north_dir to 2RD
also fixes GEODATA imports
api: fix GEODATA.north_dir to 2RD
also fixes GEODATA imports
auxheader: wrong maint_version casts
Fixes GH #871
2023-11-27 Frank <f.vanleeuwen@unovica.nl>
fix GEODATA num pts
2023-11-24 Reini Urban <rurban@cpan.org>
objfreespace: since r13 already
Fixes GH #872
objfreespace: set objects_address only r13-r2000
r2004-r2007 has 0
encode: set objfreespace defaults
Fixes GH #869
api: clearup dwg_add_SEQEND blkhdr confusion
Fixes GH #856
spec: fix r13 DICTIONARYWDFLT
Fixes GH #864
2023-11-23 Reini Urban <rurban@cpan.org>
encode: skip MATERIAL (and its NOD)
and its common handle link.
encode: keep thumbnail and template section order
if we have the old addresses. else honor the old version logic.
Fixes GH #853
2023-11-23 Reinhard Urban <reinhard.urban@nubix.de>
encode: fix r13c3 templates
oda errors went from 213 to 172. master has 99 of 971 though.
but fixed most r14 errors, only 3 vs 30 in master.
json: add json_section_objfreespace
2023-11-23 Reini Urban <rurban@cpan.org>
Rename the MEASUREMENT section 4 to Template
for consistency
r13 objfreespace
do decode (also with section[3].address == 0)
add encode.
2023-11-23 Michal Josef Špaček <michal.josef.spacek@gmail.com>
r13-2000: Fix encoding of 2ndheader, add objfreespace
In DWG file header is address and size for objfreespace section.
The 2ndheader is after that section with extra sentinels, main data and crc.
Improve logging of sections
auxheader hasn't sentinel - fix comment
2ndheader have sentinels - fix comments
2023-11-23 Reini Urban <rurban@cpan.org>
spec: fix appinfo class_version 2/r2004
analog to SummaryInfo.
e.g. test-old/2004/from_cadforum.cz/corvette.dwg
HACKING: update commit prefixes
2023-11-23 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Unify log of maint_version
Same as in HEADER and Second Header
2023-11-21 Reini Urban <rurban@cpan.org>
encode: honor secondheader.num_sections
on empty num_sections.
injson: fail on arrays when a primitive expected
e.g. ossfuzz 63057
doc: probe for HAVE_ODA_SPEC
2023-11-20 Reini Urban <rurban@cpan.org>
doc: diff.pdf - Variabele typo
doc: diff.pdf - MTEXT, LEADER, FIELD
add doc/ODA-5.4.2-libredwg-diff.pdf
a colored diff as pdf
decode: cleanup dead code
add doc/ODA-5.4.2-libredwg.patch
as generated privately
2023-11-14 Reini Urban <rurban@cpan.org>
json-check: keep old err
to see regressions and improvements
2023-11-13 Reini Urban <rurban@cpan.org>
decode_r11: fix dat->byte wraparound heap-buffer-overflow
Fixes ossfuzz 64118
2023-11-10 Reini Urban <rurban@cpan.org>
spec: fixed PROXY.data size hack
fixes overflow with ossfuzz 63814
decode: missed a dat restore
on an decode error (MS size overflow)
decode: improve bit_read_fixed buffer-overflow
on wrap-around.
2023-11-09 Michal Josef Špaček <michal.josef.spacek@gmail.com>
Fix layer.on decoding
2023-11-09 Reini Urban <rurban@cpan.org>
add timeout to llvmfuzz_standalone_*.sh
some tests hang
2023-11-08 Reini Urban <rurban@cpan.org>
encode: fix NULL-deref with old files (r1.1)
Fixes ossfuzz 63895
free: fix DWGCODEPAGE indxf leak
Releated to ossfuzz 63895
indxf: fix stack-buffer-overflow
Fixes ossfuzz 63919
encode: fix r2004 section dat leaks
with no info pages
2023-11-06 Reini Urban <rurban@cpan.org>
encode: fix 2ndheader hdl overwrite
fixed size patchup
encode: fix r1.4/entities roundtrip for BLOCK/ENDBLK
need to keep BLOCK/ENDBLK in entities, no blocks section.
suppress -Wcast-align warnings
we already know about them already, and there's a branch to fix it.
encode: revert -Wstringop-overflow suppression
the error was a MIN/MAX confusion, not a compiler bug.
2ndheader: add VALUEOUTOFBOUNDS checks
because example_r14 overflows num_hdl still
encode: set 2ndheader.handles[].name
for better logging
encode: forgot 2ndheader.junk_r14
json also.
injson: fix RS[] type confusion
check that the parsed type (ie. HEADER.layer_colors) fits
the real type sizes.
Fixes ossfuzz 63824, a stack overflow
2023-11-03 Michal Josef Špaček <michal.josef.spacek@gmail.com>
junk_r14 is from r14 to r2000
Fix CRC
Fix second header structure
2023-11-03 Reini Urban <rurban@cpan.org>
encode: add LOG_TFv
same problem as with write_TFv on downgrading
encode: more downgrading support
add dwg_supports_eed and dwg_supports_obj.
skip writing unsupported entities and objects pre-R13.
>= r13 we keep our old logic for handles refs.
json: dont skip *MODEL_SPACE BLOCK_HEADER
only with encode later
llvmfuzz_standalone: dont print unnecessary SEED
when we dont need rand(), when all env vars already given
2023-11-02 Reini Urban <rurban@cpan.org>
encode: even more encode_check_num_sections checks
indxf: fail on setting a num_ values twice
Fixes GH #859
encode: more encode_check_num_sections checks
free: fix HYPERLINKBASE double-free
add bit_wcs2dup
cmake: sort probes
add HAVE_GETTIMEOFDAY probe
more llvmfuzz_standalone_*.sh
rename llvmfuzz_standalone_all.sh to llvmfuzz_standalone_tz.sh
add llvmfuzz_standalone_data.sh
fix env vars to check all permutations.
skip leaks only on indxf
encode abstract into encode_check_num_sections
needed also for <r2.0b
2023-11-01 Reini Urban <rurban@cpan.org>
encode: fix new r11 sections on upgrade
llvmfuzz: honor config.h
encode: some unused variables
llvmfuzz: better seed precision (millisecs)
llvmfuzz_standalone: improve repro output
header_variables_dxf.spec: fix summaryinfo types