summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--monitor_mm.c11
2 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 014aa948..99e2bb58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,12 @@
- stevesk@cvs.openbsd.org 2002/06/27 19:49:08
[ssh-keyscan.c]
use convtime(); ok markus@
+ - millert@cvs.openbsd.org 2002/06/28 01:49:31
+ [monitor_mm.c]
+ tree(3) wants an int return value for its compare functions and
+ the difference between two pointers is not an int. Just do the
+ safest thing and store the result in a long and then return 0,
+ -1, or 1 based on that result.
20020702
- (djm) Use PAM_MSG_MEMBER for PAM_TEXT_INFO messages, use xmalloc &
@@ -1223,4 +1229,4 @@
- (stevesk) entropy.c: typo in debug message
- (djm) ssh-keygen -i needs seeded RNG; report from markus@
-$Id: ChangeLog,v 1.2319 2002/07/04 00:07:13 mouring Exp $
+$Id: ChangeLog,v 1.2320 2002/07/04 00:08:23 mouring Exp $
diff --git a/monitor_mm.c b/monitor_mm.c
index c363036e..f72a180e 100644
--- a/monitor_mm.c
+++ b/monitor_mm.c
@@ -24,7 +24,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: monitor_mm.c,v 1.6 2002/06/04 23:05:49 markus Exp $");
+RCSID("$OpenBSD: monitor_mm.c,v 1.7 2002/06/28 01:49:31 millert Exp $");
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
@@ -38,7 +38,14 @@ RCSID("$OpenBSD: monitor_mm.c,v 1.6 2002/06/04 23:05:49 markus Exp $");
static int
mm_compare(struct mm_share *a, struct mm_share *b)
{
- return ((char *)a->address - (char *)b->address);
+ long diff = (char *)a->address - (char *)b->address;
+
+ if (diff == 0)
+ return (0);
+ else if (diff < 0)
+ return (-1);
+ else
+ return (1);
}
RB_GENERATE(mmtree, mm_share, next, mm_compare)