2017-06-15 0:00 GMT+02:00 Paul Gofman gofmanp@gmail.com:
Signed-off-by: Paul Gofman gofmanp@gmail.com
v3: no changes.
dlls/d3dx9_36/preshader.c | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/dlls/d3dx9_36/preshader.c b/dlls/d3dx9_36/preshader.c index 2785ca3..0bc31cb 100644 --- a/dlls/d3dx9_36/preshader.c +++ b/dlls/d3dx9_36/preshader.c @@ -1178,11 +1178,6 @@ static void set_constants(struct d3dx_regstore *rs, struct d3dx_const_tab *const param_offset = i + j * info.major; else param_offset = i * info.minor + j;
if (param_offset * sizeof(unsigned int) >= param->bytes)
{
WARN("Parameter data is too short, name %s, component %u.\n", debugstr_a(param->name), i);
break;
} out[offset] = data[param_offset];
Is there anything else covering this case though? If I'm not mistaken such a parameter / constant would be accepted currently so just dropping the check would potentially allow broken preshaders to read outside of the parameter data.
Now I certainly agree that the check shouldn't be there, it should probably be in init_set_constants_param() instead. If this is already checked somewhere in the code then I'm okay with the patch as is.