From 4dea595eca11e3c42c9643dab38527a7c4ecd25b Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sat, 20 Apr 2013 14:10:10 +0000 Subject: [PATCH] [NTOSKRNL] Allow null matching with * wc in FsRtlIs*InExpression() This should fix a few tests svn path=/trunk/; revision=58790 --- reactos/ntoskrnl/fsrtl/dbcsname.c | 4 +++- reactos/ntoskrnl/fsrtl/name.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/fsrtl/dbcsname.c b/reactos/ntoskrnl/fsrtl/dbcsname.c index e7a31c6fb34..817a952cbe7 100644 --- a/reactos/ntoskrnl/fsrtl/dbcsname.c +++ b/reactos/ntoskrnl/fsrtl/dbcsname.c @@ -207,7 +207,9 @@ FsRtlIsDbcsInExpression(IN PANSI_STRING Expression, NamePosition = Name->Length; break; } - else if (Expression->Buffer[ExpressionPosition] != '?') + /* Allow null matching */ + else if (Expression->Buffer[ExpressionPosition] != '?' && + Expression->Buffer[ExpressionPosition] != Name->Buffer[NamePosition]) { NamePosition++; } diff --git a/reactos/ntoskrnl/fsrtl/name.c b/reactos/ntoskrnl/fsrtl/name.c index 5b3b4f9fe9c..6fb8c7a2a7b 100644 --- a/reactos/ntoskrnl/fsrtl/name.c +++ b/reactos/ntoskrnl/fsrtl/name.c @@ -143,7 +143,9 @@ FsRtlIsNameInExpressionPrivate(IN PUNICODE_STRING Expression, NamePosition = Name->Length / sizeof(WCHAR); break; } - else if (Expression->Buffer[ExpressionPosition] != L'?') + /* Allow null matching */ + else if (Expression->Buffer[ExpressionPosition] != L'?' && + Expression->Buffer[ExpressionPosition] != Name->Buffer[NamePosition]) { NamePosition++; }