加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0007-all-Fix-resource-leaks.patch 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
wangzhiqiang 提交于 2024-07-31 10:43 . backport bugfix patch from community
From f7e4a8faa920a1d9746b056e9820da13b5b488e7 Mon Sep 17 00:00:00 2001
From: Ming-Hung Tsai <mtsai@redhat.com>
Date: Wed, 28 Apr 2021 10:34:16 +0800
Subject: [PATCH] [all] Fix resource leaks
---
base/file_utils.cc | 4 +++-
thin-provisioning/cache_stream.cc | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/base/file_utils.cc b/base/file_utils.cc
index e4f37228..82536608 100644
--- a/base/file_utils.cc
+++ b/base/file_utils.cc
@@ -155,8 +155,10 @@ file_utils::zero_superblock(std::string const &path)
throw runtime_error("out of memory");
memset(buffer, 0, SUPERBLOCK_SIZE);
- if (::write(fd.fd_, buffer, SUPERBLOCK_SIZE) != SUPERBLOCK_SIZE)
+ if (::write(fd.fd_, buffer, SUPERBLOCK_SIZE) != SUPERBLOCK_SIZE) {
+ free(buffer);
throw runtime_error("couldn't zero superblock");
+ }
}
//----------------------------------------------------------------
diff --git a/thin-provisioning/cache_stream.cc b/thin-provisioning/cache_stream.cc
index 002b6ba9..73b01b4e 100644
--- a/thin-provisioning/cache_stream.cc
+++ b/thin-provisioning/cache_stream.cc
@@ -62,7 +62,7 @@ chunk const &
cache_stream::get()
{
chunk_wrapper *w = new chunk_wrapper(*this);
- return w->c_;
+ return w->c_; // wrapper will get freed by the put method
}
void
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化