OSDN Git Service

Fix buffer overflow for array index out of bounds in test_07
authorLim Siew Hoon <siew.hoon.lim@intel.com>
Fri, 1 Jul 2016 03:13:23 +0000 (11:13 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 22 Aug 2016 05:04:29 +0000 (13:04 +0800)
The size of array surface_1 is 2, but it passed to test_unique_surfaces
func is 16 or 6 to do compare for surface_16. The index for surface_1
not in the array index range for surface_1 and access invalid memory
location.

Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
(cherry picked from commit e4535e404d1dc33fb1fddf99f057c341fc652bfd)

test/basic/test_07.c

index 2e01533..752b0bf 100644 (file)
@@ -84,7 +84,7 @@ void test()
     test_unique_surfaces(surfaces_4, 4, surfaces_16, 4);
     test_unique_surfaces(surfaces_4, 4, surfaces_16, 16);
     test_unique_surfaces(surfaces_4, 1, surfaces_16, 16);
-    test_unique_surfaces(surfaces_1, 16, surfaces_16, 16);
+    test_unique_surfaces(surfaces_1, 1, surfaces_16, 16);
 
     status("vaDestroySurface 4 surfaces\n");
     va_status = vaDestroySurfaces(va_dpy, surfaces_4, 4);
@@ -98,7 +98,7 @@ void test()
 
     test_unique_surfaces(surfaces_1, 1, surfaces_6, 6);
     test_unique_surfaces(surfaces_6, 6, surfaces_16, 16);
-    test_unique_surfaces(surfaces_1, 6, surfaces_16, 6);
+    test_unique_surfaces(surfaces_1, 1, surfaces_16, 6);
 
     status("vaDestroySurface 16 surfaces\n");
     va_status = vaDestroySurfaces(va_dpy, surfaces_16, 16);