Alexandre Julliard : server: Update the registry key and value name length limits to the now documented values .
Alexandre Julliard
julliard at winehq.org
Fri Apr 2 10:17:11 CDT 2010
Module: wine
Branch: master
Commit: 935cc7987df61352a2cc51b83e839551e9720fb2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=935cc7987df61352a2cc51b83e839551e9720fb2
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Apr 2 11:48:14 2010 +0200
server: Update the registry key and value name length limits to the now documented values.
---
dlls/ntdll/reg.c | 12 +++++++-----
server/registry.c | 4 ++--
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c
index 3bee588..d68f154 100644
--- a/dlls/ntdll/reg.c
+++ b/dlls/ntdll/reg.c
@@ -42,8 +42,10 @@
WINE_DEFAULT_DEBUG_CHANNEL(reg);
-/* maximum length of a key/value name in bytes (without terminating null) */
-#define MAX_NAME_LENGTH ((MAX_PATH-1) * sizeof(WCHAR))
+/* maximum length of a key name in bytes (without terminating null) */
+#define MAX_NAME_LENGTH (255 * sizeof(WCHAR))
+/* maximum length of a value name in bytes (without terminating null) */
+#define MAX_VALUE_LENGTH (16383 * sizeof(WCHAR))
/******************************************************************************
* NtCreateKey [NTDLL.@]
@@ -188,7 +190,7 @@ NTSTATUS WINAPI NtDeleteValueKey( HANDLE hkey, const UNICODE_STRING *name )
NTSTATUS ret;
TRACE( "(%p,%s)\n", hkey, debugstr_us(name) );
- if (name->Length > MAX_NAME_LENGTH) return STATUS_BUFFER_OVERFLOW;
+ if (name->Length > MAX_VALUE_LENGTH) return STATUS_BUFFER_OVERFLOW;
SERVER_START_REQ( delete_key_value )
{
@@ -481,7 +483,7 @@ NTSTATUS WINAPI NtQueryValueKey( HANDLE handle, const UNICODE_STRING *name,
TRACE( "(%p,%s,%d,%p,%d)\n", handle, debugstr_us(name), info_class, info, length );
- if (name->Length > MAX_NAME_LENGTH) return STATUS_BUFFER_OVERFLOW;
+ if (name->Length > MAX_VALUE_LENGTH) return STATUS_BUFFER_OVERFLOW;
/* compute the length we want to retrieve */
switch(info_class)
@@ -769,7 +771,7 @@ NTSTATUS WINAPI NtSetValueKey( HANDLE hkey, const UNICODE_STRING *name, ULONG Ti
TRACE( "(%p,%s,%d,%p,%d)\n", hkey, debugstr_us(name), type, data, count );
- if (name->Length > MAX_NAME_LENGTH) return STATUS_BUFFER_OVERFLOW;
+ if (name->Length > MAX_VALUE_LENGTH) return STATUS_BUFFER_OVERFLOW;
SERVER_START_REQ( set_key_value )
{
diff --git a/server/registry.c b/server/registry.c
index 93d42c9..574f2e4 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -100,8 +100,8 @@ struct key_value
#define MIN_SUBKEYS 8 /* min. number of allocated subkeys per key */
#define MIN_VALUES 8 /* min. number of allocated values per key */
-#define MAX_NAME_LEN MAX_PATH /* max. length of a key name */
-#define MAX_VALUE_LEN MAX_PATH /* max. length of a value name */
+#define MAX_NAME_LEN 255 /* max. length of a key name */
+#define MAX_VALUE_LEN 16383 /* max. length of a value name */
/* the root of the registry tree */
static struct key *root_key;
More information about the wine-cvs
mailing list