chiark / gitweb /
g10: invalidate the fd cache for keyring.
authorNIIBE Yutaka <gniibe@fsij.org>
Mon, 24 Apr 2017 22:48:51 +0000 (07:48 +0900)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Mon, 18 Sep 2017 20:41:12 +0000 (21:41 +0100)
* g10/keyring.c (keyring_search_reset): Don't keep the FD cache.

--

GnuPG-bug-id: 3096
Fixes-commit: 5556eca5acd46983bff0b38a1ffbc2f07fbaba9f
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
(cherry picked from commit 116cfd60779fbb3540da629db54dc2e148f4a3a2)

Gbp-Pq: Name 0074-g10-invalidate-the-fd-cache-for-keyring.patch

g10/keyring.c

index 328290ed8e11925249506ba36d199e659dc0e6f5..d75fdbc7b6c00d2b35d0dcea8e839f8a8ee6c70d 100644 (file)
@@ -692,7 +692,6 @@ keyring_search_reset (KEYRING_HANDLE hd)
 {
     log_assert (hd);
 
-    hd->current.kr = NULL;
     iobuf_close (hd->current.iobuf);
     hd->current.iobuf = NULL;
     hd->current.eof = 0;
@@ -700,6 +699,12 @@ keyring_search_reset (KEYRING_HANDLE hd)
 
     hd->found.kr = NULL;
     hd->found.offset = 0;
+
+    if (hd->current.kr)
+      iobuf_ioctl (NULL, IOBUF_IOCTL_INVALIDATE_CACHE, 0,
+                   (char*)hd->current.kr->fname);
+    hd->current.kr = NULL;
+
     return 0;
 }