Browse Source

Make do_rem() safe. From Peter Kjellerstedt.

Joakim Tjernlund 19 years ago
parent
commit
7df9d0a317

+ 1 - 1
ldso/ldso/arm/dl-sysdep.h

@@ -42,7 +42,7 @@ static inline unsigned long arm_modulus(unsigned long m, unsigned long p)
 	}
 	return m;
 }
-#define do_rem(result, n, base)  result=arm_modulus(n,base);
+#define do_rem(result, n, base) ((result) = arm_modulus(n, base))
 
 /* Here we define the magic numbers that this dynamic loader should accept */
 #define MAGIC1 EM_ARM

+ 1 - 1
ldso/ldso/cris/dl-sysdep.h

@@ -53,7 +53,7 @@ cris_mod(unsigned long m, unsigned long p)
 
 	return m;
 }
-#define do_rem(result, n, base) result = cris_mod(n, base);
+#define do_rem(result, n, base) ((result) = cris_mod(n, base))
 
 /* 8192 bytes alignment */
 #define PAGE_ALIGN 0xffffe000

+ 1 - 1
ldso/ldso/frv/dl-sysdep.h

@@ -65,7 +65,7 @@ struct funcdesc_value
 
 extern int _dl_linux_resolve(void) __attribute__((__visibility__("hidden")));
 
-#define do_rem(result, n, base)  result = (n % base)
+#define do_rem(result, n, base) ((result) = (n) % (base))
 
 /* 16KiB page alignment.  Should perhaps be made dynamic using
    getpagesize(), based on AT_PAGESZ from auxvt?  */

+ 1 - 1
ldso/ldso/i386/dl-sysdep.h

@@ -25,7 +25,7 @@ do {														\
 struct elf_resolve;
 extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
 
-#define do_rem(result, n, base)  result = (n % base)
+#define do_rem(result, n, base) ((result) = (n) % (base))
 
 /* 4096 bytes alignment */
 #define PAGE_ALIGN 0xfffff000

+ 1 - 1
ldso/ldso/mips/dl-sysdep.h

@@ -45,7 +45,7 @@ unsigned long _dl_linux_resolver(unsigned long sym_index,
 struct elf_resolve;
 void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt);
 
-#define do_rem(result, n, base)  result = (n % base)
+#define do_rem(result, n, base) ((result) = (n) % (base))
 
 /* 4096 bytes alignment */
 #define PAGE_ALIGN 0xfffff000

+ 1 - 1
ldso/ldso/powerpc/dl-sysdep.h

@@ -68,7 +68,7 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_ent
 void _dl_init_got(unsigned long *lpnt,struct elf_resolve *tpnt);
 
 
-#define do_rem(result, n, base)  result = (n % base)
+#define do_rem(result, n, base) ((result) = (n) % (base))
 
 /* 4096 bytes alignment */
 #define PAGE_ALIGN 0xfffff000

+ 1 - 1
ldso/ldso/sh64/dl-sysdep.h

@@ -25,7 +25,7 @@
 struct elf_resolve;
 extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
 
-#define do_rem(result, n, base)  result = (n % base)
+#define do_rem(result, n, base) ((result) = (n) % (base))
 
 /* 4096 bytes alignment */
 #define PAGE_ALIGN 0xfffff000

+ 1 - 1
ldso/ldso/sparc/dl-sysdep.h

@@ -84,7 +84,7 @@ sparc_mod(unsigned long m, unsigned long p)
 	return m;
 }
 
-#define do_rem(result, n, base) result = sparc_mod(n, base);
+#define do_rem(result, n, base) ((result) = sparc_mod(n, base))
 #endif
 
 /*