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

Reply via email to