[U-Boot] [PATCH RESEND] 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 --- I sent this a couple weeks ago hoping to make it in as a bugfix, but it didn't make it. Do you have any objections to the patch, or can it go in this merge window?
Sent again with the proper list address; apologies to Wolfgang for the duplicate.
common/image.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/common/image.c b/common/image.c index daa68bc..e22c974 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);

Dear Scott Wood,
In message 20090402211510.GA27873@ld0162-tx32.am.freescale.net you wrote:
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
I sent this a couple weeks ago hoping to make it in as a bugfix, but it didn't make it. Do you have any objections to the patch, or can it go in this merge window?
Sent again with the proper list address; apologies to Wolfgang for the duplicate.
common/image.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Scott Wood
-
Wolfgang Denk