From: Seung-Woo Kim Date: Wed, 18 Oct 2023 05:31:40 +0000 (+0900) Subject: [System.Information] Use Marshal.FreeHGlobal() instead of Libc.Free() X-Git-Tag: submit/tizen/20231023.151150~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=168fe31bb144a0ab38ec3ed1cae6a305091beec8;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [System.Information] Use Marshal.FreeHGlobal() instead of Libc.Free() Use Marshal.FreeHGlobal() instead of Libc.Free() for ASAN environment. Also, remove not any more used Libc.Free() Interop. In ASAN environment, because Interop uses dlopen(), newly opended libc causes different libc/asan alloc context from already allocaed buffer, and it gives segment fault crash when calling Libc.Free(). Signed-off-by: Seung-Woo Kim --- diff --git a/src/Tizen.System.Information/Interop/Interop.Libc.cs b/src/Tizen.System.Information/Interop/Interop.Libc.cs deleted file mode 100755 index ef021f18f..000000000 --- a/src/Tizen.System.Information/Interop/Interop.Libc.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class Libc - { - [DllImport(Libraries.Libc, EntryPoint = "free")] - public static extern void Free(IntPtr ptr); - } -} diff --git a/src/Tizen.System.Information/Interop/Interop.Libraries.cs b/src/Tizen.System.Information/Interop/Interop.Libraries.cs index 60ae7217f..ddb18845f 100755 --- a/src/Tizen.System.Information/Interop/Interop.Libraries.cs +++ b/src/Tizen.System.Information/Interop/Interop.Libraries.cs @@ -20,6 +20,5 @@ internal static partial class Interop { internal const string RuntimeInfo = "libcapi-system-runtime-info.so.0"; internal const string SystemInfo = "libcapi-system-info.so.0"; - internal const string Libc = "libc.so.6"; } } diff --git a/src/Tizen.System.Information/Usage/ProcessMemoryUsage.cs b/src/Tizen.System.Information/Usage/ProcessMemoryUsage.cs index 9583f8184..0c4a2a393 100755 --- a/src/Tizen.System.Information/Usage/ProcessMemoryUsage.cs +++ b/src/Tizen.System.Information/Usage/ProcessMemoryUsage.cs @@ -280,7 +280,7 @@ namespace Tizen.System } finally { - Interop.Libc.Free(ptr); + Marshal.FreeHGlobal(ptr); } } @@ -319,7 +319,7 @@ namespace Tizen.System } finally { - Interop.Libc.Free(ptr); + Marshal.FreeHGlobal(ptr); } Gpus = GetProcessMemoryValueInt(Interop.RuntimeInfo.ProcessMemoryInfoKey.Gpu, pid);