winspool: (5) more error-checks for XcvDataW

Detlef Riekenberg wine.dev at web.de
Sun Jan 14 22:38:28 CST 2007


-- 
 
By by ... Detlef

-------------- next part --------------
>From 254a13b829deb7a784fe73ca51001faed7900d05 Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg <wine.dev at web.de>
Date: Mon, 15 Jan 2007 05:33:15 +0100
Subject: [PATCH] winspool: more error-checks forXcvDataW
---
 dlls/winspool.drv/info.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 6e84e26..5ed4631 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -6684,6 +6684,18 @@ BOOL WINAPI XcvDataW( HANDLE hXcv, LPCWS
         return FALSE;
     }
 
+    if (!pcbOutputNeeded) {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return FALSE;
+    }
+
+    if (!pszDataName || !pdwStatus || (!pOutputData && (cbOutputData > 0))) {
+        SetLastError(RPC_X_NULL_REF_POINTER);
+        return FALSE;
+    }
+
+    *pcbOutputNeeded = 0;
+
     *pdwStatus = printer->pm->monitor->pfnXcvDataPort(printer->hXcv, pszDataName,
             pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded);
 
-- 
1.4.1



More information about the wine-patches mailing list