[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Don't use C runtime version of toupper()
It seems that, despite its trivial functionality, the runtime implementation insists on converting to Unicode! This means the function is actually only safe at PASSIVE_LEVEL. This patch implements __toupper() as a replacement with no such hidden nastiness and modifies callers to use that. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> --- src/xenvbd/fdo.c | 2 +- src/xenvbd/util.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c index eac0584..aa92fe4 100644 --- a/src/xenvbd/fdo.c +++ b/src/xenvbd/fdo.c @@ -1015,7 +1015,7 @@ __FdoMultiSzToUpcaseAnsi( if (Buffer[Index] == '\0') break; } else { - Buffer[Index] = (CHAR)toupper(Buffer[Index]); + Buffer[Index] = __toupper(Buffer[Index]); Index++; } } diff --git a/src/xenvbd/util.h b/src/xenvbd/util.h index eb02e34..f55fb78 100644 --- a/src/xenvbd/util.h +++ b/src/xenvbd/util.h @@ -266,4 +266,15 @@ __strtok_r( return Token; } +static FORCEINLINE CHAR +__toupper( + IN CHAR Character + ) +{ + if (Character < 'a' || Character > 'z') + return Character; + + return 'A' + Character - 'a'; +} + #endif // _UTIL_H -- 2.1.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |