• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IJHack / QtPass / 28634577885
63%

Build:
DEFAULT BRANCH: main
Ran 03 Jul 2026 02:38AM UTC
Jobs 1
Files 81
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Jul 2026 02:32AM UTC coverage: 56.397% (+0.01%) from 56.387%
28634577885

push

github

web-flow
fix: prevent use-after-free of the keygen dialog pointer (#1603)

* fix: prevent use-after-free of the keygen dialog pointer

The keygen dialog is created on the caller's stack (ConfigDialog::
on_pushButtonGenerateKey_clicked runs KeygenDialog d; d.exec()) and
KeygenDialog::done() starts gpg --gen-key asynchronously without closing the
dialog, so the modal loop keeps running and the dialog stays interactive. If
the user closes it (window close button or Escape) while generation is still in
flight, exec() returns and the stack dialog is destroyed — but MainWindow's raw
m_keyGenDialog still points at it. When gpg finishes, onKeyGenerationComplete()
calls cleanKeygenDialog(), which does m_keyGenDialog->close() on freed memory.

Make m_keyGenDialog a QPointer<QDialog> so it auto-clears when the dialog is
destroyed; getKeyGenDialog()/cleanKeygenDialog() then correctly observe nullptr
and skip the dangling close. Includes a regression test that destroys the
dialog after generateKeyPair() and asserts the pointer reads back as null.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* test: parent keygen-dialog test widget to avoid Qt 5.15 teardown crash

The regression test created a top-level QDialog and deleted it without hiding
it; on the Qt 5.15 offscreen platform this leaves a dangling active-window
pointer that segfaults during QApplication teardown (all assertions pass, then
the process crashes on exit). Parent the dialog to the MainWindow so it is
never a top-level widget. No change to what the test verifies.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* test: drop keygen-dialog UAF test pending Qt 5.15 teardown investigation

The test passed on all platforms but its simulate-destruction sequence
segfaulted the tst_mainwindow binary during Qt 5.15 offscreen QAppl... (continued)

3791 of 6722 relevant lines covered (56.4%)

30.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 28634577885.1 03 Jul 2026 02:38AM UTC 81
56.4
GitHub Action Run
Source Files on build 28634577885
  • Tree
  • List 81
  • Changed 4
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28634577885
  • 8b722f83 on github
  • Prev Build on main (#28631719104)
  • Next Build on main (#28647196804)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc