[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 20/20] IoctlLog handler shouldnt be in with the store IOCTLs, and dont fail on /n/r in log messages
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/xeniface/ioctl_store.c | 29 ---------------------------- src/xeniface/ioctls.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/xeniface/ioctl_store.c b/src/xeniface/ioctl_store.c index f1c816b..5bd4649 100644 --- a/src/xeniface/ioctl_store.c +++ b/src/xeniface/ioctl_store.c @@ -91,35 +91,6 @@ __DisplayMultiSz( DECLSPEC_NOINLINE NTSTATUS -IoctlLog( - __in PXENIFACE_FDO Fdo, - __in PCHAR Buffer, - __in ULONG InLen, - __in ULONG OutLen - ) -{ - NTSTATUS status; - - status = STATUS_INVALID_BUFFER_SIZE; - if (InLen == 0 || OutLen != 0) - goto fail1; - - status = STATUS_INVALID_PARAMETER; - if (!__IsValidStr(Buffer, InLen)) - goto fail2; - - XenIfaceDebugPrint(INFO, "USER: %s\n", Buffer); - return STATUS_SUCCESS; - -fail2: - XenIfaceDebugPrint(ERROR, "Fail2\n"); -fail1: - XenIfaceDebugPrint(ERROR, "Fail1 (%08x)\n", status); - return status; -} - -DECLSPEC_NOINLINE -NTSTATUS IoctlStoreRead( __in PXENIFACE_FDO Fdo, __in PCHAR Buffer, diff --git a/src/xeniface/ioctls.c b/src/xeniface/ioctls.c index 7f172d7..8382000 100644 --- a/src/xeniface/ioctls.c +++ b/src/xeniface/ioctls.c @@ -160,6 +160,53 @@ XenIfaceCleanup( } } +static FORCEINLINE +BOOLEAN +__IsValidStrFix( + __in PCHAR Str, + __in ULONG Len + ) +{ + for ( ; Len--; ++Str) { + if (*Str == '\0') + return TRUE; + if (*Str == '\n' || *Str == '\r') + continue; + if (!isprint((unsigned char)*Str)) + break; + } + return FALSE; +} + +DECLSPEC_NOINLINE +NTSTATUS +IoctlLog( + __in PXENIFACE_FDO Fdo, + __in PCHAR Buffer, + __in ULONG InLen, + __in ULONG OutLen + ) +{ + NTSTATUS status; + + status = STATUS_INVALID_BUFFER_SIZE; + if (InLen == 0 || OutLen != 0) + goto fail1; + + status = STATUS_INVALID_PARAMETER; + if (!__IsValidStrFix(Buffer, InLen)) + goto fail2; + + XenIfaceDebugPrint(INFO, "USER: %s\n", Buffer); + return STATUS_SUCCESS; + +fail2: + XenIfaceDebugPrint(ERROR, "Fail2\n"); +fail1: + XenIfaceDebugPrint(ERROR, "Fail1 (%08x)\n", status); + return status; +} + NTSTATUS XenIfaceIoctl( __in PXENIFACE_FDO Fdo, -- 1.9.4.msysgit.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 |