[WiFi] Fix ASAN crash (#5693)
authorSeonah Moon <31679495+SeonahMoon@users.noreply.github.com>
Tue, 31 Oct 2023 10:13:03 +0000 (19:13 +0900)
committerGitHub <noreply@github.com>
Tue, 31 Oct 2023 10:13:03 +0000 (19:13 +0900)
src/Tizen.Network.WiFi/Interop/Interop.Libraries.cs
src/Tizen.Network.WiFi/Interop/Interop.WiFi.cs
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs

index d966df6..1dbe019 100755 (executable)
@@ -20,6 +20,5 @@ internal static partial class Interop
     {
         public const string WiFi = "libcapi-network-wifi-manager.so.1";
         public const string Glib = "libglib-2.0.so.0";
-        public const string Libc = "libc.so.6";
     }
 }
index 70458db..2f46431 100755 (executable)
@@ -353,9 +353,9 @@ internal static partial class Interop
 
     }
 
-    internal static partial class Libc
+    internal static partial class Glib
     {
-        [DllImport(Libraries.Libc, EntryPoint = "free")]
+        [DllImport(Libraries.Glib, EntryPoint = "g_free", CallingConvention = CallingConvention.Cdecl)]
         public static extern void Free(IntPtr userData);
     }
 }
index 5b43e30..8d69e7e 100755 (executable)
@@ -252,7 +252,7 @@ namespace Tizen.Network.WiFi
             string addr = Marshal.PtrToStringAnsi(addrPtr);
             if (addr == null || addr.Length == 0)
                 return DefaultIPAddress();
-            Interop.Libc.Free(addrPtr);
+            Interop.Glib.Free(addrPtr);
             return System.Net.IPAddress.Parse(addr);
         }
 
index 4bb8fa0..ede4e4d 100755 (executable)
@@ -54,7 +54,7 @@ namespace Tizen.Network.WiFi
                     else
                     {
                         _essid = Marshal.PtrToStringAnsi(strPtr);
-                        Interop.Libc.Free(strPtr);
+                        Interop.Glib.Free(strPtr);
                     }
                 }
                 return _essid;
@@ -83,7 +83,7 @@ namespace Tizen.Network.WiFi
                 {
                     rawSsid = new byte[length];
                     Marshal.Copy(ptr, rawSsid, 0, length);
-                    Interop.Libc.Free(ptr);
+                    Interop.Glib.Free(ptr);
                 }
                 return rawSsid;
             }
@@ -364,7 +364,7 @@ namespace Tizen.Network.WiFi
                 else
                 {
                     code = Marshal.PtrToStringAnsi(strPtr);
-                    Interop.Libc.Free(strPtr);
+                    Marshal.FreeHGlobal(strPtr);
                 }
                 return code;
             }