mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
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>
This commit is contained in:
parent
3a671fc06a
commit
e3d1ac7bb1
1 changed files with 6 additions and 2 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue