[NUI] Fix svace issue of buffer exceed size
authorXianbing Teng <xb.teng@samsung.com>
Mon, 1 Apr 2024 11:02:01 +0000 (19:02 +0800)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Fri, 12 Apr 2024 05:20:38 +0000 (14:20 +0900)
src/Tizen.NUI.Wearable/src/public/Title.cs
src/Tizen.NUI/src/internal/FrameBroker/FrameBrokerBase.cs

index dc86d9c..95876d4 100755 (executable)
@@ -328,16 +328,20 @@ namespace Tizen.NUI.Components
 
             TexturedQuadVertex[] texturedQuadVertexData = new TexturedQuadVertex[4] { vertex1, vertex2, vertex3, vertex4 };
 
-            int length = Marshal.SizeOf(vertex1);
-            IntPtr pA = Marshal.AllocHGlobal(checked(length * 4));
+            int size = Marshal.SizeOf(vertex1);
+            IntPtr pA = Marshal.AllocHGlobal(checked(size * texturedQuadVertexData.Length));
 
             try
             {
-                for (int i = 0; i < 4; i++)
+                for (int i = 0; i < texturedQuadVertexData.Length; i++)
                 {
-                    Marshal.StructureToPtr(texturedQuadVertexData[i], pA + i * length, true);
+                    Marshal.StructureToPtr(texturedQuadVertexData[i], pA + i * size, true);
                 }
-                vertexData.SetData(pA, 4);
+                vertexData.SetData(pA, (uint)texturedQuadVertexData.Length);
+            }
+            catch(Exception e)
+            {
+                Tizen.Log.Error("NUI", "Exception in Title : " + e.Message);
             }
             finally
             {
index 4330679..27a35ce 100755 (executable)
@@ -312,17 +312,21 @@ namespace Tizen.NUI
 
             TexturedQuadVertex[] texturedQuadVertexData = new TexturedQuadVertex[4] { vertex1, vertex2, vertex3, vertex4 };
 
-            int length = Marshal.SizeOf(vertex1);
-            IntPtr pA = Marshal.AllocHGlobal(checked(length * 4));
+            int size = Marshal.SizeOf(vertex1);
+            IntPtr pA = Marshal.AllocHGlobal(checked(size * texturedQuadVertexData.Length));
 
             try
             {
-                for (int i = 0; i < 4; i++)
+                for (int i = 0; i < texturedQuadVertexData.Length; i++)
                 {
-                    Marshal.StructureToPtr(texturedQuadVertexData[i], pA + i * length, true);
+                    Marshal.StructureToPtr(texturedQuadVertexData[i], pA + i * size, true);
                 }
 
-                vertexBuffer.SetData(pA, 4);
+                vertexBuffer.SetData(pA, (uint)texturedQuadVertexData.Length);
+            }
+            catch(Exception e)
+            {
+                Tizen.Log.Error("NUI", "Exception in FrameBrokerBase : " + e.Message);
             }
             finally
             {