From 4591c0701cbd47fef3c5a245a2be0c44c3c978b9 Mon Sep 17 00:00:00 2001 From: Artem Savkov <asavkov@redhat.com> Date: Thu, 12 Apr 2018 11:09:00 +0200 Subject: [PATCH] Fix false-positives in kpatch_check_relocations Because of signedness difference kpatch_check_relocations() would trigger an error on any negative addend. Fix by casting Elf_Data->d_size from size_t to int. Signed-off-by: Artem Savkov <asavkov@redhat.com> --- kpatch-build/create-diff-object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kpatch-build/create-diff-object.c b/kpatch-build/create-diff-object.c index de1a1d6..f4d34b1 100644 --- a/kpatch-build/create-diff-object.c +++ b/kpatch-build/create-diff-object.c @@ -1935,7 +1935,7 @@ static void kpatch_check_relocations(struct kpatch_elf *kelf) list_for_each_entry(rela, &sec->relas, list) { if (rela->sym->sec) { sdata = rela->sym->sec->data; - if (rela->addend > sdata->d_size) { + if (rela->addend > (int)sdata->d_size) { ERROR("out-of-range relocation %s+%x in %s", rela->sym->sec->name, rela->addend, sec->name); }