From 11eb8ee042f6b324d3b2c0457bcf5a676dfd7579 Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Mon, 29 May 2006 16:27:48 +0100 Subject: [PATCH] rpcrt4: If the number of pointers is 0 for NdrFullPointerXlatInit then set the number of pointers to a large default, so that NumberOfBuckets doesn't end up less than zero. --- dlls/rpcrt4/ndr_fullpointer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/rpcrt4/ndr_fullpointer.c b/dlls/rpcrt4/ndr_fullpointer.c index f4485b22b7b..b89b66902f8 100644 --- a/dlls/rpcrt4/ndr_fullpointer.c +++ b/dlls/rpcrt4/ndr_fullpointer.c @@ -32,11 +32,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(rpc); PFULL_PTR_XLAT_TABLES WINAPI NdrFullPointerXlatInit(unsigned long NumberOfPointers, XLAT_SIDE XlatSide) { - unsigned long NumberOfBuckets = ((NumberOfPointers + 3) & 4) - 1; + unsigned long NumberOfBuckets; PFULL_PTR_XLAT_TABLES pXlatTables = HeapAlloc(GetProcessHeap(), 0, sizeof(*pXlatTables)); TRACE("(%ld, %d)\n", NumberOfPointers, XlatSide); + if (!NumberOfPointers) NumberOfPointers = 512; + NumberOfBuckets = ((NumberOfPointers + 3) & ~3) - 1; + pXlatTables->RefIdToPointer.XlatTable = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(void *) * NumberOfPointers); -- 2.11.4.GIT