> > i've seen such things: mmap fails with EPERM > instead of ENOMEM when the system runs out of > virtual address space, i don't remember the > details though, you can debug it with strace. Interesting. if you figure it out i'd like to know when > this happens (probably a kernel bug). I'll see what I can find. If it's of interest/help I'm running on the 3.19.0-56-generic Linux Kernel. putenv-doublefree was recently fixed, so > your musl is probably not up to date. That's very likely. Thank you! On Wed, Mar 30, 2016 at 2:12 PM, Rich Felker wrote: > On Wed, Mar 30, 2016 at 08:04:43PM +0200, Szabolcs Nagy wrote: > > * Max Ruttenberg [2016-03-30 13:22:19 > -0400]: > > > this is what my src/regression/REPORT file looks like: > > > > > > > ****************************************************************************************************************************** > > > src/regression/malloc-brk-fail.c:33: malloc did not fail with ENOMEM, > got > > > Operation not permitted > > > FAIL ./src/regression/malloc-brk-fail-static.exe [status 1] > > > src/regression/malloc-brk-fail.c:33: malloc did not fail with ENOMEM, > got > > > Operation not permitted > > > FAIL ./src/regression/malloc-brk-fail.exe [status 1] > > > src/regression/malloc-oom.c:16: expected ENOMEM, got Operation not > permitted > > > FAIL ./src/regression/malloc-oom-static.exe [status 1] > > > src/regression/malloc-oom.c:16: expected ENOMEM, got Operation not > permitted > > > FAIL ./src/regression/malloc-oom.exe [status 1] > > > FAIL ./src/regression/putenv-doublefree-static.exe [signal Segmentation > > > fault] > > > FAIL ./src/regression/putenv-doublefree.exe [signal Segmentation fault] > > > src/regression/setenv-oom.c:23: expected ENOMEM, got Operation not > permitted > > > FAIL ./src/regression/setenv-oom-static.exe [status 1] > > > src/regression/setenv-oom.c:23: expected ENOMEM, got Operation not > permitted > > > FAIL ./src/regression/setenv-oom.exe [status 1] > > > > ****************************************************************************************************************************** > > > > > > Is the brk system call still kosher? I thought malloc was supposed to > use > > > something mmap. > > > > > > > i've seen such things: mmap fails with EPERM > > instead of ENOMEM when the system runs out of > > virtual address space, i don't remember the > > details though, you can debug it with strace. > > > > if you figure it out i'd like to know when > > this happens (probably a kernel bug). > > We should probably work around this kernel bug by not trusting mmap to > set errno and instead just setting it to ENOMEM on failure (in the > malloc code at least; working around it in the mmap function may be > more work becaus EPERM is a valid error for some usage cases). > > Rich > - Max