From 5fd7ff3488d64cddad9b0f767ef21059fe52be71 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 14 Dec 2010 19:17:58 +0000 Subject: Tweaks for gpgconf. Fixed dirmngr bug 1010. --- dirmngr/cdblib.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'dirmngr/cdblib.c') diff --git a/dirmngr/cdblib.c b/dirmngr/cdblib.c index 16d53aed8..3bfeffc11 100644 --- a/dirmngr/cdblib.c +++ b/dirmngr/cdblib.c @@ -135,7 +135,7 @@ cdb_init(struct cdb *cdbp, int fd) hFile = fd; # else hFile = (HANDLE) _get_osfhandle(fd); -#endif +# endif if (hFile == (HANDLE) -1) return -1; hMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); @@ -144,6 +144,7 @@ cdb_init(struct cdb *cdbp, int fd) mem = (unsigned char *)MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0); if (!mem) return -1; + cdbp->cdb_mapping = hMapping; #else mem = (unsigned char*)mmap(NULL, fsize, PROT_READ, MAP_SHARED, fd, 0); if (mem == MAP_FAILED) @@ -180,17 +181,9 @@ cdb_free(struct cdb *cdbp) { if (cdbp->cdb_mem) { #ifdef _WIN32 - HANDLE hFile, hMapping; -#endif -#ifdef _WIN32 -#ifdef __MINGW32CE__ - hFile = cdbp->cdb_fd; -#else - hFile = (HANDLE) _get_osfhandle(cdbp->cdb_fd); -#endif - hMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); - UnmapViewOfFile((void*) cdbp->cdb_mem); - CloseHandle(hMapping); + UnmapViewOfFile ((void*) cdbp->cdb_mem); + CloseHandle (cdbp->cdb_mapping); + cdbp->cdb_mapping = NULL; #else munmap((void*)cdbp->cdb_mem, cdbp->cdb_fsize); #endif /* _WIN32 */ -- cgit v1.2.3