we did not check following function's return: i965_surface_native_memory i965_suface_external_memory i965_check_alloc_surface_bo It will be in trouble if underlay buffer allocation is failed. --- src/i965_drv_video.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index cfaab32..b14acf8 100644 --- a/src/i965_drv_video.c +++ b/src/i965_drv_video.c @@ -989,9 +989,7 @@ i965_surface_native_memory(VADriverContextP ctx, expected_fourcc == VA_FOURCC_YV16) tiling = 0; - i965_check_alloc_surface_bo(ctx, obj_surface, tiling, expected_fourcc, get_sampling_from_fourcc(expected_fourcc)); - - return VA_STATUS_SUCCESS; + return i965_check_alloc_surface_bo(ctx, obj_surface, tiling, expected_fourcc, get_sampling_from_fourcc(expected_fourcc)); } static VAStatus @@ -1327,21 +1325,23 @@ i965_CreateSurfaces2( } } } - i965_surface_native_memory(ctx, - obj_surface, - format, - expected_fourcc); + vaStatus = i965_surface_native_memory(ctx, + obj_surface, + format, + expected_fourcc); break; case I965_SURFACE_MEM_GEM_FLINK: case I965_SURFACE_MEM_DRM_PRIME: - i965_suface_external_memory(ctx, - obj_surface, - memory_type, - memory_attibute, - i); + vaStatus = i965_suface_external_memory(ctx, + obj_surface, + memory_type, + memory_attibute, + i); break; } + if (VA_STATUS_SUCCESS != vaStatus) + break; } /* Error recovery */ -- 1.9.1 _______________________________________________ Libva mailing list Libva@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libva