[NTOSKRNL]

Fixed FsRtlIsNameInExpression() according to r50018 tests

svn path=/trunk/; revision=50019
This commit is contained in:
Pierre Schweitzer 2010-12-12 22:17:45 +00:00
parent 94b828f1a4
commit ffd29f0aa3

View file

@ -31,7 +31,7 @@ FsRtlIsNameInExpressionPrivate(IN PUNICODE_STRING Expression,
{ {
if ((Expression->Buffer[k] == (IgnoreCase ? UpcaseTable[Name->Buffer[i]] : Name->Buffer[i])) || if ((Expression->Buffer[k] == (IgnoreCase ? UpcaseTable[Name->Buffer[i]] : Name->Buffer[i])) ||
(Expression->Buffer[k] == L'?') || (Expression->Buffer[k] == DOS_QM) || (Expression->Buffer[k] == L'?') || (Expression->Buffer[k] == DOS_QM) ||
(Expression->Buffer[k] == DOS_DOT && (Name->Buffer[i] == L'.' || Name->Buffer[i] == L'0'))) (Expression->Buffer[k] == DOS_DOT && Name->Buffer[i] == L'.'))
{ {
i++; i++;
k++; k++;
@ -47,13 +47,6 @@ FsRtlIsNameInExpressionPrivate(IN PUNICODE_STRING Expression,
while ((IgnoreCase ? UpcaseTable[Name->Buffer[i]] : Name->Buffer[i]) != Expression->Buffer[k+1] && while ((IgnoreCase ? UpcaseTable[Name->Buffer[i]] : Name->Buffer[i]) != Expression->Buffer[k+1] &&
i < Name->Length / sizeof(WCHAR)) i++; i < Name->Length / sizeof(WCHAR)) i++;
} }
else
{
if (!(Expression->Buffer[k+1] != DOS_DOT && (Name->Buffer[i] == L'.' || Name->Buffer[i] == L'0')))
{
i++;
}
}
} }
else else
{ {
@ -79,6 +72,11 @@ FsRtlIsNameInExpressionPrivate(IN PUNICODE_STRING Expression,
i = Name->Length / sizeof(WCHAR); i = Name->Length / sizeof(WCHAR);
} }
} }
if (k + 1 == Expression->Length / sizeof(WCHAR) && i == Name->Length / sizeof(WCHAR) &&
Expression->Buffer[k] == DOS_DOT)
{
k++;
}
return (k == Expression->Length / sizeof(WCHAR) && i == Name->Length / sizeof(WCHAR)); return (k == Expression->Length / sizeof(WCHAR) && i == Name->Length / sizeof(WCHAR));
} }