summaryrefslogtreecommitdiff
path: root/monitor_mm.c
diff options
context:
space:
mode:
authordjm <djm>2014-01-09 23:37:05 +0000
committerdjm <djm>2014-01-09 23:37:05 +0000
commitf65633fa440913335f16feef1183ebe3a51578ec (patch)
tree06e17f2a63d14f3c79a889a00953be9e109bd01c /monitor_mm.c
parent1376b94a37e7033bc67021dd8b7f67778e82af1c (diff)
downloadopenssh-f65633fa440913335f16feef1183ebe3a51578ec.tar.gz
- tedu@cvs.openbsd.org 2014/01/04 17:50:55
[mac.c monitor_mm.c monitor_mm.h xmalloc.c] use standard types and formats for size_t like variables. ok dtucker
Diffstat (limited to 'monitor_mm.c')
-rw-r--r--monitor_mm.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/monitor_mm.c b/monitor_mm.c
index ee7bad4b..0ba0658a 100644
--- a/monitor_mm.c
+++ b/monitor_mm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: monitor_mm.c,v 1.17 2013/05/17 00:13:13 djm Exp $ */
+/* $OpenBSD: monitor_mm.c,v 1.19 2014/01/04 17:50:55 tedu Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* All rights reserved.
@@ -35,6 +35,7 @@
#include <errno.h>
#include <stdarg.h>
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -46,7 +47,7 @@
static int
mm_compare(struct mm_share *a, struct mm_share *b)
{
- long diff = (char *)a->address - (char *)b->address;
+ ptrdiff_t diff = (char *)a->address - (char *)b->address;
if (diff == 0)
return (0);
@@ -65,7 +66,7 @@ mm_make_entry(struct mm_master *mm, struct mmtree *head,
struct mm_share *tmp, *tmp2;
if (mm->mmalloc == NULL)
- tmp = xmalloc(sizeof(struct mm_share));
+ tmp = xcalloc(1, sizeof(struct mm_share));
else
tmp = mm_xmalloc(mm->mmalloc, sizeof(struct mm_share));
tmp->address = address;
@@ -73,8 +74,8 @@ mm_make_entry(struct mm_master *mm, struct mmtree *head,
tmp2 = RB_INSERT(mmtree, head, tmp);
if (tmp2 != NULL)
- fatal("mm_make_entry(%p): double address %p->%p(%lu)",
- mm, tmp2, address, (u_long)size);
+ fatal("mm_make_entry(%p): double address %p->%p(%zu)",
+ mm, tmp2, address, size);
return (tmp);
}
@@ -88,7 +89,7 @@ mm_create(struct mm_master *mmalloc, size_t size)
struct mm_master *mm;
if (mmalloc == NULL)
- mm = xmalloc(sizeof(struct mm_master));
+ mm = xcalloc(1, sizeof(struct mm_master));
else
mm = mm_xmalloc(mmalloc, sizeof(struct mm_master));
@@ -101,7 +102,7 @@ mm_create(struct mm_master *mmalloc, size_t size)
address = xmmap(size);
if (address == (void *)MAP_FAILED)
- fatal("mmap(%lu): %s", (u_long)size, strerror(errno));
+ fatal("mmap(%zu): %s", size, strerror(errno));
mm->address = address;
mm->size = size;
@@ -141,7 +142,7 @@ mm_destroy(struct mm_master *mm)
#ifdef HAVE_MMAP
if (munmap(mm->address, mm->size) == -1)
- fatal("munmap(%p, %lu): %s", mm->address, (u_long)mm->size,
+ fatal("munmap(%p, %zu): %s", mm->address, mm->size,
strerror(errno));
#else
fatal("%s: UsePrivilegeSeparation=yes and Compression=yes not supported",
@@ -160,7 +161,8 @@ mm_xmalloc(struct mm_master *mm, size_t size)
address = mm_malloc(mm, size);
if (address == NULL)
- fatal("%s: mm_malloc(%lu)", __func__, (u_long)size);
+ fatal("%s: mm_malloc(%zu)", __func__, size);
+ memset(address, 0, size);
return (address);
}
@@ -194,7 +196,7 @@ mm_malloc(struct mm_master *mm, size_t size)
/* Does not change order in RB tree */
mms->size -= size;
- mms->address = (u_char *)mms->address + size;
+ mms->address = (char *)mms->address + size;
if (mms->size == 0) {
RB_REMOVE(mmtree, &mm->rb_free, mms);
@@ -247,8 +249,8 @@ mm_free(struct mm_master *mm, void *address)
/* Check if range does not overlap */
if (prev != NULL && MM_ADDRESS_END(prev) > address)
- fatal("mm_free: memory corruption: %p(%lu) > %p",
- prev->address, (u_long)prev->size, address);
+ fatal("mm_free: memory corruption: %p(%zu) > %p",
+ prev->address, prev->size, address);
/* See if we can merge backwards */
if (prev != NULL && MM_ADDRESS_END(prev) == address) {
@@ -270,8 +272,8 @@ mm_free(struct mm_master *mm, void *address)
return;
if (MM_ADDRESS_END(prev) > mms->address)
- fatal("mm_free: memory corruption: %p < %p(%lu)",
- mms->address, prev->address, (u_long)prev->size);
+ fatal("mm_free: memory corruption: %p < %p(%zu)",
+ mms->address, prev->address, prev->size);
if (MM_ADDRESS_END(prev) != mms->address)
return;
@@ -342,12 +344,12 @@ mm_share_sync(struct mm_master **pmm, struct mm_master **pmmalloc)
void
mm_memvalid(struct mm_master *mm, void *address, size_t size)
{
- void *end = (u_char *)address + size;
+ void *end = (char *)address + size;
if (address < mm->address)
fatal("mm_memvalid: address too small: %p", address);
if (end < address)
fatal("mm_memvalid: end < address: %p < %p", end, address);
- if (end > (void *)((u_char *)mm->address + mm->size))
+ if (end > MM_ADDRESS_END(mm))
fatal("mm_memvalid: address too large: %p", address);
}