Index: groupdb.c
===================================================================
--- groupdb.c	(revision 36130)
+++ groupdb.c	(working copy)
@@ -61,7 +61,7 @@
 
     lpGroup = (PSERVICE_GROUP)HeapAlloc(GetProcessHeap(),
                                         HEAP_ZERO_MEMORY,
-                                        sizeof(SERVICE_GROUP) + (wcslen(lpGroupName) * sizeof(WCHAR)));
+                                        sizeof(SERVICE_GROUP) + ((wcslen(lpGroupName) + 1)* sizeof(WCHAR)));
     if (lpGroup == NULL)
         return ERROR_NOT_ENOUGH_MEMORY;
 
@@ -144,7 +144,7 @@
 
         Group = (PSERVICE_GROUP)HeapAlloc(GetProcessHeap(),
                                           HEAP_ZERO_MEMORY,
-                                          sizeof(SERVICE_GROUP) + (wcslen((const wchar_t*) ValueData) * sizeof(WCHAR)));
+                                          sizeof(SERVICE_GROUP) + ((wcslen((const wchar_t*) ValueData) + 1) * sizeof(WCHAR)));
         if (Group == NULL)
         {
             return STATUS_INSUFFICIENT_RESOURCES;
Index: rpcserver.c
===================================================================
--- rpcserver.c	(revision 36130)
+++ rpcserver.c	(working copy)
@@ -164,7 +164,7 @@
 
     Ptr = (MANAGER_HANDLE*) HeapAlloc(GetProcessHeap(),
                     HEAP_ZERO_MEMORY,
-                    sizeof(MANAGER_HANDLE) + wcslen(lpDatabaseName) * sizeof(WCHAR));
+                    sizeof(MANAGER_HANDLE) + (wcslen(lpDatabaseName) + 1) * sizeof(WCHAR));
     if (Ptr == NULL)
         return ERROR_NOT_ENOUGH_MEMORY;
 

