Gerald Pfeifer : ntdll: Fix computation in enumerate_key().
Alexandre Julliard
julliard at winehq.org
Mon Nov 26 08:16:26 CST 2007
Module: wine
Branch: master
Commit: 15f8b80ba7ac0fba9fe94b46c1c4f63308ab75e1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=15f8b80ba7ac0fba9fe94b46c1c4f63308ab75e1
Author: Gerald Pfeifer <gerald at pfeifer.com>
Date: Thu Nov 22 21:41:29 2007 +0100
ntdll: Fix computation in enumerate_key().
---
dlls/ntdll/reg.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c
index 85297e3..8b724ec 100644
--- a/dlls/ntdll/reg.c
+++ b/dlls/ntdll/reg.c
@@ -271,8 +271,16 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i
fixed_size = (char *)keyinfo.Name - (char *)&keyinfo;
keyinfo.LastWriteTime = modif;
keyinfo.TitleIndex = 0;
- keyinfo.ClassLength = max( 0, wine_server_reply_size(reply) - reply->namelen );
- keyinfo.ClassOffset = keyinfo.ClassLength ? fixed_size + reply->namelen : -1;
+ if (reply->namelen < wine_server_reply_size(reply))
+ {
+ keyinfo.ClassLength = wine_server_reply_size(reply) - reply->namelen;
+ keyinfo.ClassOffset = fixed_size + reply->namelen;
+ }
+ else
+ {
+ keyinfo.ClassLength = 0;
+ keyinfo.ClassOffset = -1;
+ }
keyinfo.NameLength = reply->namelen;
memcpy( info, &keyinfo, min( length, fixed_size ) );
}
More information about the wine-cvs
mailing list