dawn-cmake/generator
Austin Eng ba68620f6f Do not memcpy transparent wire structs on serialization
This removes a serialization optimization where structs could be
memcpy'ed. memcpy is still used for deserialization of structs.

Structs may contain padding bytes which when copied can leak
uninitialized data across a trusted boundary. In Chrome, this
means previously-written or uninitialized bytes in the GPU process
could leak into the Renderer process.

In the future, we may be able to bring this back by introducing
a concept of safe-to-memcpy structs, or by forking the code so
that Renderer->GPU process uses the unsafe memcpy, and
GPU->Renderer uses to the safe member-by-member version.

An alternative might be to ensure that everything returned from
the WebGPU API has initialized padding, but this invariant is not
trivial to guarantee.

Fixed: chromium:1359098
Change-Id: I91151251d1ab999e0f5552e1efccc472e451cc10
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102461
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-09-16 14:14:08 +00:00
..
templates Do not memcpy transparent wire structs on serialization 2022-09-16 14:14:08 +00:00
BUILD.gn tint->dawn: Move src/dawn_native -> src/dawn/native 2022-02-04 17:07:46 +00:00
CMakeLists.txt CMake: tweak third-party imports. 2022-05-16 09:11:21 +00:00
dawn_generator.gni Adds a generated file with the dawn git hash encoded at build time. 2022-03-31 05:09:04 +00:00
dawn_gpu_info_generator.py Make adapter info device matching more flexible 2022-08-02 22:14:35 +00:00
dawn_json_generator.py Rename CacheKey-related files to Stream 2022-07-29 00:36:21 +00:00
dawn_version_generator.py Fix incorrect indentation in version generator script. 2022-06-23 01:14:24 +00:00
extract_json.py Avoid unnecessary recompiles with code generators. 2021-03-23 19:06:02 +00:00
generator_lib.gni Add .clang-format files and format more files 2020-07-15 19:51:17 +00:00
generator_lib.py Adds strformat code-gen for helping auto-generate readable strings for structs. 2022-03-19 00:21:48 +00:00
opengl_loader_generator.py tint->dawn: Move src/dawn_native -> src/dawn/native 2022-02-04 17:07:46 +00:00
remove_files.py Revert "remove_files.py: Print warnings on removals" 2022-06-14 00:04:55 +00:00