Commit Graph

6316 Commits (d6885d40254016e892d44bbb07f16f715cf47c0a)

Author SHA1 Message Date
Krishty 5cbc00a595 Fix Build With M3D Import Only
`M3DWrapper.h` is designed to omit the definition of `class M3DWrapper` if neither M3D import nor M3D export are compiled.
608bccd9cf touched the corresponding preprocessor checks and introduced a bug:
```
#ifndef ASSIMP_BUILD_NO_M3D_IMPORTER
#if !(ASSIMP_BUILD_NO_EXPORT || ASSIMP_BUILD_NO_M3D_EXPORTER)
class M3DWrapper {
```
When compiling
- with M3D import enabled,
- but with either export generally disabled or M3D export disabled specifically,
These checks evaluate to the wrong result and skip the definition, leading to a build failure in dependent code.
```
#if 1 // import enabled
#if !(1 || 1) // export disabled and M3D export disabled
```
This commit fixes the check to compile the definition if neither import is disabled.
2023-01-16 08:29:49 +01:00
Krishty bad76fd0f1 Replace Variables With Literals 2023-01-16 08:18:36 +01:00
Krishty e5c02e8d45 Remove Useless “virtual”
These functions are already marked “override”, and their neighbors had “virtual” removed as well.
2023-01-16 08:12:24 +01:00
Martin Mory 43c0f8bb3d Remove whitespace between a <v> tag and the first number, otherwise first call to strtoul10() returns 0 and the indices are broken, leading to possible out-of-bound access and memory corruption/crash 2023-01-15 23:03:41 +01:00
Kim Kulling 2d37f49f51
Remove deprecated comment
- closes https://github.com/assimp/assimp/issues/4869
2023-01-15 19:12:24 +01:00
Daniel Rösner 74af523b3e Generalize JoinVerticesProcess for multiple UV and color channels 2023-01-12 13:13:46 +01:00
Kim Kulling b393132b58
Merge branch 'master' into spelling 2023-01-08 17:43:55 +01:00
Kim Kulling 96b071bdb1
Fix: Fix possible division by zero
- closes https://github.com/assimp/assimp/issues/4860
2023-01-04 09:19:37 +01:00
Andy Maloney e893248e7c Fix several spelling mistakes & a comment 2023-01-01 13:31:48 -05:00
Kim Kulling a8e50be781 Refactoring: Move asserthandler header to include 2022-12-23 16:19:39 +01:00
Kim Kulling 376f66a06d
Merge branch 'master' into master 2022-12-16 10:11:56 +01:00
Kim Kulling c3d15a3f51
Fix minor review findings. 2022-12-16 09:03:40 +01:00
Kim Kulling c92b84e38d
Merge branch 'master' into patch-10 2022-12-16 09:00:41 +01:00
Kim Kulling db8ff41679
Update MD5Parser.cpp 2022-12-15 14:06:57 +01:00
Kim Kulling 2612950b7b
Merge branch 'master' into patch-9 2022-12-15 14:05:35 +01:00
sashashura 917352dd8b
Fixes Heap-buffer-overflow READ 1 in Assimp::ObjFileParser::getFace
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49274
2022-12-11 01:54:57 +01:00
Alex 90769ef3e6
Fixes Heap-buffer-overflow READ 1 in Assimp::MD5::MD5Parser::ParseHeader
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49422
When it reaches the `SkipSpacesAndLineEnd`, `in` already points past `bufferEnd` and it leads to out of bounds memory read.
2022-12-11 00:02:09 +00:00
Alex d5294be00b
Fixes Heap-buffer-overflow READ 4 in Assimp::ScenePreprocessor::ProcessMesh
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49797
2022-12-10 01:22:00 +00:00
Umesh Rajesh Ramchandani 2d372b302f Fixed bug when exporting binary FBX
Fixed vector subscript out of range bug when NULL_RECORD is passed to PutString and is actually null
2022-12-08 14:59:25 +01:00
Kim Kulling fec39154ed
Merge branch 'master' into floatwarnings 2022-12-08 14:18:35 +01:00
Kim Kulling 769b47ed0e
Ensure face pointer is not nullptr
- closes https://github.com/assimp/assimp/issues/4831
2022-12-08 09:35:11 +01:00
Kim Kulling 9d57ac9cc5 Fix:Add missing semicolon. 2022-12-05 13:15:42 +01:00
Kim Kulling 81f85a6f93 Avoid undefined-shift in Assimp::ASE::Parser::ParseLV4MeshFace. 2022-12-05 13:07:52 +01:00
Gargaj 9c839f2d9a more fixes 2022-12-03 20:44:57 +01:00
Gargaj 07d4e83f43 fix warnings-as-errors for msvc x64 2022-12-03 20:27:00 +01:00
Kim Kulling 62486c6e7c
FIX: Fix possible division by zero
- closes https://github.com/assimp/assimp/issues/4819
2022-12-02 09:24:51 +01:00
Kim Kulling f578b15759
Merge branch 'master' into explspec 2022-11-30 14:03:09 +01:00
Thomas Köppe 7d06d798af [BlenderDNA.h] Declare explicit specializations
It is an ODR violation to use a template specialization for which an
explicit specialization is defined somewhere whose declaration is not
visible at the point of use.

