mirror of
https://github.com/dynup/kpatch
synced 2025-01-08 22:29:34 +00:00
create-diff-object: Handle ppc64le toc with only constants
When a ppcle64 ".toc" section contains only constants, the compiler might not (won't?) create a corresponding ".rela.toc" section. In such cases, create-diff-object crashes, assuming ".rela.toc" exists whenever .toc exists. Simply report that no rela are available when looking up possible relocations in .toc. Fixes #1078. Signed-off-by: Julien Thierry <jthierry@redhat.com>
This commit is contained in:
parent
fcc7dad42a
commit
fbfc8f9bec
@ -177,6 +177,10 @@ static struct rela *toc_rela(const struct rela *rela)
|
|||||||
rela->type != R_PPC64_TOC16_LO_DS)
|
rela->type != R_PPC64_TOC16_LO_DS)
|
||||||
return (struct rela *)rela;
|
return (struct rela *)rela;
|
||||||
|
|
||||||
|
/* Only constants in toc */
|
||||||
|
if (!rela->sym->sec->rela)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
/* Will return NULL for .toc constant entries */
|
/* Will return NULL for .toc constant entries */
|
||||||
return find_rela_by_offset(rela->sym->sec->rela,
|
return find_rela_by_offset(rela->sym->sec->rela,
|
||||||
(unsigned int)rela->addend);
|
(unsigned int)rela->addend);
|
||||||
|
Loading…
Reference in New Issue
Block a user