Skip to content

cksum: fix parsing error with tagged cheksum files#11704

Open
frenchua wants to merge 1 commit intouutils:mainfrom
frenchua:fix-cksum-parsing-error
Open

cksum: fix parsing error with tagged cheksum files#11704
frenchua wants to merge 1 commit intouutils:mainfrom
frenchua:fix-cksum-parsing-error

Conversation

@frenchua
Copy link
Copy Markdown

@frenchua frenchua commented Apr 7, 2026

When passed the '-c'/'--check' flag, and parsing a checksum file in the "tagged" format, cksum (symlinked to sha256sum, etc...) expects a line that looks like this:

ShA256 (file.bin) = da39a3ee5e6b4b0d3255bfef95601890afd80709

If the hash algorithm at the beginning of the line (in the above case SHA256) is missing, then cksum panics because it is attempts to use the value of an array at index -1. This fix causes cksum to instead consider the line a syntax error and ignore it, just as GNU cksum does. I also added unit and integration tests to check for the above behaviour.

(This is a second PR I made concerning this issue. I closed the previous one becuase I can't figure out how git rebase can be used to squash non-contiguous commits, but I think I've learned how to use it now).

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 8, 2026

GNU testsuite comparison:

GNU test failed: tests/misc/io-errors. tests/misc/io-errors is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/tty/tty-eof (passes in this run but fails in the 'main' branch)

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/misc/io-errors. tests/misc/io-errors is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/tty/tty-eof (fails in this run but passes in the 'main' branch)

@frenchua frenchua force-pushed the fix-cksum-parsing-error branch from 85ec59f to fd4ed92 Compare April 13, 2026 16:22
When passed the '-c'/'--check' flag, and parsing a checksum file in
the "tagged" format, cksum (symlinked to sha256sum, etc...) expects a
line that looks like this:

ShA256 (file.bin) = da39a3ee5e6b4b0d3255bfef95601890afd80709

If the hash algorithm at the beginning of the line (in the above case
SHA256) is missing, then cksum panics because it is attempts to use the
value of an array at index -1. This fix causes cksum to instead consider
the line a syntax error and ignore it, just as GNU cksum does. I also
added unit and integration tests to check for the above behaviour.
@frenchua frenchua force-pushed the fix-cksum-parsing-error branch from fd4ed92 to d3e27bc Compare April 13, 2026 16:45
@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

Skip an intermittent issue tests/tty/tty-eof (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/cut/bounded-memory is now being skipped but was previously passing.
Congrats! The gnu test tests/expand/bounded-memory is now passing!

@frenchua
Copy link
Copy Markdown
Author

frenchua commented Apr 14, 2026

Concerning the one failed check:

Both test_create_one_fifo_with_non_file_permission_mode and test_create_one_fifo_already_exists pass on my local machine (Intel Macbook), both on my branch and main. I'll try again on ubuntu. But I don't see how any changes I made could possibly affect the outcomes of these tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant