[PATCH 1/5] wined3d: Check parameters directly in wined3d_surface_update_desc.
Stefan Dösinger
stefan at codeweavers.com
Tue Jan 7 06:53:44 CST 2014
---
dlls/wined3d/surface.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 2fca299..9155c6b 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2810,15 +2810,17 @@ HRESULT CDECL wined3d_surface_update_desc(struct wined3d_surface *surface,
struct wined3d_device *device = surface->resource.device;
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
const struct wined3d_format *format = wined3d_get_format(gl_info, format_id);
- UINT resource_size = wined3d_format_calculate_size(format, device->surface_alignment, width, height, 1);
BOOL create_dib = FALSE;
HRESULT hr;
TRACE("surface %p, width %u, height %u, format %s, multisample_type %#x, multisample_quality %u.\n",
surface, width, height, debug_d3dformat(format_id), multisample_type, multisample_type);
- if (!resource_size)
+ if (!width || !height || !format)
+ {
+ WARN("Width, height or format are 0, returning WINED3DERR_INVALIDCALL.\n");
return WINED3DERR_INVALIDCALL;
+ }
if (device->d3d_initialized)
surface->resource.resource_ops->resource_unload(&surface->resource);
@@ -2861,7 +2863,7 @@ HRESULT CDECL wined3d_surface_update_desc(struct wined3d_surface *surface,
surface->resource.format = format;
surface->resource.multisample_type = multisample_type;
surface->resource.multisample_quality = multisample_quality;
- surface->resource.size = resource_size;
+ surface->resource.size = wined3d_format_calculate_size(format, device->surface_alignment, width, height, 1);
if (create_dib)
{
--
1.8.3.2
More information about the wine-patches
mailing list