glibc 2.41 changes the rules for executable stacks
engineeringcglibcruntimec23glibc 2.41 stops dynamically loaded libraries from making a non-executable stack executable and adds the C23 pi-scaled trigonometric functions.
Notes on building observable systems and operating them at scale.
glibc 2.41 stops dynamically loaded libraries from making a non-executable stack executable and adds the C23 pi-scaled trigonometric functions.
Two ambient PeerAuthentication fixes address opposite failures in policy evaluation. Multiple strict ports could become permissive, while port exceptions could remain overly strict.
Relative flake inputs now resolve within the referring source tree. The lock-file change removes redundant source locking while introducing a compatibility boundary for older Nix clients.
The Enhancements subproject explains how design proposals connect feature ownership to release tracking. Production readiness review makes failure behavior part of the design.
Perl 5.40.1 restores strftime string conversion and repairs UTF-8 validation and regex compilation cleanup. The fixes explain how familiar Perl operations depend on interpreter ownership rules.
January's security release repairs HTTP redirect credential handling and URI certificate constraints. Both fixes depend on preserving the meaning of a trust boundary across parsing and repeated operations.
Ruby 3.3.7 fixes a Method hash invariant and a regex timeout cleanup failure. Both show how runtime maintenance preserves the behavior expected by ordinary Ruby code.
Swift has accepted a direction for optional strict memory safety. The difficult work lies in safe interfaces over unsafe implementations and in describing the lifetimes of imported memory.
SQLite 3.48.0 reduces the dependencies needed to build from canonical sources. The change preserves the configure interface while separating ordinary builds from Tcl-dependent development work.
Dragonfly 1.26.1 corrects bulk-string framing, RESP3 handling and reverse-list iteration. Tiering fixes address pending writes and free-space bookkeeping.
P3500 separates correctness assertions from language safety guarantees. Its examples show why enforcement and valid predicate evaluation are independent requirements.
Docker 27.5 fixes an omitted-value parsing error in build garbage collection and repairs tarball build contexts in the containerd worker.
Strict provenance APIs distinguish an address from permission to access an allocation. Rust 1.84 also lets Cargo consider a package's supported compiler version when selecting dependencies.
OpenTofu 1.9 adds provider for_each for regional deployments. Its design preserves static dependencies and makes provider lifetime an explicit part of deprovisioning.
A snapshot restore could reopen SQLite without its configured extensions. rqlite 8.36.4 preserves the driver across that replacement.
The native Kafka client's maintenance release repairs certificate-chain handling, optional client authentication, and socket configuration timing.
Node.js 23.6 executes a restricted TypeScript subset without an opt-in flag. Whitespace-preserving type erasure removes a transformation step while leaving checking and module semantics as separate responsibilities.
Valkey 8.0.2 fixes a Lua remote-code-execution vulnerability and malformed ACL selectors. Its other memory-safety fixes show how garbage collection and defragmentation interact with server bookkeeping.
Anonymizer 2.0 combines a Rust implementation with role-based masking and ordinary pg_dump exports. Its upgrade and masking semantics deserve as much attention as the rewrite.
The memory backend gains segment coordination and fixes a mismatched lock-removal key. The regression test verifies that another segment can acquire replicas after release.
A session setting restores comparisons that stricter overload resolution rejected. Wire-protocol tests show why a parameter's declared type matters even when its text looks like a string.
Prism becomes the execution parser while YJIT gains broader memory accounting and modular GC separates collector implementations. The release also changes how socket connections make progress.
N3328 specifies cleanup tied to an enclosing block, with reverse lexical ordering and explicit control-flow restrictions. Its treatment of return expressions and abnormal exits defines the limits of the proposed guarantee.
Dragonfly 1.26 improves stream format compatibility and consumer activity reporting. It also fixes the metrics response header required by Prometheus 3.0 and separates cloud paths from local directories.
Valkey's December retrospective records a project that has moved beyond renaming its baseline. Shipped memory-layout and execution changes give that independence a technical meaning.
Experimental any/all operators avoid evaluating unnecessary predicates, while native classes gain generated setters with explicit return semantics.
CVE-2024-56128 exposes a missing nonce check in Kafka SCRAM authentication without TLS. The fix restores validation of the exchange, while TLS prevents the plaintext interception required for exploitation.
Istio's December security update repairs HTTP/1 lifecycle failures and address validation. The overload crash illustrates how an error-response path can assume request state that a previous reset has already removed.
Customer-defined netrc entries let a migration retain authenticated access to an old cache while Determinate Nix manages FlakeHub credentials.
Terraform 1.10.3 repairs a panic on the plan-encoding error path. The patch preserves a valid result container alongside the error, without treating incomplete encoding as success.