From e3d1ac7bb1955d36980d267cb4cec40b0f7d30b5 Mon Sep 17 00:00:00 2001
From: Scott Wood <scottwood@freescale.com>
Date: Thu, 2 Apr 2009 16:15:10 -0500
Subject: [PATCH] common/image.c: Relocate strings in tables.

Without this, u-boot can crash or print garbage if the original link
address no longer points to a valid string.

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 common/image.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/common/image.c b/common/image.c
index daa68bc2dd..e22c974f35 100644
--- a/common/image.c
+++ b/common/image.c
@@ -518,7 +518,11 @@ static char *get_table_entry_name (table_entry_t *table, char *msg, int id)
 {
 	for (; table->id >= 0; ++table) {
 		if (table->id == id)
-			return (table->lname);
+#ifdef USE_HOSTCC
+			return table->lname;
+#else
+			return table->lname + gd->reloc_off;
+#endif
 	}
 	return (msg);
 }
@@ -579,7 +583,7 @@ static int get_table_entry_id (table_entry_t *table,
 	fprintf (stderr, "\n");
 #else
 	for (t = table; t->id >= 0; ++t) {
-		if (t->sname && strcmp(t->sname, name) == 0)
+		if (t->sname && strcmp(t->sname + gd->reloc_off, name) == 0)
 			return (t->id);
 	}
 	debug ("Invalid %s Type: %s\n", table_name, name);
-- 
2.39.5