[v3 3/3] d3dx9: Remove redundant parameter size check in set_constants().

Matteo Bruni matteo.mystral at gmail.com
Fri Jun 16 10:29:30 CDT 2017


2017-06-15 0:00 GMT+02:00 Paul Gofman <gofmanp at gmail.com>:
> Signed-off-by: Paul Gofman <gofmanp at 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.



More information about the wine-devel mailing list