[1/2] kernel32: Fix out of bounds access in DnsHostnameToComputerName[AW]

André Hentschel nerv at dawncrow.de
Wed Jan 29 16:41:28 CST 2014


---
 dlls/kernel32/computername.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/kernel32/computername.c b/dlls/kernel32/computername.c
index 8650440..0c81ac0 100644
--- a/dlls/kernel32/computername.c
+++ b/dlls/kernel32/computername.c
@@ -688,7 +688,7 @@ BOOL WINAPI DnsHostnameToComputerNameA(LPCSTR hostname,
     if (len > MAX_COMPUTERNAME_LENGTH)
         len = MAX_COMPUTERNAME_LENGTH;
 
-    if (*size < len)
+    if (*size < len + 1)
     {
         *size = len;
         return FALSE;
@@ -696,7 +696,7 @@ BOOL WINAPI DnsHostnameToComputerNameA(LPCSTR hostname,
     if (!computername) return FALSE;
 
     memcpy( computername, hostname, len );
-    computername[len + 1] = 0;
+    computername[len] = 0;
     return TRUE;
 }
 
@@ -716,7 +716,7 @@ BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR hostname,
     if (len > MAX_COMPUTERNAME_LENGTH)
         len = MAX_COMPUTERNAME_LENGTH;
 
-    if (*size < len)
+    if (*size < len + 1)
     {
         *size = len;
         return FALSE;
@@ -724,6 +724,6 @@ BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR hostname,
     if (!computername) return FALSE;
 
     memcpy( computername, hostname, len * sizeof(WCHAR) );
-    computername[len + 1] = 0;
+    computername[len] = 0;
     return TRUE;
 }
-- 
1.8.1.2





More information about the wine-patches mailing list