From 4ef8676aaf20c8a7ffbdec5f9bf930199171ace3 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Wed, 2 Nov 2022 17:11:12 +0800 Subject: [PATCH] fix: invalid read of tsdb path --- include/os/osDef.h | 10 ---------- include/os/osFile.h | 10 ++++++++++ source/dnode/vnode/src/tsdb/tsdbOpen.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/os/osDef.h b/include/os/osDef.h index f5a79934bf..297d19e21a 100644 --- a/include/os/osDef.h +++ b/include/os/osDef.h @@ -244,16 +244,6 @@ void syslog(int unused, const char *format, ...); #define TD_CHARSET_LEN 64 #define TD_TIMEZONE_LEN 96 -#ifdef WINDOWS -#define TD_PATH_MAX _MAX_PATH -#elif defined(PATH_MAX) -#define TD_PATH_MAX PATH_MAX -#elif defined(_XOPEN_PATH_MAX) -#define TD_PATH_MAX _XOPEN_PATH_MAX -#else -#define TD_PATH_MAX _POSIX_PATH_MAX -#endif - #ifdef __cplusplus } #endif diff --git a/include/os/osFile.h b/include/os/osFile.h index 21e3d2e6cf..f6759d19a7 100644 --- a/include/os/osFile.h +++ b/include/os/osFile.h @@ -42,6 +42,16 @@ extern "C" { #define PATH_MAX 256 #endif +#ifdef WINDOWS +#define TD_PATH_MAX _MAX_PATH +#elif defined(PATH_MAX) +#define TD_PATH_MAX PATH_MAX +#elif defined(_XOPEN_PATH_MAX) +#define TD_PATH_MAX _XOPEN_PATH_MAX +#else +#define TD_PATH_MAX _POSIX_PATH_MAX +#endif + typedef struct TdFile *TdFilePtr; #define TD_FILE_CREATE 0x0001 diff --git a/source/dnode/vnode/src/tsdb/tsdbOpen.c b/source/dnode/vnode/src/tsdb/tsdbOpen.c index ffeaea0ce9..e109edca11 100644 --- a/source/dnode/vnode/src/tsdb/tsdbOpen.c +++ b/source/dnode/vnode/src/tsdb/tsdbOpen.c @@ -38,7 +38,7 @@ int tsdbOpen(SVnode *pVnode, STsdb **ppTsdb, const char *dir, STsdbKeepCfg *pKee int slen = 0; *ppTsdb = NULL; - slen = strlen(pVnode->path) + strlen(dir) + 3; + slen = TD_PATH_MAX; if (slen > TD_PATH_MAX) { terrno = TSDB_CODE_OUT_OF_RANGE;