From f7d5828f084827f3011078a9c3ebb1cbf27cf148 Mon Sep 17 00:00:00 2001 From: Benoit Pierre Date: Mon, 12 Jun 2023 07:25:54 +0000 Subject: [PATCH] persist: fix possible leak on error (#10568) --- frontend/persist.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/persist.lua b/frontend/persist.lua index 391fa51a3..b2a559084 100644 --- a/frontend/persist.lua +++ b/frontend/persist.lua @@ -82,13 +82,11 @@ local codecs = { if not ok then return nil, "cannot serialize " .. tostring(t) .. " (" .. str .. ")" end - - local cbuff, clen = zstd.zstd_compress(str, #str) - local f = C.fopen(path, "wb") if f == nil then return nil, "fopen: " .. ffi.string(C.strerror(ffi.errno())) end + local cbuff, clen = zstd.zstd_compress(str, #str) if C.fwrite(cbuff, 1, clen, f) < clen then C.fclose(f) C.free(cbuff) @@ -98,7 +96,6 @@ local codecs = { C.fsync(C.fileno(f)) C.fclose(f) C.free(cbuff) - --- @note: Slight API extension for TileCacheItem, which needs to know the on-disk size, and saves us a :size() call return true, clen end,