fix bug of memory free

Signed-off-by: wujing <wujing50@huawei.com>
This commit is contained in:
wujing 2022-04-09 15:20:02 +08:00
parent 79ab1b2d28
commit b4ff9620e4
3 changed files with 109 additions and 3 deletions

View File

@ -0,0 +1,98 @@
From b235b7526f452dab2db7f9de71ea27b3dfacde1a Mon Sep 17 00:00:00 2001
From: wujing <wujing50@huawei.com>
Date: Sat, 9 Apr 2022 15:15:02 +0800
Subject: [PATCH] fix bug of memory free
Signed-off-by: wujing <wujing50@huawei.com>
---
src/lxc/conf.c | 27 ++++++++++-----------------
1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 19e193dd..4ef154e6 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -2604,70 +2604,63 @@ static int check_mount_destination(const char *rootfs, const char *dest, const c
const char **invalid = NULL;
for(valid = valid_destinations; *valid != NULL; valid++) {
- char *fullpath = NULL;
- char *relpath = NULL;
+ __do_free char *fullpath = NULL;
+ __do_free char *relpath = NULL;
const char *parts[3] = {
rootfs,
*valid,
NULL
};
fullpath = lxc_string_join("/", parts, false);
- if (!fullpath) {
+ if (fullpath == NULL) {
ERROR("Out of memory");
return -1;
}
relpath = path_relative(fullpath, dest);
- free(fullpath);
- if (!relpath)
+ if (relpath == NULL) {
+ ERROR("Failed to get relpath for %s related to %s", dest, fullpath);
return -1;
+ }
if (!strcmp(relpath, ".")) {
- free(relpath);
return 0;
}
- free(relpath);
}
for(invalid = invalid_destinations; *invalid != NULL; invalid++) {
- char *fullpath = NULL;
- char *relpath = NULL;
+ __do_free char *fullpath = NULL;
+ __do_free char *relpath = NULL;
const char *parts[3] = {
rootfs,
*invalid,
NULL
};
fullpath = lxc_string_join("/", parts, false);
- if (!fullpath) {
+ if (fullpath == NULL) {
ERROR("Out of memory");
return -1;
}
relpath = path_relative(fullpath, dest);
DEBUG("dst path %s get relative path %s with full path %s,src:%s", dest, relpath, fullpath, src);
- free(fullpath);
- if (!relpath) {
+ if (relpath == NULL) {
ERROR("Failed to get relpath for %s related to %s", dest, fullpath);
return -1;
}
// pass if the mount path is outside of invalid proc
if (strncmp(relpath, "..", 2) == 0) {
- free(relpath);
continue;
}
if (strcmp(relpath, ".") == 0) {
if (src == NULL) {
- free(relpath);
continue;
}
// pass if the mount on top of /proc and the source of the mount is a proc filesystem
if (has_fs_type(src, PROC_SUPER_MAGIC)) {
WARN("src %s is proc allow mount on-top of %s", src, *invalid);
- free(relpath);
continue;
}
ERROR("%s cannot be mounted because it is located inside %s", dest, *invalid);
- free(relpath);
return -1;
}
- free(relpath);
}
return 0;
--
2.35.1

View File

@ -1,4 +1,4 @@
%global _release 2022031701 %global _release 2022040901
Name: lxc Name: lxc
Version: 4.0.3 Version: 4.0.3
@ -46,6 +46,7 @@ Patch0035: 0035-adapt-upstream-compiler-settings.patch
Patch0036: 0036-compile-in-android-env.patch Patch0036: 0036-compile-in-android-env.patch
Patch0037: 0037-fix-always-print-and-temp-len.patch Patch0037: 0037-fix-always-print-and-temp-len.patch
Patch0038: 0038-just-print-error-when-new-lock-failed.patch Patch0038: 0038-just-print-error-when-new-lock-failed.patch
Patch0039: 0039-fix-bug-of-memory-free.patch
BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath
BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libseccomp)
@ -217,14 +218,20 @@ make check
%{_mandir}/*/man7/%{name}* %{_mandir}/*/man7/%{name}*
%changelog %changelog
* Sat Apr 09 2022 wujing<wujing50@huawei.com> - 4.0.3-2022040901
- Type:bugfix
- ID:NA
- SUG:NA
- DESC: fix bug of memory free
* Thu Mar 17 2022 haozi007<liuhao27@huawei.com> - 4.0.3-2022031701 * Thu Mar 17 2022 haozi007<liuhao27@huawei.com> - 4.0.3-2022031701
- Type:improv - Type:improve
- ID:NA - ID:NA
- SUG:NA - SUG:NA
- DESC: fix unnecessary print error message - DESC: fix unnecessary print error message
* Mon Feb 21 2022 chegJH <hejunjie10@huawei.com> - 4.0.3-2022022101 * Mon Feb 21 2022 chegJH <hejunjie10@huawei.com> - 4.0.3-2022022101
- Type:improv - Type:improve
- ID:NA - ID:NA
- SUG:NA - SUG:NA
- DESC: fix alwasy print and len - DESC: fix alwasy print and len

View File

@ -36,3 +36,4 @@
0036-compile-in-android-env.patch 0036-compile-in-android-env.patch
0037-fix-always-print-and-temp-len.patch 0037-fix-always-print-and-temp-len.patch
0038-just-print-error-when-new-lock-failed.patch 0038-just-print-error-when-new-lock-failed.patch
0039-fix-bug-of-memory-free.patch