From b0c9fc3201fefcaba6643f4ac2c77ffdc4e0155c Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 16 Aug 2020 15:32:09 +0800 Subject: [PATCH 1/3] fix bug --- src/tsdb/src/tsdbMain.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index dd647ddd9b..733bca6af5 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -246,22 +246,18 @@ uint32_t tsdbGetFileInfo(TSDB_REPO_T *repo, char *name, uint32_t *index, uint32_ } } strcpy(name, fname + prefixLen); - } else { // get the named file at the specified index. If not there, return 0 + } else { // get the named file at the specified index. If not there, return 0 + fname = malloc(prefixLen + strlen(name) + 2); + sprintf(fname, "%s/%s", prefix, name); + if (access(fname, F_OK) != 0) return 0; if (*index == TSDB_META_FILE_INDEX) { // get meta file - fname = malloc(prefixLen + strlen(name) + 2); - sprintf(fname, "%s/%s", prefix, name); tsdbGetStoreInfo(fname, &magic, size); - taosFree(fname); - taosFree(sdup); - return magic; } else { - fname = malloc(prefixLen + strlen(name) + 2); - sprintf(fname, "%s/%s", prefix, name); tsdbGetFileInfoImpl(fname, &magic, size); - taosFree(fname); - taosFree(sdup); - return magic; } + taosFree(fname); + taosFree(sdup); + return magic; } if (stat(fname, &fState) < 0) { From df288e779e5e64b05d56878f4109a8bde03f1084 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 16 Aug 2020 15:35:51 +0800 Subject: [PATCH 2/3] fix sync memory leak --- src/tsdb/src/tsdbMain.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index 733bca6af5..e2d7d03eda 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -249,7 +249,11 @@ uint32_t tsdbGetFileInfo(TSDB_REPO_T *repo, char *name, uint32_t *index, uint32_ } else { // get the named file at the specified index. If not there, return 0 fname = malloc(prefixLen + strlen(name) + 2); sprintf(fname, "%s/%s", prefix, name); - if (access(fname, F_OK) != 0) return 0; + if (access(fname, F_OK) != 0) { + taosFree(fname); + taosFree(sdup) + return 0; + } if (*index == TSDB_META_FILE_INDEX) { // get meta file tsdbGetStoreInfo(fname, &magic, size); } else { From 051d2c33c64b96b728ee60a01aa77ae1f2b6c8fe Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 16 Aug 2020 15:37:12 +0800 Subject: [PATCH 3/3] fix compile error --- src/tsdb/src/tsdbMain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index e2d7d03eda..bc979cca84 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -251,7 +251,7 @@ uint32_t tsdbGetFileInfo(TSDB_REPO_T *repo, char *name, uint32_t *index, uint32_ sprintf(fname, "%s/%s", prefix, name); if (access(fname, F_OK) != 0) { taosFree(fname); - taosFree(sdup) + taosFree(sdup); return 0; } if (*index == TSDB_META_FILE_INDEX) { // get meta file