]> andersk Git - openssh.git/blobdiff - monitor_mm.c
- (tim) [configure.ac] Add AC_REVISION. Add sys/time.h to lastlog.h test
[openssh.git] / monitor_mm.c
index fbf57b439dc00c1b533fded35e535bfae17caac2..b0ec37cff93aca9fd014aeb6ab8a44cc04a39b9a 100644 (file)
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: monitor_mm.c,v 1.7 2002/06/28 01:49:31 millert Exp $");
+RCSID("$OpenBSD: monitor_mm.c,v 1.9 2004/05/11 19:01:43 deraadt Exp $");
 
 #ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
 #endif
 
-#include "openbsd-compat/xmmap.h"
 #include "ssh.h"
 #include "xmalloc.h"
 #include "log.h"
@@ -93,7 +92,7 @@ mm_create(struct mm_master *mmalloc, size_t size)
        mm->mmalloc = mmalloc;
 
        address = xmmap(size);
-       if (address == MAP_FAILED)
+       if (address == (void *)MAP_FAILED)
                fatal("mmap(%lu): %s", (u_long)size, strerror(errno));
 
        mm->address = address;
@@ -167,8 +166,10 @@ mm_malloc(struct mm_master *mm, size_t size)
 
        if (size == 0)
                fatal("mm_malloc: try to allocate 0 space");
+       if (size > SIZE_T_MAX - MM_MINSIZE + 1)
+               fatal("mm_malloc: size too big");
 
-       size = ((size + MM_MINSIZE - 1) / MM_MINSIZE) * MM_MINSIZE;
+       size = ((size + (MM_MINSIZE - 1)) / MM_MINSIZE) * MM_MINSIZE;
 
        RB_FOREACH(mms, mmtree, &mm->rb_free) {
                if (mms->size >= size)
This page took 0.047897 seconds and 4 git commands to generate.