Found via clang's -Wundefined-func-template warning.
2022-11-29 18:38:33 +00:00
Kim Kulling 8fb7ba3444
Merge branch 'master' into modernize-smartptrs-literals 2022-11-29 09:58:17 +01:00
Kim Kulling 5689ac7869
Add overfolow check for invalid data.
- closes https://github.com/assimp/assimp/issues/3422
2022-11-22 10:50:52 +01:00
Kim Kulling 1d1cd93371
Merge branch 'master' into KHR_materials_emissive_strength 2022-11-21 20:55:13 +01:00
Jan Krassnigg 08f2f0f82f Don't hide out-of-memory during FBX import 2022-11-18 13:50:33 +01:00
Adam Beili 95d98ec98b
fixed indentation error 2022-11-08 20:55:20 +02:00
Adam Beili 49bc22ddb5
Merge branch 'master' into KHR_materials_emissive_strength 2022-11-08 20:51:20 +02:00
Aaron Gokaslan 3730b7414f Use make_shared in IFCBoolean 2022-11-08 11:30:53 -05:00
Aaron Gokaslan d635bc6914 Fix some indentation 2022-11-08 11:19:12 -05:00
Aaron Gokaslan ccfb175460 Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Aaron Gokaslan 97cb1c6b15 Fix perfect fowards 2022-11-07 11:01:16 -05:00
Aaron Gokaslan 5a0df03d2b Fix another missing move in glTFCommon.h 2022-11-07 09:34:00 -05:00
Adam Beili 945d93b46a fixed indentation 2022-11-04 09:37:28 -07:00
Adam 852ea8325c Added support for KHR_materials_emissive_strength
according to spec https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_emissive_strength
2022-11-03 23:11:21 +02:00
Aaron Gokaslan 899f8e1d17 Remove redundant ctor 2022-11-03 12:46:40 -04:00
Aaron Gokaslan 02378b5e70 Add one more missing move 2022-11-03 12:36:58 -04:00
Aaron Gokaslan 8da3d277c7 add missing std moves 2022-11-03 12:35:10 -04:00
Kim Kulling 99e515fbfd Fix:Fix possible nullptr dereferencing + refactorings. 2022-10-29 17:08:26 +02:00
Sergey ac87b9ce7e fixed error with trailing zero symbol as placeholder character 2022-10-19 09:30:32 +03:00
Kim Kulling 35136bc90c
Merge branch 'master' into master 2022-10-18 19:25:14 +02:00
Kim Kulling 07aef23d24 Fix: Add missing ahndling for double export in json 2022-10-18 19:05:04 +02:00
François Lozes e17976e6e2 * fix bug reading ply file in case of presence of "end_header\n<BINARY_DATA>..." with <BINARY_DATA> starting by "\n" 2022-10-14 13:16:18 +02:00
slinky55 e0fb1674d1 Merge branch 'clang-fix' of github.com:slinky55/assimp into clang-fix 2022-09-30 22:04:11 -04:00
slinky55 38ccb7e6c9 Used sizeof for buffer sizes instead of hardcoding values 2022-09-30 22:03:59 -04:00
slinky55 5f28370f7f
Merge branch 'master' into clang-fix 2022-09-30 21:57:32 -04:00
slinky55 e2e45f7a14 Fixed issue with clang complaining about sprintf being depreciated 2022-09-30 00:34:33 -04:00
Kim Kulling 981677d4b9
Merge branch 'master' into MakeFBXParserResilientToMissingStreams 2022-09-30 00:13:45 +02:00
Povilas Kanapickas f6a590065c Prefix symbols from stb_image.h
This makes it possible to link assimp statically into an executable with
another static library that includes stb_image.h without hiding its
symbols.
2022-09-23 04:08:21 +03:00
Povilas Kanapickas 22494bde17 Don't include stm_image implementation if using stb library from Hunter
Hunter compiles its own stb library binaries. Currently a second copy is
compiled by defining STB_IMAGE_IMPLEMENTATION in Assimp.cpp. This may
cause hard to understand bugs if this compiled copy ever becomes
different from what Hunter supplies.
2022-09-23 04:08:20 +03:00
Florian Born 7eb9edf0b9 Make FBX parser resilient to missing data streams 2022-09-21 11:45:54 +02:00
Kim Kulling 6415c0bfc9 FIX: Use attribute to fix warning. 2022-09-20 21:39:09 +02:00
Kim Kulling 1f61f0c3de FIX: Caculate buffer end pointer after initing all attributes 2022-09-20 21:35:44 +02:00
Kim Kulling f1766c4bd5 FIX: Fix head overflow in MD5-parser. 2022-09-20 21:03:58 +02:00
Kim Kulling b3c7bdbdd6 Add check for wall switch from cmake 2022-09-17 18:16:42 +02:00
Kim Kulling e4c77aa4fa Fix: Use ASCII treeview in assimp-cmd. 2022-09-16 21:55:14 +02:00
Aaron Gokaslan 20755f4200 Perfect forward val to utMaybe 2022-09-09 10:55:45 -04:00
Kim Kulling ad1d0fcb45
Merge branch 'master' into kimkulling/cleanup_after_review 2022-09-08 19:09:49 +02:00
Kim Kulling 3af53a42aa
Fix typo 2022-09-08 19:06:05 +02:00
Kim Kulling fff977c0b5
Fix review findings. 2022-09-08 18:54:08 +02:00
HiMemX 4c9d270a5e
-Vertex export fix 2022-09-07 23:10:31 +02:00
Kim Kulling 8895ecf243
Merge branch 'master' into kimkulling/cleanup_after_review 2022-09-07 21:26:54 +02:00
Kim Kulling 362ff08855 Add doc + small unittest 2022-09-07 21:25:46 +02:00
Gargaj d15b4ad7ef add missing light data to assbin import/export 2022-09-05 16:09:24 +02:00
Kim Kulling 2a667cc637
Merge branch 'master' into patch-1 2022-09-04 09:52:42 +02:00
Aaron Gokaslan 411171fa45 Apply some more modernize-use-emplace 2022-09-02 11:20:02 -04:00
Aaron Gokaslan e3b01e10db apply fixes to more headers 2022-09-01 12:28:45 -04:00
Aaron Gokaslan 4c6652f5b0 Add a handful of missing fixes 2022-09-01 11:37:53 -04:00
Gargaj a22aa75bca
fix vertices being joined duplicating weights
This bug causes weights to duplicate, i.e. one bone will have several (equal) weights assigned to the same vertex - which then has the potential to cause even bigger problems when combined with `LimitBoneWeightsProcess`.
2022-08-31 22:27:34 +02:00
Kim Kulling f527e56f22
Merge branch 'master' into explicitly-default-dtors 2022-08-30 22:21:06 +02:00
Kim Kulling 80ae9afe4e Add missing documentation. 2022-08-30 21:55:52 +02:00
Kim Kulling 25d7510b8c
Merge branch 'master' into kimkulling/cleanup_after_review 2022-08-29 22:17:39 +02:00
Kim Kulling e34becff62
Enable portable linkage to fix build 2022-08-29 11:43:32 +02:00
Kim Kulling 0571ee21fb Introduce unittest for BaseProcess. 2022-08-28 20:58:52 +02:00
Kim Kulling 02e6c425f9 Fix ordering of initalizer list 2022-08-27 15:20:53 +02:00
Kim Kulling e4c383324a Use string for constexpr 2022-08-27 15:11:54 +02:00
Kim Kulling 14186bcd6b Code cleanup and some new unittests for edgecases. 2022-08-27 14:07:45 +02:00
J.G.Adams 9cd723e282
Wrong object is created here!
If I'm not mistaken. Because this is originally push_back(aniMeshVertex) instead of push_back(v).
And the fact that aniMeshVertex is just getting created and destroyed for nothing.
It need to be replaced with this then? A Clang-tidy syntax to create the same aniMeshVertex.

