KhronosGroup / KhronosGroup/COLLADA2GLTF

Add bounds checks for memory access to COLLADA accessors

Open
#194 9 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
573
Forks
154
PR merge metrics
No merged PRs in 30d

Description

COLLADA2GLTF-bin.exe sometimes results in return code -1073741819.

Case 1 at cmd.exe prompt:
```
> "pathToRelease\COLLADA2GLTF-bin.exe" -i "pathToInput.dae" -o "pathToOutput.gltf" -v 2.0
Converting pathToInput.dae -> pathToOutput.gltf
> echo ReturnCode=%ERRORLEVEL%
ReturnCode=-1073741819
```

Case 2 at cmd.exe prompt:
```
> cmd /V:ON /c ""pathToRelease\COLLADA2GLTF-bin.exe" -i "pathToInput.dae" -o "pathToOutput.gltf" -v 2.0 & echo ReturnCode=!ERRORLEVEL!"
Converting pathToInput.dae -> pathToOutput.gltf
ReturnCode=-1073741819
```

Odd things are:
1) it does not always happen.
2) it happens only for certain files.
3) the probability of happening depends on how you call it. (The case 2 above is more likely to result in an error than the case 1.)

If I use PowerShell, the same thing happens:

Case 3 at PowerShell prompt:
```
> & pathToRelease\COLLADA2GLTF-bin.exe -i "pathToInput.dae" -o "pathToOutput.gltf" -v 2.0 ; Write-Host "ReturnCode=$lastExitCode"
Converting pathToInput.dae -> pathToOutput.gltf
ReturnCode=-1073741819
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the failure with the COLLADA2GLTF-bin.exe command examples and an input that triggers it. Trace the COLLADA accessor memory accesses and identify where bounds checks are missing. Done means affected inputs no longer cause the reported return code and the converter handles invalid accessor ranges safely.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.