[PATCH v2 1/4] kernelbase: Implement PathCchFindExtension.
Zhiyi Zhang
yi.gd.cn at gmail.com
Mon Nov 19 02:41:25 CST 2018
On Mon 11 19 15:25 PM, Nikolay Sivov wrote:
> On 11/19/18 6:11 AM, Zhiyi Zhang wrote:
>
>> + length = strlenW(path);
>> + if (length + 1 > PATHCCH_MAX_CCH)
>> + {
>> + *extension = NULL;
>> + return E_INVALIDARG;
>> + }
> This doesn't look right. If it takes buffer length, that's the limit we should use.
> So if you have to iterate you should probably stop at this give limit.
Right. Thanks. We also need to implement StringCchLengthW and friends
instead of using strlenW to avoid buffer overrun.
>
>> + next = path;
>> + while (*next)
>> + {
>> + if (*next == '\\' || *next == ' ')
>> + lastpoint = NULL;
>> + else if (*next == '.')
>> + lastpoint = next;
>> + next++;
>> + }
> We'll need a test for size < length, and probably for forward slash too.
>
>> + if (!pPathCchFindExtension)
>> + {
>> + win_skip("PathCchFindExtension() is not available.\n");
>> + return;
>> + }
> Maybe we can get rid of this, because it will never trigger if kernelbase is available. Probably 'hmod' check is enough to skip everything.
>
>
>
More information about the wine-devel
mailing list