aboutsummaryrefslogtreecommitdiffstats
path: root/src/m_email/EMailBasicGpgOpera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_email/EMailBasicGpgOpera.cpp')
-rw-r--r--src/m_email/EMailBasicGpgOpera.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/m_email/EMailBasicGpgOpera.cpp b/src/m_email/EMailBasicGpgOpera.cpp
index 92001d3..c8bfeca 100644
--- a/src/m_email/EMailBasicGpgOpera.cpp
+++ b/src/m_email/EMailBasicGpgOpera.cpp
@@ -1180,6 +1180,12 @@ auto VerifyOneRegion(int channel, const QByteArray& raw,
const auto err = s->gpgme_error;
const auto capsule_id = UDUP(s->capsule_id);
+ // Reclaimed on the SUCCESS path too. Every other result site in this file
+ // takes error_string; this one did not, so a successful verification leaked
+ // it once per signed region -- confirmed by ASan, not by inspection. The
+ // opaque-result-handle rework removes the whole class by leaving no
+ // per-field free to forget; until then this is the missing line.
+ UDUP(s->error_string);
GFGpgFreeResult(s->gpgme_verify_result);
GFFreeMemory(s);