summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2022-05-25 15:34:38 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2022-05-25 15:34:38 +0900
commitd812e28af637144d078005887cb7519d7a2d0c58 (patch)
tree5c7cd727c5168d9cd5481d628ef1973a4865cc4f
parent84ae2b1d27ce81e87a8386918e48063dfd173d2e (diff)
downloadlibassuan-d812e28af637144d078005887cb7519d7a2d0c58.tar.gz
server: Wipe out the memory used by assuan_inquire if CONFIDENTIAL.
* src/assuan-inquire.c (assuan_inquire): Wipe the memory and inbound buffer. -- GnuPG-bug-id: 5977 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r--src/assuan-inquire.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/assuan-inquire.c b/src/assuan-inquire.c
index fa227a6..9599a77 100644
--- a/src/assuan-inquire.c
+++ b/src/assuan-inquire.c
@@ -254,7 +254,13 @@ assuan_inquire (assuan_context_t ctx, const char *keyword,
out:
if (!nodataexpected)
- free_membuf (ctx, &mb);
+ {
+ if (ctx->flags.confidential)
+ wipememory (mb.buf, mb.len);
+ free_membuf (ctx, &mb);
+ }
+ if (ctx->flags.confidential)
+ wipememory (ctx->inbound.line, LINELENGTH);
ctx->in_inquire = 0;
return rc;
}