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);