2025年1月23日宣布的变更
Protocol Buffers 于 2025年1月23日宣布的变更。
使 Java gencode 失效
我们正在向 25.x 分支打补丁,这将使在 3.21.7 版本之前创建的 Java gencode 失效。然后,我们将把 3.21.7 到 3.25.5 版本的所有 Java protobuf 标记为受 footmitten CVE 漏洞影响。
在打入此更改补丁后,除非设置系统属性 “-Dcom.google.protobuf.use_unsafe_pre22_gencode
”,否则 protobuf 将从 makeExtensionsImmutable
方法抛出 UnsupportedOperationException
。如果无法立即更新代码,使用此系统属性可以争取一些时间,但这应被视为一个短期权宜之计。
使 MSVC + Bazel 组合失效
我们将在 v34 版本中放弃对同时使用 Bazel 和 MSVC 的支持。从 v30 版本开始,除非您指定选择退出标志 --define=protobuf_allow_msvc=true
以抑制错误,否则我们将使这种组合失效并报错。
MSVC 的路径长度限制与 Bazel 的沙箱机制相结合,导致同时支持变得越来越困难。与其随机破坏将 protobuf 安装到长路径的用户,我们不如完全禁止在 Bazel 中使用 MSVC。我们将继续支持通过 CMake 使用 MSVC,并开始支持通过 Bazel 使用 clang-cl。如需任何反馈或讨论,请参阅 https://github.com/protocolbuffers/protobuf/issues/20085。