Repository navigation
fix(vendor): sync core/eos to eos dc13c59 for its security fixes; reconcile three stale files - #183
Merged
srpatcha merged 1 commit intoOct 7, 2026
Conversation
…oncile three stale files core/eos was pinned to eos 5544c98 (2026-08-28) and missed fixes merged since. Bring the vendored tree to eos dc13c59: - 62 files that matched the old pin take their upstream version, among them drivers/devicetree (d41fa55: bounds-check untrusted DTB input) and services/ota (2a37b3d, 7f6ad00: no update without an authenticator, no wrapping chunk length). backends/include/eos/backend.h moved upstream to include/eos/backend.h and is removed here. - 20 upstream files the updated CMakeLists now reference are vendored as-is: services/gps, ed25519 under services/crypto, core shell_cmd, the POSIX os_adapter and hal_win32.c. - Three drifted files were older than the pin, not ebuild changes, and take upstream: hal/src/hal_rtos.c, tests/test_ota.c and services/security/src/security.c (which never opened pubkey_path, so secure boot verified against no key; upstream also guards NULL paths). - The local root CMakeLists.txt (already drifted) gets upstream's HAL backend selection: the backend source and EOS_HAL_BACKEND_* now come from one decision, which the updated hal_common.c needs to link. - tests/test_devicetree.c is vendored and registered. core/UPSTREAM.yaml: revision dc13c59, baseline_drift 44 -> 41. Closes embeddedos-org#182
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Member
|
Verified on WSL (Ubuntu 20.04) before merge: |
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.
Closes #182
Problem
core/eos/was pinned to eos5544c98and missed the eos security fixes merged since then (#182):Three files that
baseline_driftcounted as ebuild drift were in fact older than the pin.Changes
One commit, 86f8c03. Pin:
5544c98→dc13c59.drivers/devicetree,services/ota,services/crypto,hal,backends,core, docs and tests.backends/include/eos/backend.h. Upstream moved it toinclude/eos/backend.h, which is among the 62.services/gps, ed25519 underservices/crypto,core/src/shell_cmd.c,services/compat/src/os_adapter_posix.c,hal/src/hal_win32.c), plustests/test_devicetree.c. Nothing else from upstream was added.hal/src/hal_rtos.c,tests/test_ota.c,services/security/src/security.ctake upstream. Each local copy was older than the pin;security.clacked the public-key load that the pin already had.CMakeLists.txt: upstream's HAL backend selection (EOS_HAL_BACKEND_*), which the updatedhal_common.cneeds to link.tests/CMakeLists.txt: registerstest_devicetree.core/UPSTREAM.yaml:baseline_driftgoes 44 → 41.Verification
Run on macOS (arm64) at 86f8c03. The local SDK 27 linker cannot read its own
libSystem.tbd(ld: tapi error: malformed file, which also breaks master), so the C builds use-DCMAKE_OSX_SYSROOT=…/MacOSX26.5.sdk.ecd7376scripts/check_vendor_drift.pycmake -S core/eos -DEOS_BUILD_TESTS=ON+ buildctesttest_devicetree)tests/test_devicetree.cagainst the vendored parser, ASan+UBSanheap-buffer-overflow … in be32;index 4294967292 out of bounds for type 'const uint8_t[256]';signed integer overflow: 1073741824 * 4pytest(whole repo)ld: tapi errorfrom the SDK 27 linkerpytestwithSDKROOT=…/MacOSX26.5.sdkThe intermediate states I hit along the way show why each part is needed:
add_subdirectory given source "gps"doesn't exist.Undefined symbols: "_eos_hal_rtos_register". That is the bug upstream fixed in its root CMakeLists.test_otaaborts, because the stale test applies an unsigned update.test_securitysegfaults, because the stalesecurity.chas no NULL guard beforestrncpy.This is a fork PR, so the workflows need a maintainer's approval to run.