Commit c39c9ce2 authored by David Goulet's avatar David Goulet 🆘
Browse files

Merge branch 'tor-github/pr/1285'

parents 028733e8 52342327
o Major bugfixes (crash, android):
- Tolerate systems (including some Android installations) where madvise
and MADV_DONTDUMP are available at build-time, but not at run time.
Previously, these systems would notice a failed syscall and abort.
Fixes bug 31570; bugfix on 0.4.1.1-alpha.
......@@ -27,6 +27,9 @@
#include <windows.h>
#endif
#include <string.h>
#include <errno.h>
/**
* Macro to get the high bytes of a size_t, if there are high bytes.
* Windows needs this; other operating systems define a size_t that does
......@@ -108,7 +111,17 @@ static int
nodump_mem(void *mem, size_t sz)
{
#if defined(MADV_DONTDUMP)
return madvise(mem, sz, MADV_DONTDUMP);
int rv = madvise(mem, sz, MADV_DONTDUMP);
if (rv == 0) {
return 0;
} else if (errno == ENOSYS || errno == EINVAL) {
return 0; // syscall not supported, or flag not supported.
} else {
tor_log_err_sigsafe("Unexpected error from madvise: ",
strerror(errno),
NULL);
return -1;
}
#else
(void) mem;
(void) sz;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment