Sync two upstream decoder limit fixes into the vendored azure-uamqp-c
Los mantenedores suelen responder en 1 día
@j7nw4r ya está trabajando en esto.
Desde el 17/8/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 206
- Forks
- 178
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 33
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Azure/azure-sdk-for-cpp
-
bug EngSys
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Azure/azure-sdk-for-cpp#7362 ·
Los mantenedores suelen responder en 1 día
-
Client needs-team-attention Service Attention Storage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Azure/azure-sdk-for-cpp#7347 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Client Event Hubs needs-team-attention Service Attention
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Azure/azure-sdk-for-cpp#7333 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Azure Storage STG105 Feature TestsPosiblemente ocupada @Jinming-Hu la tomó hace 27 días. AbiertoClient Storage
Azure/azure-sdk-for-cpp#7449 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Azure.Core bug test-enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
Azure/azure-sdk-for-cpp#7401 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Azure/azure-sdk-for-cpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
pocoproject/poco#5626 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Issue-Bug Needs-Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
microsoft/winget-cli#6645 ·
Los mantenedores suelen responder en 2 días
-
cleanup help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ESPresense/ESPresense#2602 ·
Los mantenedores suelen responder en 1 día