main/mc: re-enable tests and remove outdated option
Hi there,
We removed support for mmap
a couple of releases ago. Also in the latest release tests on musl
are ought to be fixed, so I would like to re-enable them if possible.
All the best, Yury
Merge request reports
Activity
assigned to @ncopa
added 1 commit
- b42a5e98 - main/mc: repair `make check` by adding `checkdepends` on `check`
added 1 commit
- 53edfbbc - main/mc: repair `make check` by adding `makedepends` on `check`
- Resolved by Yury Zaytsev
Okay, folks, I'm at a loss here:
checking for check >= 0.9.10... no configure: WARNING: 'Check' testing framework not found. Check your environment
First, I figured that
check
wasn't declared as a dependency at all. Somake check
would run, but not actually do anything.Then I added it to
checkdepends
, but that didn't help. I thought that was because it was too late and I neededcheck
at the./configure
stage, but moving it tomakedepends
didn't help either.Any ideas? If I install check locally, it's found no problem.
Many thanks!
/cc @Celeste
added 1 commit
- 9da44ff5 - main/mc: repair `make check` by adding `checkdepends` on `check-dev`
- Resolved by Yury Zaytsev
Looks like it’s all green now?
EDIT: no, it didn’t. It segfaults.
Testing /builds/zaytsev/aports/main/mc/src/mc-4.8.33/tests/src/vfs/extfs/helpers-list/data/u7z.simple.input Segmentation fault (core dumped) ERROR: Parsing of the output of the helper 'u7z' has failed. This means that u7z has produced output that MC won't be able to parse.
Edited by Natanael Copa
This is not a bug in musl. The application code has a buffer overflow in whatever object happened to be right below the group containing the object being freed. You can see this in
meta = 0x70786d6c00000000
. A pointer has been overwritten with 4 null bytes followed by the ASCII text "lmxp". Hopefully this helps identify what object the buffer overflow is in.- Resolved by Yury Zaytsev
Actually there's another, perhaps more likely explanation: it looks like the byte below the start of the memory it's trying to free has been clobbered with a 0, so that base is miscomputed and meta is looked up at the wrong location. So maybe there's some code designed to zero the last byte of a buffer (e.g. removing a newline), but not handling the case of buffer length 0, thereby writing a 0 before the start?
FYI: All of what you see musl doing here is intentional consistency checking, designed so that, on any corruption (via UB) from the application, the metadata block will fail to be found the the code in
get_meta
will intentionally crash - either the loaded addressmeta
will be invalid and fault on access, or it will fail to have a matching return pointer (line 141 of meta.h) or cryptographic entropy secret (line 146).
added 1 commit
- 5ebc48da - mc/main: add patch to fix failure exposed by debug s390x
added 174 commits
-
5ebc48da...e7fddce8 - 171 commits from branch
alpine:master
- eedf9423 - main/mc: re-enable tests and remove outdated option
- 06e91364 - main/mc: repair `make check` by adding `checkdepends` on `check-dev`
- 99ddc7de - mc/main: add patch to fix failure exposed on s390x
Toggle commit list-
5ebc48da...e7fddce8 - 171 commits from branch
added 56 commits
-
99ddc7de...aaeadb8c - 53 commits from branch
alpine:master
- ee4631cb - main/mc: re-enable tests and remove outdated option
- d5bcd2ec - main/mc: repair `make check` by adding `checkdepends` on `check-dev`
- 0907fdde - mc/main: add patch to fix failure exposed on s390x
Toggle commit list-
99ddc7de...aaeadb8c - 53 commits from branch