-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make little overflows its stack #797
Comments
The breakage is probably from removing the |
No, it seems unrelated to that. I'm seeing this from other programs in the log:
But not for |
|
Remove explicit checking for pending signals from writing code paths, since this is handled automatically when blocking, and should not happen if the write() call is "short", i.e. doesn't block. All the other syscalls already work like this. Fixes SerenityOS#797
Some recent changes must have broken GNU Make. Now, when I run
cd little && make
(make sure to either comment out themkdir()
call or#include <sys/stat.h>
to make it compile), I get a bunch ofmake: write error: stdout: Bad fd number
errors, then it overflows its stack and the new stack pointer validation code kills it.Here's a stacktrace for the first time it calls
close()
on stdout:and here's the second time:
The rest are presumably similar. Here's the
close_stdout()
function:it's set as an
atexit
handler.Now, POSIX states that
and the Linux man page says
This is clearly the case here —
close_stdout()
callsexit()
on errors despite being an exit handler itself, so I don't think this needs fixing on our side. But why does it get an error (prev_fail || fclose_fail
) in the first place? Other times, such as when doingmake clean
, or when runningmake
again (with it reporting that there's nothing to do), this does not happen.The text was updated successfully, but these errors were encountered: