Conversation
🤖 Augment PR SummarySummary: This PR bumps the vendored Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
| assert(false); | ||
| const sourcemeta::core::SchemaTransformRule::Result &, | ||
| const bool applied) -> void { | ||
| assert(applied); |
There was a problem hiding this comment.
SchemaTransformer::apply() can still call the callback for the final non-mutating rules pass (with the boolean argument set to false), so assert(applied) could trip in debug builds even though this is meant to be a no-op callback.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| -> std::size_t { | ||
| #if defined(__SIZEOF_INT128__) | ||
| const auto *parts = | ||
| reinterpret_cast<const std::uint64_t *>(&hash.a); // NOLINT |
There was a problem hiding this comment.
This reinterpret_cast<const std::uint64_t *>(&hash.a) reads a __uint128_t through a uint64_t*, which can violate strict-aliasing/alignment and is undefined behavior under optimization. Since this feeds WeakPointer hashing for unordered_* containers, any UB here can cause very hard-to-debug misbehavior.
Severity: high
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti jv@jviotti.com