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);
 				}