diff options
Diffstat (limited to 'libotr-3.2.0/src/mem.c')
| -rw-r--r-- | libotr-3.2.0/src/mem.c | 102 | 
1 files changed, 51 insertions, 51 deletions
diff --git a/libotr-3.2.0/src/mem.c b/libotr-3.2.0/src/mem.c index b2a2191..fe32baa 100644 --- a/libotr-3.2.0/src/mem.c +++ b/libotr-3.2.0/src/mem.c @@ -49,57 +49,57 @@ static int header_size;  static void *otrl_mem_malloc(size_t n)  { -    void *p; -    size_t new_n = n; -    new_n += header_size; +	void *p; +	size_t new_n = n; +	new_n += header_size; -    /* Check for overflow attack */ -    if (new_n < n) return NULL; -    p = malloc(new_n); -    if (p == NULL) return NULL; +	/* Check for overflow attack */ +	if (new_n < n) return NULL; +	p = malloc(new_n); +	if (p == NULL) return NULL; -    ((size_t *)p)[0] = new_n;  /* Includes header size */ +	((size_t *)p)[0] = new_n;  /* Includes header size */  #ifdef OTRL_MEM_MAGIC -    ((size_t *)p)[1] = OTRL_MEM_MAGIC; +	((size_t *)p)[1] = OTRL_MEM_MAGIC;  #endif -    return (void *)((char *)p + header_size); +	return (void *)((char *)p + header_size);  }  static int otrl_mem_is_secure(const void *p)  { -    return 1; +	return 1;  }  static void otrl_mem_free(void *p)  { -    void *real_p = (void *)((char *)p - header_size); -    size_t n = ((size_t *)real_p)[0]; +	void *real_p = (void *)((char *)p - header_size); +	size_t n = ((size_t *)real_p)[0];  #ifdef OTRL_MEM_MAGIC -    if (((size_t *)real_p)[1] != OTRL_MEM_MAGIC) { +	if (((size_t *)real_p)[1] != OTRL_MEM_MAGIC) {  	fprintf(stderr, "Illegal free!\n");  	return; -    } +	}  #endif -    /* Wipe the memory (in the same way the built-in deallocator in -     * libgcrypt would) */ -    memset(real_p, 0xff, n); -    memset(real_p, 0xaa, n); -    memset(real_p, 0x55, n); -    memset(real_p, 0x00, n); +	/* Wipe the memory (in the same way the built-in deallocator in +	 * libgcrypt would) */ +	memset(real_p, 0xff, n); +	memset(real_p, 0xaa, n); +	memset(real_p, 0x55, n); +	memset(real_p, 0x00, n); -    free(real_p); +	free(real_p);  }  static void *otrl_mem_realloc(void *p, size_t n)  { -    if (p == NULL) { +	if (p == NULL) {  	return otrl_mem_malloc(n); -    } else if (n == 0) { +	} else if (n == 0) {  	otrl_mem_free(p);  	return NULL; -    } else { +	} else {  	void *real_p = (void *)((char *)p - header_size);  	void *new_p;  	size_t old_n = ((size_t *)real_p)[0]; @@ -114,50 +114,50 @@ static void *otrl_mem_realloc(void *p, size_t n)  #ifdef OTRL_MEM_MAGIC  	if (magic != OTRL_MEM_MAGIC) { -	    fprintf(stderr, "Illegal realloc!\n"); -	    return NULL; +		fprintf(stderr, "Illegal realloc!\n"); +		return NULL;  	}  #endif  	if (new_n < old_n) { -	    /* Overwrite the space we're about to stop using */ -	    void *p = (void *)((char *)real_p + new_n); -	    size_t excess = old_n - new_n; -	    memset(p, 0xff, excess); -	    memset(p, 0xaa, excess); -	    memset(p, 0x55, excess); -	    memset(p, 0x00, excess); - -	    /* We don't actually need to realloc() */ -	    new_p = real_p; +		/* Overwrite the space we're about to stop using */ +		void *p = (void *)((char *)real_p + new_n); +		size_t excess = old_n - new_n; +		memset(p, 0xff, excess); +		memset(p, 0xaa, excess); +		memset(p, 0x55, excess); +		memset(p, 0x00, excess); + +		/* We don't actually need to realloc() */ +		new_p = real_p;  	} else { -	    new_p = realloc(real_p, new_n); -	    if (new_p == NULL) return NULL; +		new_p = realloc(real_p, new_n); +		if (new_p == NULL) return NULL;  	}  	((size_t *)new_p)[0] = new_n;  /* Includes header size */  	return (void *)((char *)new_p + header_size); -    } +	}  }  void otrl_mem_init(void)  { -    header_size = 8; +	header_size = 8;  #ifdef OTRL_MEM_MAGIC -    if (header_size < 2*sizeof(size_t)) { +	if (header_size < 2*sizeof(size_t)) {  	header_size = 2*sizeof(size_t); -    } +	}  #else -    if (header_size < sizeof(size_t)) { +	if (header_size < sizeof(size_t)) {  	header_size = sizeof(size_t); -    } +	}  #endif -    gcry_set_allocation_handler( -	    otrl_mem_malloc, -	    otrl_mem_malloc, -	    otrl_mem_is_secure, -	    otrl_mem_realloc, -	    otrl_mem_free +	gcry_set_allocation_handler( +		otrl_mem_malloc, +		otrl_mem_malloc, +		otrl_mem_is_secure, +		otrl_mem_realloc, +		otrl_mem_free  	);  }  | 
