|
@@ -14,6 +14,10 @@
|
|
|
* ----------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
+
|
|
|
+ * rather than to fix its warnings. */
|
|
|
+#define BUILDING_FOR_TOR
|
|
|
+
|
|
|
|
|
|
* Defining MALLOC_EXTRA_SANITY will enable extra checks which are
|
|
|
* related to internal conditions and consistency in malloc.c. This has
|
|
@@ -79,6 +83,7 @@ static size_t g_alignment = 0;
|
|
|
|
|
|
extern int __libc_enable_secure;
|
|
|
|
|
|
+#ifndef HAVE_ISSETUGID
|
|
|
static int issetugid(void)
|
|
|
{
|
|
|
if (__libc_enable_secure) return 1;
|
|
@@ -86,8 +91,10 @@ static int issetugid(void)
|
|
|
if (getgid() != getegid()) return 1;
|
|
|
return 0;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
#define PGSHIFT 12
|
|
|
+#undef MADV_FREE
|
|
|
#define MADV_FREE MADV_DONTNEED
|
|
|
#include <pthread.h>
|
|
|
static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
@@ -456,7 +463,7 @@ wrterror(const char *p)
|
|
|
iov[3].iov_len = strlen(p);
|
|
|
iov[4].iov_base = (char*)"\n";
|
|
|
iov[4].iov_len = 1;
|
|
|
- writev(STDERR_FILENO, iov, 5);
|
|
|
+ (void) writev(STDERR_FILENO, iov, 5);
|
|
|
|
|
|
suicide = 1;
|
|
|
#ifdef MALLOC_STATS
|
|
@@ -489,8 +496,8 @@ wrtwarning(const char *p)
|
|
|
iov[3].iov_len = strlen(p);
|
|
|
iov[4].iov_base = (char*)"\n";
|
|
|
iov[4].iov_len = 1;
|
|
|
-
|
|
|
- writev(STDERR_FILENO, iov, 5);
|
|
|
+
|
|
|
+ (void) writev(STDERR_FILENO, iov, 5);
|
|
|
}
|
|
|
|
|
|
#ifdef MALLOC_STATS
|
|
@@ -665,7 +672,7 @@ malloc_init(void)
|
|
|
for (i = 0; i < 3; i++) {
|
|
|
switch (i) {
|
|
|
case 0:
|
|
|
- j = readlink("/etc/malloc.conf", b, sizeof b - 1);
|
|
|
+ j = (int) readlink("/etc/malloc.conf", b, sizeof b - 1);
|
|
|
if (j <= 0)
|
|
|
continue;
|
|
|
b[j] = '\0';
|
|
@@ -1145,9 +1152,10 @@ malloc_bytes(size_t size)
|
|
|
if (size == 0)
|
|
|
j = 0;
|
|
|
else {
|
|
|
+ size_t ii;
|
|
|
j = 1;
|
|
|
- i = size - 1;
|
|
|
- while (i >>= 1)
|
|
|
+ ii = size - 1;
|
|
|
+ while (ii >>= 1)
|
|
|
j++;
|
|
|
}
|
|
|
|
|
@@ -1971,6 +1979,7 @@ calloc(size_t num, size_t size)
|
|
|
return(p);
|
|
|
}
|
|
|
|
|
|
+#ifndef BUILDING_FOR_TOR
|
|
|
static int ispowerof2 (size_t a) {
|
|
|
size_t b;
|
|
|
for (b = 1ULL << (sizeof(size_t)*NBBY - 1); b > 1; b >>= 1)
|
|
@@ -1978,7 +1987,9 @@ static int ispowerof2 (size_t a) {
|
|
|
return 1;
|
|
|
return 0;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
+#ifndef BUILDING_FOR_TOR
|
|
|
int posix_memalign(void **memptr, size_t alignment, size_t size)
|
|
|
{
|
|
|
void *r;
|
|
@@ -2015,18 +2026,20 @@ void *valloc(size_t size)
|
|
|
posix_memalign(&r, malloc_pagesize, size);
|
|
|
return r;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
size_t malloc_good_size(size_t size)
|
|
|
{
|
|
|
if (size == 0) {
|
|
|
return 1;
|
|
|
} else if (size <= malloc_maxsize) {
|
|
|
- int i, j;
|
|
|
+ int j;
|
|
|
+ size_t ii;
|
|
|
|
|
|
* as malloc_bytes() uses. */
|
|
|
j = 1;
|
|
|
- i = size - 1;
|
|
|
- while (i >>= 1)
|
|
|
+ ii = size - 1;
|
|
|
+ while (ii >>= 1)
|
|
|
j++;
|
|
|
return ((size_t)1) << j;
|
|
|
} else {
|