[patch 7 of 7]: 0007-_getdiskfree-sets-errno-and-checks-additionally-for-invalid-second-argument
Kai Tietz
ktietz70 at googlemail.com
Thu Dec 29 10:16:13 CST 2011
Hi,
this patch corrects (IMHO) behavior of argument checks for getdiskfree
function. My tests have shown that this function sets for
invalid-arguments (also for disk > 26) errno to EINVAL. Additionally
for invalid argument 'd' errno is also set to EINVAL.
Regards,
Kai
-------------- next part --------------
From 4acb8530a585adffef8616d52b0e833f524666ba Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktietz70 at googlemail.com>
Date: Thu, 29 Dec 2011 16:15:40 +0100
Subject: _getdiskfree sets errno and checks additionally for invalid second
argument.
---
dlls/msvcrt/dir.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/dir.c b/dlls/msvcrt/dir.c
index 223439a..0afde07 100644
--- a/dlls/msvcrt/dir.c
+++ b/dlls/msvcrt/dir.c
@@ -1230,8 +1230,11 @@ unsigned int CDECL MSVCRT__getdiskfree(unsigned int disk, struct MSVCRT__diskfre
DWORD ret[4];
unsigned int err;
- if (disk > 26)
- return ERROR_INVALID_PARAMETER; /* MSVCRT doesn't set errno here */
+ if (!d || disk > 26)
+ {
+ *MSVCRT__errno() = MSVCRT_EINVAL;
+ return ERROR_INVALID_PARAMETER;
+ }
drivespec[0] += disk; /* make a drive letter */
--
1.7.5.1
More information about the wine-patches
mailing list