I found this in pull request #4527 I think it may need to be reviewed too.
2022-08-26 19:12:11 -04:00
Aaron Gokaslan e93fa6699a Manually fix up 100 more instances where it should be defaulted 2022-08-25 12:20:13 -04:00
Aaron Gokaslan 6fa21dcc6e Explicitly default all empty dtors 2022-08-25 11:32:59 -04:00
Kim Kulling 2b30b7e062
Merge branch 'master' into skylion007/modernize-use-emplace 2022-08-24 11:48:30 +02:00
Kim Kulling 659195d852
Fix the fixme
- Based on the implementation in top of the last one I guess I know how to fix that.
- Replacing push_back by emplace_back
2022-08-24 11:17:10 +02:00
Turo Lamminen 0d8723a3eb Add FIXME comment 2022-08-24 10:43:40 +03:00
Turo Lamminen 654ae3af4e Fix out of bounds access in X3D loader 2022-08-24 10:42:01 +03:00
Aaron Gokaslan 25add7baa2
Merge branch 'master' into skylion007/modernize-use-emplace 2022-08-23 15:14:48 -04:00
Kim Kulling 87f601531c
Merge branch 'master' into master 2022-08-23 21:14:45 +02:00
Aaron Gokaslan b176061c41 Remove extra space in emplace insertions 2022-08-23 11:46:30 -04:00
Aaron Gokaslan 27edb43600 Apply modernize-use-emplace clang-tidy rule 2022-08-23 11:41:49 -04:00
Turo Lamminen f890bc791f Fix out of bounds write 2022-08-23 14:38:27 +03:00
Turo Lamminen 68bc6a06b9 Use unique_ptr for aaiBones instead of explicit delete[] 2022-08-23 14:17:56 +03:00
Turo Lamminen 03397d42e2 Use unique_ptr for aaiFaces instead of explicit delete[] 2022-08-23 14:15:06 +03:00
Turo Lamminen 795c0abcc8 Apply modernize-loop-convert to the simplified loop 2022-08-23 14:10:23 +03:00
Turo Lamminen 1ca44acebc Simplify a for loop 2022-08-23 14:10:23 +03:00
Turo Lamminen 712671e81a Apply modernize-loop-convert again 2022-08-23 14:10:20 +03:00
Turo Lamminen 5f28c51c03 Apply clang-tidy modernize-loop-convert transformation 2022-08-23 13:59:42 +03:00
Kim Kulling 2013ae114a
[WIP] Use ai_Real to write correct accuracy
- closes https://github.com/assimp/assimp/issues/4676
2022-08-18 17:41:07 +02:00
vkaytsanov 4c143eb581
Merge branch 'master' into master 2022-08-17 12:01:44 +03:00
Turo Lamminen 1c59de42fc Make some blender fields warn if missing instead of error 2022-08-17 11:42:32 +03:00
Turo Lamminen d2dc0401c3 Use weak pointer for ModifierData prev to avoid memory leak 2022-08-17 11:42:32 +03:00
Turo Lamminen 30555282fe Use weak pointer for ElemBase last to avoid memory leak 2022-08-17 11:42:32 +03:00
Turo Lamminen 56b6446913 Use weak pointer for MirrorModifierData mirror_ob to avoid memory leak 2022-08-17 11:42:32 +03:00
Turo Lamminen 90d1464405 Remove set but unused variables 2022-08-17 11:42:32 +03:00
Turo Lamminen 2e64880abf Inherit SubsurfModifierData and MirrorModifierData from SharedModifierData
This makes the cast in BlenderModifierShowcase::ApplyModifiers work
correctly and not invoke UB.
2022-08-17 11:42:32 +03:00
Turo Lamminen e43e3e11b9 Move SharedModifierData definition to BlenderScene.h 2022-08-17 11:42:32 +03:00
Turo Lamminen 2c1943cd10 Improve BlenderDNA error message 2022-08-17 11:42:32 +03:00
Kim Kulling 89c4640744
Merge branch 'master' into master 2022-08-16 20:53:45 +02:00
vkaytsanov d469c7b161 Remove exception on glTF 2.0 loading 2022-08-16 15:52:43 +03:00
Kim Kulling baf14f6c16
Merge branch 'master' into master 2022-08-12 14:09:04 +02:00
Aleks L 4b85eb59c2
Fixes Heap-buffer-overflow READ in Assimp::ASE::Parser::ParseLV1SoftSkinBlock 2022-08-10 15:30:07 +01:00
Ville Voutilainen 253f8bfa62 Use unqualified uint32_t everywhere in FBXBinaryTokenizer
The use of qualified std::uint32_t requires including <cstdint> instead
of <stdint.h> on some implementations, and that breaks the build of Qt 6
on GCC 13. Just use the unqualified name everywhere.
2022-08-09 01:54:31 +03:00
Kim Kulling 5084a4d155
Use [[fallthrough]]; to mark whished fallthroughs
- closes https://github.com/assimp/assimp/issues/4654
2022-08-05 20:49:37 +02:00
Kim Kulling eac0876c9b Refactoring: Use correct prefix for attributes in ObjImport. 2022-07-31 20:54:58 +02:00
Kim Kulling dddfb74902 Fix another mem-leak 2022-07-31 13:37:42 +02:00
Kim Kulling c349035cd1 Fix face memleak. 2022-07-31 12:10:43 +02:00
Kim Kulling 85f86ec076 Revert using face as pod type 2022-07-30 21:52:33 +02:00
Kim Kulling 0513eff44f
Merge branch 'master' into kimkulling/waveform_obj_optimizations 2022-07-30 13:15:42 +02:00
Kim Kulling f6bcb160d0 Improvements of obj-parsers. 2022-07-30 12:58:09 +02:00
Kim Kulling 340d800739
Merge branch 'master' into master 2022-07-29 20:42:56 +02:00
Kim Kulling 4f6640278a
Merge branch 'master' into fix/collada_parser_sid 2022-07-29 19:17:43 +02:00
Kim Kulling b0210cb3cf
Merge branch 'master' into patch-1 2022-07-29 17:48:14 +02:00
Engin Manap 7c75a4c59b
Merge branch 'master' into master 2022-07-24 12:31:36 -07:00
Kim Kulling 73542f3830
Merge branch 'master' into patch-2 2022-07-24 12:11:18 +02:00
Kim Kulling f07bc2c5b9
Merge branch 'master' into patch-3 2022-07-18 15:19:27 +02:00
Kim Kulling 05ececc387
Merge branch 'master' into patch-4 2022-07-18 14:06:29 +02:00
sashashura 9ddc3a64d7
Fixes Crash in Assimp::ObjFileMtlImporter::getFloatValue 2022-07-16 13:55:08 +01:00
sashashura 772cfdc757
Fixes Heap-buffer-overflow in Assimp::ObjFileParser::getFace 2022-07-16 13:50:54 +01:00
sashashura 94c0e9d890
Fixes Heap-buffer-overflow in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch 2022-07-16 13:48:39 +01:00
sashashura a4274930e4
Fixes Heap-use-after-free in Assimp::DXFImporter::ExpandBlockReferences 2022-07-16 13:46:50 +01:00
sashashura 0c07ea7c71
Fixes Heap-buffer-overflow in SuperFastHash 2022-07-16 13:44:46 +01:00
Engin Manap 684909a691 Fix comments on PR
1) Use default instead of empty destructor
2) Remove debug code
2022-07-09 17:23:40 +02:00
Engin Manap 3e424f8119
Merge branch 'assimp:master' into master 2022-07-09 17:17:01 +02:00
Kim Kulling 6ad8ea395a
Merge branch 'master' into fix_stl_for_over_4GB 2022-07-09 09:58:10 +02:00
Engin Manap e63426b89c Fix collada parser fails on Mixamo exports 2022-07-08 23:42:41 +02:00
Engin Manap 3890b5dff5 Add missing = operator
implicit assignment operator is depricated, these classes were missing
explicit definitions of this operator.
It is causing warnings, specifically  -Werror=deprecated-copy
2022-07-08 18:16:02 +02:00
Engin Manap c3a89fd2d0 Fix non virtual destructor use 2022-07-08 18:16:02 +02:00
Engin Manap ae276987a0 Remove unnecessary const qualifiers
These changes are part of enable -Wall, this specific changes are for
-Werror=ignored-qualifiers
2022-07-08 18:16:02 +02:00
Engin Manap a10abe0283 Add fallthrough comment to switch case
This allows gcc to identify intentional fallthroughs, which are part all
-Wall. Specifically -Werror=implicit-fallthrough
2022-07-08 18:16:02 +02:00
Robert Osfield 8e062792cd Build fix for compiling against minizip. 2022-07-08 12:46:27 +01:00
tanolino c23146bb20
Use size_t for the file size in cpp file
This pointer juggling in combination with STL files >4GB caused some nasty illegal memory access bugs here. So let's fix it.
2022-07-08 10:26:03 +02:00
Kim Kulling c5dfcac08a
Update D3MFOpcPackage.cpp 2022-07-08 10:25:40 +02:00
tanolino 24d110199a
Use size_t for file size instead of unsigned int
This is one step to help us open files with more then 4 GB size.
2022-07-08 10:19:50 +02:00
Kim Kulling e254f80a3a
Fix memory leak in D3MFOpcPackage
- closes https://github.com/assimp/assimp/issues/4628
2022-07-08 10:17:11 +02:00
Kim Kulling e59b8fb448
Fix typo 2022-07-08 09:50:04 +02:00
Kim Kulling 70b2db19a8
Remove assertion test
- Code cleanup
- closes https://github.com/assimp/assimp/issues/4626
2022-07-08 09:47:33 +02:00