fix(settings): wipe change-passphrase buffers on dialog dismiss
The Change Passphrase dialog only zeroed change_old/new/confirm_pass_buf_ on the success path (inside changePassphrase); dismissing via X / Esc / outside- click left the typed passphrases resident in the input buffers. Add a same- frame teardown mirroring the encrypt dialog's X-button cleanup: when the BlurFloat overlay clears show_change_passphrase_ mid-frame, memset the three buffers. The failure path still keeps them intact for retry, and the async change already copies the passphrases into worker-owned strings, so wiping the UI buffers cannot disturb an in-flight change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1401,6 +1401,15 @@ void App::renderEncryptWalletDialog() {
|
|||||||
ImGui::EndDisabled();
|
ImGui::EndDisabled();
|
||||||
EndOverlayDialog();
|
EndOverlayDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Wipe the passphrase buffers if the dialog was dismissed (X / Esc /
|
||||||
|
// outside-click) without submitting. The success path already zeroes
|
||||||
|
// them in changePassphrase(); the failure path keeps them for retry.
|
||||||
|
if (!show_change_passphrase_) {
|
||||||
|
memset(change_old_pass_buf_, 0, sizeof(change_old_pass_buf_));
|
||||||
|
memset(change_new_pass_buf_, 0, sizeof(change_new_pass_buf_));
|
||||||
|
memset(change_confirm_buf_, 0, sizeof(change_confirm_buf_));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user