-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mc: increase utf8 scanning limit for longstr conversions. #11715
Conversation
The AMQP 0.9.1 longstr type is problematic as it can contain arbitrary binary data but is typically used for utf8 by users. The current conversion into AMQP avoids scanning arbitrarily large longstr to see if they only contain valid utf8 by treating all longstr data longer than 255 bytes as binary. This is in hindsight too strict and thus this commit increases the scanning limit to 4096 bytes - enough to cover the vast majority of AMQP 0.9.1 header values. This change also conversts the AMQP binary types into longstr to ensure that existing data (held in streams for example) is converted to an AMQP 0.9.1 type most likely what the user intended.
... that's perfectly fine since according to the AMQP 0.9.1 spec:
|
Looks like if both labels are set, our greatly simplified Mergify backporting setup does nothing 😅 @Mergifyio backport v4.0.x v3.13.x |
@Mergifyio backport v4.0.x v3.13.x |
✅ Backports have been created
|
mc: increase utf8 scanning limit for longstr conversions. (backport #11715)
mc: increase utf8 scanning limit for longstr conversions. (backport #11715)
Update the test conversion from amqp 091 to stream due of rabbitmq/rabbitmq-server#11715 Signed-off-by: Gabriele Santomaggio <g.santomaggio@gmail.com>
* Update RabbitMQ version and the test * Update the test conversion from amqp 091 to stream due of rabbitmq/rabbitmq-server#11715 --------- Signed-off-by: Gabriele Santomaggio <g.santomaggio@gmail.com>
The AMQP 0.9.1 longstr type is problematic as it can contain arbitrary binary data but is typically used for utf8 by users.
The current conversion into AMQP avoids scanning arbitrarily large longstr to see if they only contain valid utf8 by treating all longstr data longer than 255 bytes as binary. This is in hindsight too strict and thus this commit increases the scanning limit to 4096 bytes - enough to cover the vast majority of AMQP 0.9.1 header values.
This change also conversts the AMQP binary types into longstr to ensure that existing data (held in streams for example) is converted to an AMQP 0.9.1 type most likely what the user intended.