This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 7770bacf3d8 [To dev/1.3] Pipe: Added parameter check to handshake of
legacy receiver (#16596) (#16599)
7770bacf3d8 is described below
commit 7770bacf3d8a04bd4d4dea4d82694c137f48746e
Author: Caideyipi <[email protected]>
AuthorDate: Thu Oct 16 16:13:33 2025 +0800
[To dev/1.3] Pipe: Added parameter check to handshake of legacy receiver
(#16596) (#16599)
---
.../legacy/IoTDBLegacyPipeReceiverAgent.java | 23 +++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
index d8f8cd2ecbe..dc4f6192d52 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
@@ -98,11 +98,16 @@ public class IoTDBLegacyPipeReceiverAgent {
* TSStatusCode#SUCCESS_STATUS} if success to connect.
*/
public TSStatus handshake(
- TSyncIdentityInfo syncIdentityInfo,
- String remoteAddress,
- IPartitionFetcher partitionFetcher,
- ISchemaFetcher schemaFetcher) {
- SyncIdentityInfo identityInfo = new SyncIdentityInfo(syncIdentityInfo,
remoteAddress);
+ final TSyncIdentityInfo syncIdentityInfo,
+ final String remoteAddress,
+ final IPartitionFetcher partitionFetcher,
+ final ISchemaFetcher schemaFetcher) {
+ if (!validatePipeName(syncIdentityInfo)) {
+ return new TSStatus(TSStatusCode.ILLEGAL_PARAMETER.getStatusCode())
+ .setMessage("Invalid pipeName");
+ }
+
+ final SyncIdentityInfo identityInfo = new
SyncIdentityInfo(syncIdentityInfo, remoteAddress);
LOGGER.info("Invoke handshake method from client ip = {}",
identityInfo.getRemoteAddress());
if (!new File(getFileDataDir(identityInfo)).exists()) {
@@ -118,8 +123,12 @@ public class IoTDBLegacyPipeReceiverAgent {
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS, "");
}
- private void createConnection(SyncIdentityInfo identityInfo) {
- long connectionId = connectionIdGenerator.incrementAndGet();
+ private boolean validatePipeName(final TSyncIdentityInfo info) {
+ return info.isSetPipeName() &&
!info.getPipeName().contains(File.separator);
+ }
+
+ private void createConnection(final SyncIdentityInfo identityInfo) {
+ final long connectionId = connectionIdGenerator.incrementAndGet();
currentConnectionId.set(connectionId);
connectionIdToIdentityInfoMap.put(connectionId, identityInfo);
}