diff options
Diffstat (limited to 'src/backend/storage/ipc')
-rw-r--r-- | src/backend/storage/ipc/dsm_registry.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/storage/ipc/dsm_registry.c b/src/backend/storage/ipc/dsm_registry.c index c1781736532..9f58ea611b9 100644 --- a/src/backend/storage/ipc/dsm_registry.c +++ b/src/backend/storage/ipc/dsm_registry.c @@ -50,8 +50,9 @@ typedef struct DSMRegistryEntry static const dshash_parameters dsh_params = { offsetof(DSMRegistryEntry, handle), sizeof(DSMRegistryEntry), - dshash_memcmp, - dshash_memhash, + dshash_strcmp, + dshash_strhash, + dshash_strcpy, LWTRANCHE_DSM_REGISTRY_HASH }; @@ -132,7 +133,6 @@ GetNamedDSMSegment(const char *name, size_t size, { DSMRegistryEntry *entry; MemoryContext oldcontext; - char name_padded[offsetof(DSMRegistryEntry, handle)] = {0}; void *ret; Assert(found); @@ -155,8 +155,7 @@ GetNamedDSMSegment(const char *name, size_t size, /* Connect to the registry. */ init_dsm_registry(); - strcpy(name_padded, name); - entry = dshash_find_or_insert(dsm_registry_table, name_padded, found); + entry = dshash_find_or_insert(dsm_registry_table, name, found); if (!(*found)) { /* Initialize the segment. */ |