From 985c4a3f508f847326765eeea2070729c1056756 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Wed, 13 Mar 2024 21:25:52 +0800 Subject: [PATCH] [fix](mysql) Fix Connection Attributes Parsing Logic for Compatibility (#32177) --- .../main/java/org/apache/doris/mysql/MysqlAuthPacket.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlAuthPacket.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlAuthPacket.java index b112850b39..cf196f82be 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlAuthPacket.java +++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlAuthPacket.java @@ -104,8 +104,9 @@ public class MysqlAuthPacket extends MysqlPacket { // attribute map, no use now. if (buffer.remaining() > 0 && capability.isConnectAttrs()) { connectAttributes = Maps.newHashMap(); - long numPair = MysqlProto.readVInt(buffer); - for (long i = 0; i < numPair; ++i) { + long attrsLength = MysqlProto.readVInt(buffer); + long initialPosition = buffer.position(); + while (buffer.position() - initialPosition < attrsLength) { String key = new String(MysqlProto.readLenEncodedString(buffer)); String value = new String(MysqlProto.readLenEncodedString(buffer)); connectAttributes.put(key, value);