8c6b1ac
From 38b7a3026900670159f299f2daa7e35957752942 Mon Sep 17 00:00:00 2001
8c6b1ac
From: Vladimir Serbinenko <phcoder@gmail.com>
8c6b1ac
Date: Thu, 26 Feb 2015 22:10:29 +0100
8c6b1ac
Subject: [PATCH 341/506] arm/dl: Fix handling of nonstandard relocation sizes
8c6b1ac
8c6b1ac
---
8c6b1ac
 grub-core/kern/arm/dl.c | 6 +++---
8c6b1ac
 1 file changed, 3 insertions(+), 3 deletions(-)
8c6b1ac
8c6b1ac
diff --git a/grub-core/kern/arm/dl.c b/grub-core/kern/arm/dl.c
8c6b1ac
index 5cbd65e..24364e1 100644
8c6b1ac
--- a/grub-core/kern/arm/dl.c
8c6b1ac
+++ b/grub-core/kern/arm/dl.c
8c6b1ac
@@ -78,9 +78,9 @@ grub_arch_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
8c6b1ac
 	const Elf_Rel *rel, *max;
8c6b1ac
 
8c6b1ac
 	for (rel = (const Elf_Rel *) ((grub_addr_t) e + s->sh_offset),
8c6b1ac
-	       max = rel + s->sh_size / s->sh_entsize;
8c6b1ac
-	     rel < max;
8c6b1ac
-	     rel++)
8c6b1ac
+	       max = (const Elf_Rel *) ((grub_addr_t) rel + s->sh_size);
8c6b1ac
+	     rel + 1 <= max;
8c6b1ac
+	     rel = (const Elf_Rel *) ((grub_addr_t) rel + s->sh_entsize))
8c6b1ac
 	  switch (ELF_R_TYPE (rel->r_info))
8c6b1ac
 	    {
8c6b1ac
 	    case R_ARM_CALL:
8c6b1ac
-- 
8c6b1ac
2.4.3
8c6b1ac