Commit Graph
12715 Commits
Author SHA1 Message Date
a79dc358cf Add windows clang to CI (#5537)
- Add windows clang build step
- Closes https://github.com/assimp/assimp/issues/5519


Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
Co-authored-by: Kim Kulling <kullingk@LDED5178.corp.draeger.global>
2025-07-16 16:43:20 +02:00
Kim Kulling db0bde758e Update Readme.md (#6245) 2025-07-02 14:35:32 +02:00
Kim Kulling b447485c06 Fix sonarcube findings (#6242)
* Fix sonarcube findings

* Fix review findings
2025-06-28 18:56:28 +02:00
sSsA01andKim Kulling 4c61ca3af5 Refix export fbx PolygonVertexIndex (#6240)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-27 11:30:04 +02:00
HandsomeXiandKim Kulling 4b6cc8c28a bugfix: Fixed the memory leak when texture transforming (#6236) (#6237)
* bugfix: Fixed the memory leak when texture transforming (#6236)

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-26 10:53:08 +02:00
Kim Kulling d99f9bd2f7 Refactoring: Add nupptr-checks (#6241) 2025-06-26 00:09:02 +02:00
Kim Kulling b2afe717d3 Update Importer.hpp (#6235)
- Add doc for out-of-memory exception
- closes https://github.com/assimp/assimp/issues/5173
2025-06-21 13:33:15 +02:00
NSGandKim Kulling ad6e8e210a Fix: export fbx wrong to_ktime in FBXExporter.cpp (#6105)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-17 08:23:21 +02:00
Kim Kulling fb375dd8c0 Prepare 6.0.2 (#6231) v6.0.2 2025-06-08 21:50:39 +02:00
sSsA01andKim Kulling a95addfc4a Fix the function "aiGetMaterialColor" when the flag ASSIMP_DOUBLE_PRECISION is enabled. (#6090)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-08 14:25:47 +02:00
Kim Kulling 2d8c09b60f Update SECURITY.md (#6230)
* Update SECURITY.md

* Update SECURITY.md
2025-06-08 14:14:24 +02:00
357b5baabb fix-CVE-2025-3158: closes #6023 Fixes CVE-2025-3158: Heap-based Buffer Overflow in Assimp::LWO::AnimResolver::UpdateAnimRangeSetup (#6222)
- changed loop-condition to reflect the fact that m must be smaller than n

Co-authored-by: Vinz Spring <vinzs@amazon.de>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-08 14:02:04 +02:00
269987085f Fixes CVE-2025-2750: out of bounds write by assigning to wrong array element count tracking (closes #6011) (#6225)
description:
- The current implementation has faulty reallocation logic when parsing a CSM file
- Issue 1
    - https://github.com/assimp/assimp/blob/4ad1d2aa3086517816716a50aa122342806736f9/code/AssetLib/CSM/CSMLoader.cpp#L205
    - By assigning s->mNumPositionKeys = alloc*2 right before resizing the buffer, making s->mNumPositionKeys equivalent to the
      max number of aiVectorKey that can be stored in s->mPositionKeys
    - the code later attempts to get the next write location by doing: aiVectorKey* sub = s->mPositionKeys + s->mNumPositionKeys;
    - this points to the end of the array, not after the last element in the array
- Issue 2
    - https://github.com/assimp/assimp/blob/4ad1d2aa3086517816716a50aa122342806736f9/code/AssetLib/CSM/CSMLoader.cpp#L178-L184
    - if the CSM file does not declare last frame data, then mPositionKeys will never be initialized

fix:
- we preserve s->mNumPositionKeys to still contain the actual number of aiVectorKeys and ensure that we will not write out of bounds
- we initialize mPositionKeys with a default value and if we find last frame info, we just re-initialize it

Co-authored-by: Vinz Spring <vinzs@amazon.de>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-08 13:46:39 +02:00
5be336779d Fixes CVE-2025-2757: Heap-based Buffer Overflow in AI_MD5_PARSE_STRING_IN_QUOTATION (closes #6019) (#6223)
description:
- heap buffer overflow in AI_MD5_PARSE_STRING_IN_QUOTATION. An attacker could potentially exploit the vulnerability to cause a remote code execution,
  if they can trick the victim into running assimp on a malformed MD5 file

fix:
- truncated the string to the maximum supported length, mitigating overflow

Co-authored-by: Vinz Spring <vinzs@amazon.de>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-08 13:38:05 +02:00
177797c77b Fixes CVE-2025-2751: Out-of-bounds Read in Assimp::CSMImporter::InternReadFile (closes #6012) (#6224)
description:
issue:
- https://github.com/assimp/assimp/blob/4ad1d2aa3086517816716a50aa122342806736f9/code/AssetLib/CSM/CSMLoader.cpp#L274C1-L275C1
- sometimes the code tried to construct a new 4x4 matrix from a nullptr, thus reading out of bounds

fix:
- added nullptr check
- added array count check
- added default fallback init to identity matrix

Co-authored-by: Vinz Spring <vinzs@amazon.de>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-08 12:10:12 +02:00
c1d6226c06 Update/update pugi xml (#6229)
* update pugixml

Improvements:

Many xml_attribute:: and xml_node:: functions now transparently support std::string_view and std::string when C++17 support is detected.
CMake improvements:

Improve pkg-config file generation for NixOS
PUGIXML_BUILD_APPLE_FRAMEWORK CMake option can be used to build pugixml as .xcframework
PUGIXML_INSTALL CMake option can be used to disable installation targets
Compatibility improvements:

Fix clang/gcc warnings -Wzero-as-null-pointer-constant, -Wuseless-cast, -Wshorten-64-to-32
Fix unreferenced function warnings in PUGIXML_NO_STL configuration
Fix CMake 3.31 deprecation warnings
Stop using deprecated throw() when noexcept is available

Improvements:

xml_attribute::set_name and xml_node::set_name now have overloads that accept pointer to non-null-terminated string and size
Implement parse_merge_pcdata parsing mode in which PCDATA contents is merged into a single node when original document had comments that were skipped during parsing
xml_document::load_file now returns a more consistent error status when given a path to a folder
Bug fixes:

Fix assertion in XPath number→string conversion when using non-English locales
Fix PUGIXML_STATIC_CRT CMake option to correctly select static CRT when using MSVC and recent CMake
Compatibility improvements:

Fix GCC 2.95/3.3 builds
Fix CMake 3.27 deprecation warnings
Fix XCode 14 sprintf deprecation warning when compiling in C++03 mode
Fix clang/gcc warnings -Wweak-vtables, -Wreserved-macro-identifier

* Update CMakeLists.txt

* pugixml: upgrade to v1.15

* pugixml: Add export directives for non-windows platforms

* pugixml: replace NULL by nullptr.

---------

Co-authored-by: Andrea <realeandrea@yahoo.it>
Co-authored-by: mosfet80 <10235105+mosfet80@users.noreply.github.com>
2025-06-08 02:12:05 +02:00
Jackson LevittandKim Kulling 8621d52430 Updated Inner Cone formula for Spot Lights in GLTF (#6078)
Updated the Inner Cone formula such that exponent values of 0 result in no inner cone and large exponent values result in a inner cone being most of the cone angle-wise.

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-05 09:41:30 +02:00
sSsA01andKim Kulling 5d39661751 fix compile error caused by PR #6087 when ASSIMP_DOUBLE_PRESICION is enabled (#6091)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-05 09:15:47 +02:00
sSsA01andKim Kulling a98ffe6c6f Fix export fbx: Wrong Materials in LayerElementMaterial if a node contains multi meshes (#6103)
* fix export fbx wrong Materials index in LayerElementMaterial

* Refix export fbx wrong Materials index in LayerElementMaterial. Materials index should be the order of Materials in connections of the Model node.

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-06-05 09:05:36 +02:00
Kim Kulling b3a47a68fa Version: Adapt version (#6212)
* Version: Adapt version

- closes https://github.com/assimp/assimp/issues/6204

* Update utVersion.cpp
v6.0.1
2025-06-02 10:54:32 +02:00
NSGandKim Kulling c4515f53ca Fix: Add "preservePivots" condition when importing FBX animation (#6115)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
v6.0.0
2025-05-31 14:41:25 +02:00
7eb6b0c3db fix: closes #6069 CVE-2025-3196 (#6154)
* fix: closes #6069 CVE-2025-3196

* fix: updated patch for upstream symbol names

* fix: warning C4267

---------

Co-authored-by: Vinz Jarl Valentin Spring <vinzs@amazon.com>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
Co-authored-by: Vinz Spring <contact@vinzspring.de>
2025-05-31 14:27:10 +02:00
sSsA01andKim Kulling 7b38feb8a7 Fix export fbx PolygonVertexIndex (#6102)
* fix export fbx vertex index

* refactoring: remove unnecessary casts

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-31 13:49:58 +02:00
yurik b97308683b Fix a bug in importing binary PLY file (#1) (#6060)
* Correct IOStreamBuffer<T>::getNextLine() to prevent skipping too many '\n', which could be part of the BINARY part
* Add a regression test
2025-05-31 09:05:44 +02:00
deccerandKim Kulling 4ad1d2aa30 Fix HUNTER_ERROR_PAGE (#6200)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-27 13:09:35 +02:00
4535ff9d6e Annotate w/C++17 "fallthrough" (#6143)
Co-authored-by: tellypresence <info@tellypresence.com>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-27 11:14:29 +02:00
Martin MirchevandKim Kulling 18465fbb24 Add clamping logic (#6149)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-26 10:16:10 +02:00
Peter LemanskiandKim Kulling d2aed87f5e Fix issue compiling when assimp added as subdirectory and parent project defines /utf-8 compile flag (#6186)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-23 12:54:03 +02:00
crasongandKim Kulling 315075c4a6 Add Missing Strings to aiTextureTypeToString (#6188)
Anisotropy and gltf metallic roughness were missing strings

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-22 23:25:34 +02:00
Jan HonsbrokandKim Kulling 4f3a759a05 fix: missing OS separator in outfile (#6098)
The outfile was missing an OS separator when a PBRT file was exported in a path that was not the current directory.
Writing to /foo/bar.pbrt was writing to foobar.pbrt instead.
mPath and mFile are now handled like it's described in PbrtExporter.h

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-20 15:33:13 +02:00
mosfet80andKim Kulling 3e8673b14d update draco lib (#6094)
Version 1.5.7 release:
Using the versioned www.gstatic.com WASM and Javascript decoders continues
to be recommended. To use v1.5.7, use this URL:
https://www.gstatic.com/draco/versioned/decoders/1.5.7/*
Added support for normalized attributes to Emscripten encoder API.
Bug fixes.
Security fixes.

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-18 20:51:46 +02:00
Kim KullingandKim Kulling 1933313ec8 Unreal refactorings (#6182)
* Unreal refactorings

---------

Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
2025-05-16 14:18:37 +02:00
Kim Kulling 696771d576 Doc: add C++ / c minimum (#6187)
- closes https://github.com/assimp/assimp/issues/3370
2025-05-16 11:34:54 +02:00
Julian KnodtandKim Kulling 2c77d2555b [#5983] Fix bugs introduced in fbx export (#6000)
There were some typos and incorrect offsets in a previous PR. This fixes part of it, correctly exporting the UV.

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-16 10:22:01 +02:00
Martin MirchevandKim Kulling ed89a02fff Fix out-of-bounds dereferencing (#6150)
* Fix out-of-bounds dereferencing

* Fix: Add log error entry.

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-16 09:07:04 +02:00
Xavier BonaventuraandKim Kulling b40e41f9c3 Update contrib/zip to fix data loss warning (#6152)
Without these changes, the warning "Type conversion may result in loss of data" might be triggered because `i` is of type `ssize_t` but the type of the parameter is `mz_uint` that is an alias for `unsinged int`.
This was already fixed in the original repository
see
https://github.com/kuba--/zip/blob/d7a2252a537926cbdef8512741a322a183fcfd09/src/zip.c#L481C49-L481C58
and
https://github.com/kuba--/zip/blob/d7a2252a537926cbdef8512741a322a183fcfd09/src/zip.c#L538

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-15 08:50:44 +02:00
Kim KullingandKim Kulling 9d9a80739d Fix: Fix leak when sortbyp failes with exception (#6166)
Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
2025-05-14 11:43:12 +02:00
64073458bd Fix warning abut inexistent warning (#6153)
These warnings are not existing before Visual Studio 2015

Fixes #6151

Co-authored-by: Xavier Bonaventura <xavier.bonaventura@gmail.com>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-13 20:37:42 +02:00
mnml_andKim Kulling b9bfac0418 add missing constants (#6116)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-11 21:11:54 +02:00
copycd 536cd59807 + Only up to recognizing the KTX2 compressed image as a texture object is handled. (#6139) 2025-05-08 21:28:30 +02:00
Kim Kulling 327afe0183 Fix crashes (#6138) 2025-05-07 23:40:53 +02:00
Kim KullingandKim Kulling 2056679e98 Fix: Support uint16 indices in OpenGEX as well (#6137)
Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
2025-05-07 10:15:54 +02:00
Qingyou ZhaoandKim Kulling af352d6f7c Fix a bug where string erases throws out of range (#6135)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-06 23:33:28 +02:00
Qingyou Zhao 0dafa03ff8 Fix a out of bound buffer access in ParsingUtils GetNextLine (#6134) 2025-05-06 07:48:09 +02:00
Kim KullingandKim Kulling d1b73dffec Replace exception by error in log (#6133)
* Replace exception by error in log

* Separate tests for new behaviour

---------

Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
2025-05-05 14:07:52 +02:00
kiroandKim Kulling b0e0ce5a28 support for cmake findpackage module mode (#6121)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-04 13:17:56 +02:00
Kim KullingandKim Kulling 0c02313893 Refactor (#6127)
* Refactor 3DS

---------

Co-authored-by: Kim Kulling <kim.kulling@draeger.com>
2025-05-03 11:46:10 +02:00
Matthias MöllerandKim Kulling 9182879e1f fix: possible Heap-based Buffer Overflow in ConvertToUTF8 function (#6122)
* fix: possible Heap-based Buffer Overflow in ConvertToUTF8 function

* Update BaseImporter.cpp

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2025-05-03 10:40:59 +02:00
Kim Kulling 275eca9535 Bugfix: Handling no of texture coordinates correctly (#6124)
- If the mesh supports more than 2 texture coordinates this was not handled correctly. Now the code will be able to deal with 2 or 3 coords and throws an exception if this value gets invalid.
- closes https://github.com/assimp/assimp/issues/3829
2025-04-29 20:03:58 +02:00
yuri@FreeBSD cb56793e16 fix: Fix build on armv6/armv7 (#6123) 2025-04-27 21:27:45 +02:00