[PATCH] d3dcompiler: Use stricmp() instead of _strnicmp(..., -1).

Paul Gofman gofmanp at gmail.com
Fri Mar 27 05:06:52 CDT 2020


Please see the test in [1]. Native ucrtbase throws
_INVALID_CRUNTIME_PARAMETER exception for '-1' count. The problem is
there only when native ucrtbase is used and only for PE builtin DLLS,
which were switched to using ucrtbase lately.

https://source.winehq.org/git/wine.git/blobdiff/b07e8b3edbaab4b2818926abb65702450b1447ba..d912460ae046c48d6b5f65f03df84df9ae4d5a56:/dlls/ucrtbase/tests/string.c

On 3/27/20 13:01, Zhiyi Zhang wrote:
> Just curious. What caused the crash?
> It seems that many code in Wine have _strnicmp(...,-1).
> Do we need to update those?
>
> On 3/27/20 5:50 PM, Paul Gofman wrote:
>> Signed-off-by: Paul Gofman <gofmanp at gmail.com>
>> ---
>>  dlls/d3dcompiler_43/reflection.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/dlls/d3dcompiler_43/reflection.c b/dlls/d3dcompiler_43/reflection.c
>> index 820e5c239f..b29db47c71 100644
>> --- a/dlls/d3dcompiler_43/reflection.c
>> +++ b/dlls/d3dcompiler_43/reflection.c
>> @@ -1674,13 +1674,13 @@ static HRESULT d3dcompiler_parse_signature(struct d3dcompiler_shader_signature *
>>  
>>              if (d[i].Register == 0xffffffff)
>>              {
>> -                if (!_strnicmp(d[i].SemanticName, "sv_depth", -1))
>> +                if (!stricmp(d[i].SemanticName, "sv_depth"))
>>                      d[i].SystemValueType = D3D_NAME_DEPTH;
>> -                else if (!_strnicmp(d[i].SemanticName, "sv_coverage", -1))
>> +                else if (!stricmp(d[i].SemanticName, "sv_coverage"))
>>                      d[i].SystemValueType = D3D_NAME_COVERAGE;
>> -                else if (!_strnicmp(d[i].SemanticName, "sv_depthgreaterequal", -1))
>> +                else if (!stricmp(d[i].SemanticName, "sv_depthgreaterequal"))
>>                      d[i].SystemValueType = D3D_NAME_DEPTH_GREATER_EQUAL;
>> -                else if (!_strnicmp(d[i].SemanticName, "sv_depthlessequal", -1))
>> +                else if (!stricmp(d[i].SemanticName, "sv_depthlessequal"))
>>                      d[i].SystemValueType = D3D_NAME_DEPTH_LESS_EQUAL;
>>              }
>>              else





More information about the wine-devel mailing list