mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Merge branch 'bug6379' into maint-0.2.3
This commit is contained in:
commit
97602c9de4
6
changes/bug6379
Normal file
6
changes/bug6379
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
o Minor bugfixes:
|
||||||
|
- Fix build warnings from --enable-openbsd-malloc with gcc warnings
|
||||||
|
enabled. Fixes bug 6379.
|
||||||
|
- Fix 64-bit warnings from --enable-openbsd-malloc. Fixes bug 6379.
|
||||||
|
Bugfix on 0.2.0.20-rc.
|
||||||
|
|
@ -300,6 +300,7 @@ AC_CHECK_FUNCS(
|
|||||||
gmtime_r \
|
gmtime_r \
|
||||||
inet_aton \
|
inet_aton \
|
||||||
ioctl \
|
ioctl \
|
||||||
|
issetugid \
|
||||||
localtime_r \
|
localtime_r \
|
||||||
lround \
|
lround \
|
||||||
memmem \
|
memmem \
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* We use this macro to remove some code that we don't actually want,
|
||||||
|
* rather than to fix its warnings. */
|
||||||
|
#define BUILDING_FOR_TOR
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defining MALLOC_EXTRA_SANITY will enable extra checks which are
|
* Defining MALLOC_EXTRA_SANITY will enable extra checks which are
|
||||||
* related to internal conditions and consistency in malloc.c. This has
|
* 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;
|
extern int __libc_enable_secure;
|
||||||
|
|
||||||
|
#ifndef HAVE_ISSETUGID
|
||||||
static int issetugid(void)
|
static int issetugid(void)
|
||||||
{
|
{
|
||||||
if (__libc_enable_secure) return 1;
|
if (__libc_enable_secure) return 1;
|
||||||
@ -86,8 +91,10 @@ static int issetugid(void)
|
|||||||
if (getgid() != getegid()) return 1;
|
if (getgid() != getegid()) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PGSHIFT 12
|
#define PGSHIFT 12
|
||||||
|
#undef MADV_FREE
|
||||||
#define MADV_FREE MADV_DONTNEED
|
#define MADV_FREE MADV_DONTNEED
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER;
|
static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
@ -443,6 +450,7 @@ extern char *__progname;
|
|||||||
static void
|
static void
|
||||||
wrterror(const char *p)
|
wrterror(const char *p)
|
||||||
{
|
{
|
||||||
|
#ifndef BUILDING_FOR_TOR
|
||||||
const char *q = " error: ";
|
const char *q = " error: ";
|
||||||
struct iovec iov[5];
|
struct iovec iov[5];
|
||||||
|
|
||||||
@ -457,7 +465,9 @@ wrterror(const char *p)
|
|||||||
iov[4].iov_base = (char*)"\n";
|
iov[4].iov_base = (char*)"\n";
|
||||||
iov[4].iov_len = 1;
|
iov[4].iov_len = 1;
|
||||||
writev(STDERR_FILENO, iov, 5);
|
writev(STDERR_FILENO, iov, 5);
|
||||||
|
#else
|
||||||
|
(void)p;
|
||||||
|
#endif
|
||||||
suicide = 1;
|
suicide = 1;
|
||||||
#ifdef MALLOC_STATS
|
#ifdef MALLOC_STATS
|
||||||
if (malloc_stats)
|
if (malloc_stats)
|
||||||
@ -471,14 +481,17 @@ wrterror(const char *p)
|
|||||||
static void
|
static void
|
||||||
wrtwarning(const char *p)
|
wrtwarning(const char *p)
|
||||||
{
|
{
|
||||||
|
#ifndef BUILDING_FOR_TOR
|
||||||
const char *q = " warning: ";
|
const char *q = " warning: ";
|
||||||
struct iovec iov[5];
|
struct iovec iov[5];
|
||||||
|
#endif
|
||||||
|
|
||||||
if (malloc_abort)
|
if (malloc_abort)
|
||||||
wrterror(p);
|
wrterror(p);
|
||||||
else if (malloc_silent)
|
else if (malloc_silent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifndef BUILDING_FOR_TOR
|
||||||
iov[0].iov_base = __progname;
|
iov[0].iov_base = __progname;
|
||||||
iov[0].iov_len = strlen(__progname);
|
iov[0].iov_len = strlen(__progname);
|
||||||
iov[1].iov_base = (char*)malloc_func;
|
iov[1].iov_base = (char*)malloc_func;
|
||||||
@ -489,8 +502,11 @@ wrtwarning(const char *p)
|
|||||||
iov[3].iov_len = strlen(p);
|
iov[3].iov_len = strlen(p);
|
||||||
iov[4].iov_base = (char*)"\n";
|
iov[4].iov_base = (char*)"\n";
|
||||||
iov[4].iov_len = 1;
|
iov[4].iov_len = 1;
|
||||||
|
|
||||||
writev(STDERR_FILENO, iov, 5);
|
(void) writev(STDERR_FILENO, iov, 5);
|
||||||
|
#else
|
||||||
|
(void)p;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MALLOC_STATS
|
#ifdef MALLOC_STATS
|
||||||
@ -665,7 +681,7 @@ malloc_init(void)
|
|||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0:
|
case 0:
|
||||||
j = readlink("/etc/malloc.conf", b, sizeof b - 1);
|
j = (int) readlink("/etc/malloc.conf", b, sizeof b - 1);
|
||||||
if (j <= 0)
|
if (j <= 0)
|
||||||
continue;
|
continue;
|
||||||
b[j] = '\0';
|
b[j] = '\0';
|
||||||
@ -1145,9 +1161,10 @@ malloc_bytes(size_t size)
|
|||||||
if (size == 0)
|
if (size == 0)
|
||||||
j = 0;
|
j = 0;
|
||||||
else {
|
else {
|
||||||
|
size_t ii;
|
||||||
j = 1;
|
j = 1;
|
||||||
i = size - 1;
|
ii = size - 1;
|
||||||
while (i >>= 1)
|
while (ii >>= 1)
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1971,6 +1988,7 @@ calloc(size_t num, size_t size)
|
|||||||
return(p);
|
return(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef BUILDING_FOR_TOR
|
||||||
static int ispowerof2 (size_t a) {
|
static int ispowerof2 (size_t a) {
|
||||||
size_t b;
|
size_t b;
|
||||||
for (b = 1ULL << (sizeof(size_t)*NBBY - 1); b > 1; b >>= 1)
|
for (b = 1ULL << (sizeof(size_t)*NBBY - 1); b > 1; b >>= 1)
|
||||||
@ -1978,7 +1996,9 @@ static int ispowerof2 (size_t a) {
|
|||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BUILDING_FOR_TOR
|
||||||
int posix_memalign(void **memptr, size_t alignment, size_t size)
|
int posix_memalign(void **memptr, size_t alignment, size_t size)
|
||||||
{
|
{
|
||||||
void *r;
|
void *r;
|
||||||
@ -2015,18 +2035,20 @@ void *valloc(size_t size)
|
|||||||
posix_memalign(&r, malloc_pagesize, size);
|
posix_memalign(&r, malloc_pagesize, size);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
size_t malloc_good_size(size_t size)
|
size_t malloc_good_size(size_t size)
|
||||||
{
|
{
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
return 1;
|
return 1;
|
||||||
} else if (size <= malloc_maxsize) {
|
} else if (size <= malloc_maxsize) {
|
||||||
int i, j;
|
int j;
|
||||||
|
size_t ii;
|
||||||
/* round up to the nearest power of 2, with same approach
|
/* round up to the nearest power of 2, with same approach
|
||||||
* as malloc_bytes() uses. */
|
* as malloc_bytes() uses. */
|
||||||
j = 1;
|
j = 1;
|
||||||
i = size - 1;
|
ii = size - 1;
|
||||||
while (i >>= 1)
|
while (ii >>= 1)
|
||||||
j++;
|
j++;
|
||||||
return ((size_t)1) << j;
|
return ((size_t)1) << j;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user