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

IJHack / QtPass / 35766482329
93%

Build:
DEFAULT BRANCH: main
Ran 22 Sep 2026 06:28PM UTC
Jobs 1
Files 114
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

22 Sep 2026 06:20PM UTC coverage: 92.967% (-0.01%) from 92.98%
35766482329

push

github

web-flow
Only a comparison of two known identities proves a swap (#1908)

* Only a comparison of two known identities proves a swap

From the adversarial review of #1906.

On FAT and exFAT the file ID is the offset of the directory entry, which a
rename moves whenever the new name needs a different number of entries: every
staged write on a store on a USB stick would have been reported as swapped.
Those filesystems have no hard links either — the swap the check identifies
needs one — so the file is taken as it is found there, and generally the write
now stands wherever the system cannot give both identities. On 32-bit builds
that was also fstat() failing with EOVERFLOW for an inode number that does not
fit a 32-bit struct stat, so unix builds define _FILE_OFFSET_BITS=64.

The reason a ciphertext could not be placed names the scratch file gpg wrote
when it comes from the copy; the summary line names the entry as well, as the
list promises.

The systematic-failures test restores the store's permissions before any
failure return, so a failing run does not leave an unremovable directory
behind, and the replaceFile test accepts a filesystem that refuses a hard link
to a symlink (HFS+ ENOTSUP, Linux protected_hardlinks) as long as it leaves no
name behind. Docs: placeEncryptedFile() and recoverReencryptLeftovers() say
what the code does now, and an entry that could not be replaced keeps its old
ciphertext rather than being "left as it was".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* tests: check the summary's detail lines, not its heading

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

10 of 12 new or added lines in 2 files covered. (83.33%)

3 existing lines in 1 file now uncovered.

8803 of 9469 relevant lines covered (92.97%)

149.61 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
93.64
-0.52% src/util.cpp

Coverage Regressions

Lines Coverage ∆ File
3
99.14
-0.0% src/passworddialog.cpp
Jobs
ID Job ID Ran Files Coverage
1 35766482329.1 22 Sep 2026 06:28PM UTC 114
92.97
GitHub Action Run
Source Files on build 35766482329
  • Tree
  • List 114
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35766482329
  • ffb5575e on github
  • Prev Build on main (#35721681840)
  • Next Build on main (#35766441897)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc