Sync two upstream decoder limit fixes into the vendored azure-uamqp-c
メンテナーはふだん 1 日以内に返信
@j7nw4r がすでに取り組んでいます。
2026年8月17日 から。
評価
この issue はまだ評価されていません。
説明
Summary
The vendored copy of azure-uamqp-c does not carry two decoder fixes that upstream merged on 2026-05-19. Both fixes bound the resources that the AMQP value decoder gives to one input. Cherry-pick both into sdk/core/azure-core-amqp/src/impl/uamqp/vendor/azure-uamqp-c.
Motivation
The AMQP value decoder reads data from the network, so a bound on its resource use protects every caller of the uAMQP transport.
Upstream #479 extends the existing 100 MB allocation guard to the vbin32, str32, and sym32 decode paths. The vendored src/amqpvalue.c defines MAX_AMQPVALUE_MALLOC_SIZE_BYTES at line 17 and reads it only at line 6456, which is the list32 path.
Upstream #478 caps decoder nesting at 128 levels, so a deeply nested described value, list, map, or array cannot drive unbounded recursion. The vendored copy defines no MAX_DECODER_DEPTH.
The C++ SDK ships the uAMQP transport today. A move to the Rust transport does not remove this code from a consumer that still selects uAMQP.
Proposal
- Cherry-pick upstream #479 into the vendored
src/amqpvalue.c, with the three unit tests that it adds. - Cherry-pick upstream #478 into the vendored decoder, with the unit tests that it adds.
- Keep the rest of upstream master out of this change. Upstream also migrated its dependencies and reworked its CI, and neither one touches this repository.
- Upstream
version.txtreads 1.2.12, which matches the vendored copy, so no tagged release carries these fixes. A maintainer must decide whether this repository takes a cherry-pick from upstream master.
Validation
PR #7324 built the vendored library on every cpp - core - ci matrix leg with DISABLE_RUST_IN_BUILD on. That run reported no compiler warning and no error for the vendored tree, so it is the baseline for this change.
- 主要言語
- C++
- スター
- 206
- フォーク
- 178
- 平均マージ
- 2日 15時間
- マージ済み PR(30日)
- 33
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Azure/azure-sdk-for-cpp のほかの issue
-
bug EngSys
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Azure/azure-sdk-for-cpp#7362 ·
メンテナーはふだん 1 日以内に返信
-
Client needs-team-attention Service Attention Storage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Azure/azure-sdk-for-cpp#7347 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Client Event Hubs needs-team-attention Service Attention
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Azure/azure-sdk-for-cpp#7333 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Azure Storage STG105 Feature Tests再び着手できるかも @Jinming-Hu が 29 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンClient Storage
Azure/azure-sdk-for-cpp#7449 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Azure.Core bug test-enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
Azure/azure-sdk-for-cpp#7401 ·
メンテナーはふだん 1 日以内に返信
Azure/azure-sdk-for-cpp の issue をすべて見る
似ている issue
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
EchoTools/nevr-runtime#2042 ·
メンテナーはふだん 1 日以内に返信
-
Download size and speed show scientific notation between 1000 and 1023 units対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1時間未満 初心者へのやさしさ 88/100
kiwix/kiwix-desktop#1570 ·
メンテナーはふだん 1 日以内に返信
-
Device Request
難易度 2/5 半日 初心者へのやさしさ 62/100
dresden-elektronik/deconz-rest-plugin#8686 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
aminya/project_options#303 ·