Sync two upstream decoder limit fixes into the vendored azure-uamqp-c
Maintainer thường phản hồi trong vòng 1 ngày
@j7nw4r đang làm issue này rồi.
Từ ngày 17/8/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
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.
- Ngôn ngữ chính
- C++
- Star
- 206
- Fork
- 178
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 33
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Azure/azure-sdk-for-cpp
-
bug EngSys
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Azure/azure-sdk-for-cpp#7362 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Client needs-team-attention Service Attention Storage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Azure/azure-sdk-for-cpp#7347 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Client Event Hubs needs-team-attention Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Azure/azure-sdk-for-cpp#7333 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Azure Storage STG105 Feature TestsCó thể làm lại được @Jinming-Hu đã nhận 31 ngày trước và không có pull request nào đang mở. Đang mởClient Storage
Azure/azure-sdk-for-cpp#7449 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Azure.Core bug test-enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 66/100
Azure/azure-sdk-for-cpp#7401 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Azure/azure-sdk-for-cpp
Issue tương tự
-
enhancement third-party
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
pocoproject/poco#5656 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
Type: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
QuantStack/git2cpp#203 ·
Maintainer thường phản hồi trong vòng 1 ngày