about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--elf/dl-conflict.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/elf/dl-conflict.c b/elf/dl-conflict.c
index f4c20eaad0..0f863ac893 100644
--- a/elf/dl-conflict.c
+++ b/elf/dl-conflict.c
@@ -24,6 +24,7 @@
 #include <unistd.h>
 #include <ldsodefs.h>
 #include <sys/mman.h>
+#include <sys/param.h>
 #include <sys/types.h>
 #include "dynamic-link.h"
 
@@ -47,8 +48,10 @@ _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict,
 #define RESOLVE_CONFLICT_FIND_MAP(map, r_offset)		\
 do								\
   {								\
-    while (resolve_conflict_map->l_map_end < (r_offset)		\
-	   || resolve_conflict_map->l_map_start > (r_offset))	\
+    while ((resolve_conflict_map->l_map_end			\
+	    < (ElfW(Addr))(r_offset))				\
+	   || (resolve_conflict_map->l_map_start		\
+	       > (ElfW(Addr))(r_offset)))			\
       resolve_conflict_map					\
 	= resolve_conflict_map->l_next;				\
     (map) = resolve_conflict_map;				\