diff options
author | Etienne Petrel <etienne.petrel@mongodb.com> | 2022-09-27 17:07:58 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-09-27 18:10:25 +0000 |
commit | b929ccd58eef0e2100c4ff287122fe43846562f5 (patch) | |
tree | b0cd704dae084526789dd59b8694043ddb3e0a08 | |
parent | 31120c1c588d0f7b998842ea529fa613d3a45486 (diff) | |
download | mongo-b929ccd58eef0e2100c4ff287122fe43846562f5.tar.gz |
Import wiredtiger: 441b9a3769271ac32088dce23e1b9a4c10c31790 from branch mongodb-master
ref: 4afd038167..441b9a3769
for: 6.2.0-rc0
WT-9676 Coverity analysis defect 126347/123712: Resource leak (#8303)
-rw-r--r-- | src/third_party/wiredtiger/ext/storage_sources/dir_store/dir_store.c | 11 | ||||
-rw-r--r-- | src/third_party/wiredtiger/import.data | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/third_party/wiredtiger/ext/storage_sources/dir_store/dir_store.c b/src/third_party/wiredtiger/ext/storage_sources/dir_store/dir_store.c index 390f4866466..5c70b5701b7 100644 --- a/src/third_party/wiredtiger/ext/storage_sources/dir_store/dir_store.c +++ b/src/third_party/wiredtiger/ext/storage_sources/dir_store/dir_store.c @@ -318,9 +318,12 @@ dir_store_get_directory(const char *home, const char *s, ssize_t len, bool creat dirname = strndup(s, (size_t)len + 1); /* Room for null */ else { buflen = (size_t)len + strlen(home) + 2; /* Room for slash, null */ - if ((dirname = malloc(buflen)) != NULL) - if (snprintf(dirname, buflen, "%s/%.*s", home, (int)len, s) >= (int)buflen) + if ((dirname = malloc(buflen)) != NULL) { + if (snprintf(dirname, buflen, "%s/%.*s", home, (int)len, s) >= (int)buflen) { + free(dirname); return (EINVAL); + } + } } if (dirname == NULL) return (ENOMEM); @@ -398,8 +401,10 @@ dir_store_path(WT_FILE_SYSTEM *file_system, const char *dir, const char *name, c len = strlen(dir) + strlen(name) + 2; if ((p = malloc(len)) == NULL) return (dir_store_err(FS2DS(file_system), NULL, ENOMEM, "dir_store_path")); - if (snprintf(p, len, "%s/%s", dir, name) >= (int)len) + if (snprintf(p, len, "%s/%s", dir, name) >= (int)len) { + free(p); return (dir_store_err(FS2DS(file_system), NULL, EINVAL, "overflow sprintf")); + } *pathp = p; return (ret); } diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data index 06b0b9dc3fe..02b9d0f7a4b 100644 --- a/src/third_party/wiredtiger/import.data +++ b/src/third_party/wiredtiger/import.data @@ -2,5 +2,5 @@ "vendor": "wiredtiger", "github": "wiredtiger/wiredtiger.git", "branch": "mongodb-master", - "commit": "4afd038167adcdefefc2a8673f355d941226517f" + "commit": "441b9a3769271ac32088dce23e1b9a4c10c31790" } |