diff --git a/tests/army/tools/taosdump/native/taosdumpCommandline.py b/tests/army/tools/taosdump/native/taosdumpCommandline.py index c43ea0e9e7..a3ee8e55ed 100644 --- a/tests/army/tools/taosdump/native/taosdumpCommandline.py +++ b/tests/army/tools/taosdump/native/taosdumpCommandline.py @@ -214,6 +214,27 @@ class TDTestCase(TBase): self.checkExcept(taosdump + f" -t 2 -k 2 -z 1 -C https://not-exist.com:80/cloud -D test -o {tmpdir}") self.checkExcept(taosdump + f" -P 65536") + # password + def checkPassword(self, tmpdir): + # 255 char max password + pwd = "" + pwdFile = "cmdline/data/pwdMax.txt" + with open(pwdFile) as file: + pwd = file.readline() + + sql = f"create user dkj pass '{pwd}' " + tdSql.execute(sql) + + cmds = [ + f"-udkj -p{pwd} -D test -o {tmpdir}", # command pass + f"-udkj -p < {pwdFile} -D test -o {tmpdir}" # input pass + ] + + for cmd in cmds: + self.clearPath(tmpdir) + rlist = self.taosdump(cmd) + self.checkListString(rlist, "OK: Database test dumped") + # run def run(self): @@ -249,6 +270,12 @@ class TDTestCase(TBase): self.dumpInOutMode("", db , json, tmpdir) tdLog.info("4. native varbinary geometry ........................... [Passed]") + # + # long password + # + self.checkPassword(tmpdir) + tdLog.info("5. check long password ................................. [Passed]") + def stop(self): tdSql.close() diff --git a/tools/taos-tools/inc/bench.h b/tools/taos-tools/inc/bench.h index c413d953b7..17e381ffb5 100644 --- a/tools/taos-tools/inc/bench.h +++ b/tools/taos-tools/inc/bench.h @@ -152,7 +152,7 @@ typedef unsigned __int32 uint32_t; #define MAX_JSON_BUFF 6400000 -#define INPUT_BUF_LEN 256 +#define INPUT_BUF_LEN 512 #define EXTRA_SQL_LEN 256 #define DATATYPE_BUFF_LEN (TINY_BUFF_LEN * 3) #define SML_MAX_BATCH 65536 * 32 diff --git a/tools/taos-tools/inc/dump.h b/tools/taos-tools/inc/dump.h index b21dca4343..b76727fbef 100644 --- a/tools/taos-tools/inc/dump.h +++ b/tools/taos-tools/inc/dump.h @@ -39,6 +39,7 @@ #include #include #include +#include #ifdef WEBSOCKET #include @@ -336,7 +337,7 @@ typedef struct arguments { // connection option char *host; char *user; - char password[SHELL_MAX_PASSWORD_LEN]; + char password[TSDB_USET_PASSWORD_LONGLEN]; uint16_t port; // strlen(taosdump.) +1 is 10 char outpath[DUMP_DIR_LEN]; diff --git a/tools/taos-tools/inc/toolsdef.h b/tools/taos-tools/inc/toolsdef.h index ed17380251..b9c0c889ad 100644 --- a/tools/taos-tools/inc/toolsdef.h +++ b/tools/taos-tools/inc/toolsdef.h @@ -77,7 +77,7 @@ extern "C" { #define TSDB_DEFAULT_PASS "taosdata" #define TSDB_PASS_LEN 129 -#define SHELL_MAX_PASSWORD_LEN TSDB_PASS_LEN + #define TSDB_TIME_PRECISION_MILLI 0 #define TSDB_TIME_PRECISION_MICRO 1 diff --git a/tools/taos-tools/src/taosdump.c b/tools/taos-tools/src/taosdump.c index 35fae99c6a..e26d14aae1 100644 --- a/tools/taos-tools/src/taosdump.c +++ b/tools/taos-tools/src/taosdump.c @@ -784,8 +784,7 @@ static void parse_args( } setConsoleEcho(true); } else { - tstrncpy(arguments->password, (char *)(argv[i] + 2), - SHELL_MAX_PASSWORD_LEN); + strcpy(arguments->password, (char *)(argv[i] + 2)); strcpy(argv[i], "-p"); } } else if (strcmp(argv[i], "-n") == 0) {