From 42c54402b4d3b8d8f993c1a9597a57c294f9d4d2 Mon Sep 17 00:00:00 2001 From: afwerar <1296468573@qq.com> Date: Fri, 16 Sep 2022 11:49:01 +0800 Subject: [PATCH] os: special file name error --- source/os/src/osDir.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/source/os/src/osDir.c b/source/os/src/osDir.c index 3dfb1458ad..cc0e812df5 100644 --- a/source/os/src/osDir.c +++ b/source/os/src/osDir.c @@ -265,9 +265,21 @@ void taosRemoveOldFiles(const char *dirname, int32_t keepDays) { int32_t taosExpandDir(const char *dirname, char *outname, int32_t maxlen) { wordexp_t full_path; - if (0 != wordexp(dirname, &full_path, 0)) { - printf("failed to expand path:%s since %s", dirname, strerror(errno)); - wordfree(&full_path); + switch (wordexp (dirname, &full_path, 0)) { + case 0: + break; + case WRDE_NOSPACE: + wordfree (&full_path); + // printf("failed to expand path:%s since Out of memory\n", dirname); + return -1; + case WRDE_BADCHAR: + // printf("failed to expand path:%s since illegal occurrence of newline or one of |, &, ;, <, >, (, ), {, }\n", dirname); + return -1; + case WRDE_SYNTAX: + // printf("failed to expand path:%s since Shell syntax error, such as unbalanced parentheses or unmatched quotes\n", dirname); + return -1; + default: + // printf("failed to expand path:%s since %s\n", dirname, strerror(errno)); return -1; } -- GitLab