Downstream 1.4.356#128
Merged
Merged
Conversation
Because the functions are non-global, to enable proper threaded test execution, they must be initialized per InstWrapper.
This improves performance slightly by reducing the amount of symbols that need to be resolved in calls to dlopen.
Requires adding locks to various components of the test framework that need to support multiple calls to it simultaneously.
All mutexes are now recursive and can be acquired in the same thread. And loader_global_instance_list_lock was removed as it masked the underlying synchronization problems. The fundamental sync problem is that vkCreateInstance and vkCreateDevice must call down the chain to fill out the dispatch tables and during this it must search through the global list of instances/devices. With recursive mutexes, we do not need to do anything special to guarantee that walking the global lists are safe when occurring inside of vkCreateInstance/vkCreateDevice and outside of those calls. This commit adds a new threading test which exercises the debug utils naming functions. It also enables the threading tests to run during regular runs, and adds a github action CI job which enables the thread sanitizer.
Need to only use the mutex after initialization .
In debug mode, address sanitizer reports errors that are false positives when loading a library with dlopen for the second time.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.3 to 4.32.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@9e907b5...89a39a4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.32.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
x11 depends on xorgproto headers. Use `X11_INCLUDE_DIRS` populated by pkg_check_modules properly add the xproto headers to the include search path, because `X11_INCLUDE_DIRS` also takes care of the transitive dependencies, while the original `includedir` variable doesn't. The same applies to the xrandr headers.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.4 to 4.32.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@89a39a4...0d579ff) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.32.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.6 to 4.33.0. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@0d579ff...b1bff81) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.33.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…hecks Fix deduplicate layer logic when multiple layers added by a single manifest in `loader_add_layer_properties`. Also fix missing fields in settings equality checks.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.33.0 to 4.34.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@b1bff81...3869755) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.34.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.34.1 to 4.35.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@3869755...c10b806) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.1 to 4.35.2. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@c10b806...95e58e9) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.2 to 4.35.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@95e58e9...e46ed2c) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
- Add REUSE.toml with copyright and license annotations for all 279 files - Create custom license texts: LicenseRef-KhronosFreeUse and LicenseRef-dirent - Document license exceptions in LICENSE_EXCEPTIONS.md - Add GitHub workflow for automated REUSE compliance checks - Download missing MIT license to LICENSES/ Achieves REUSE 3.3 specification compliance.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.3 to 4.35.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@e46ed2c...68bde55) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
The *2KHR emulation terminators size a temporary array and the caller's output array from the input count, but bound the copy loop by the count the legacy ICD entrypoint writes back. A driver reporting more entries than the caller allocated then copies past both arrays. Snapshot the allocated count before the call and clamp each copy, matching the existing clamp in vkEnumerateDeviceExtensionProperties.
*pNextIndex is only assigned on the success path, so the error rollback read an indeterminate value (and dereferenced NULL when the pNextIndex allocation itself failed). Release the reserved slot with next_index, the same local the ICD destroy loop above already uses, and only when a slot was actually reserved.
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
The continuation-byte scan only stops at max_length, not at the string's null terminator, so a name ending in a lone multi-byte lead byte makes it read past the terminator, up to MaxLoaderStringLength bytes beyond the buffer. Stop the scan when a null is seen inside a sequence and report it as bad data.
The per-ICD physical_devices scratch array is sized from the first EnumeratePhysicalDevices query, then the fill call re-uses the same device_count as the in/out parameter. The allocated size was never kept, so a driver reporting a larger count on the fill call than on the sizing call drove the consume loop past the end of the stack array. Snapshot the allocated count and clamp device_count back to it.
This can cause a stack overflow if a meta layer enables another meta layer that enables itself. The stack overflow was found by OSS-Fuzz
|
|
8325a64 to
1678eb6
Compare
995dc5d to
8541387
Compare
5e275ef to
c0cbea0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Vulkan-Loader-1.4.356.patch