From 60cf280ebfe8b6468bfd1dd592a117e719c56ccf Mon Sep 17 00:00:00 2001
From: Kazuhito Hagio <k-hagio-ab@nec.com>
Date: Fri, 3 Jan 2020 11:27:41 -0500
Subject: [PATCH 2/3] [PATCH] Pass 0 to get_kaslr_offset() in
find_kaslr_offsets()
Currently SYMBOL(_stext) is passed to get_kaslr_offset() in
find_kaslr_offsets(), but it is always zero, because it has not
been set yet at the time.
On the other hand, the vaddr argument of get_kaslr_offset() is
only used to decide whether to return a KASLR offset or not, but
the return value is not used in find_kaslr_offsets().
Therefore, passing SYMBOL(_stext) is meaningless and confusing,
so let's pass it 0 explicitly to avoid confusion.
Reported-by: Lianbo Jiang <lijiang@redhat.com>
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
---
arch/x86_64.c | 2 +-
makedumpfile.c | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/makedumpfile-1.6.6/arch/x86_64.c b/makedumpfile-1.6.6/arch/x86_64.c
index 7a2c05c36809..b5e295452964 100644
--- a/makedumpfile-1.6.6/arch/x86_64.c
+++ b/makedumpfile-1.6.6/arch/x86_64.c
@@ -69,7 +69,7 @@ get_kaslr_offset_x86_64(unsigned long vaddr)
strtoul(buf+strlen(STR_KERNELOFFSET),&endp,16);
}
}
- if (!info->kaslr_offset)
+ if (!info->kaslr_offset || !vaddr)
return 0;
if (NUMBER(KERNEL_IMAGE_SIZE) != NOT_FOUND_NUMBER)
diff --git a/makedumpfile-1.6.6/makedumpfile.c b/makedumpfile-1.6.6/makedumpfile.c
index 332b804cd756..e290fbdb4f9f 100644
--- a/makedumpfile-1.6.6/makedumpfile.c
+++ b/makedumpfile-1.6.6/makedumpfile.c
@@ -3975,7 +3975,7 @@ get_kaslr_offset_general(unsigned long vaddr)
}
}
}
- if (!info->kaslr_offset)
+ if (!info->kaslr_offset || !vaddr)
return 0;
if (_text == NOT_FOUND_SYMBOL) {
@@ -4032,8 +4032,10 @@ find_kaslr_offsets()
* function might need to read from vmcoreinfo, therefore we have
* called this function between open_vmcoreinfo() and
* close_vmcoreinfo()
+ * And the argument is not needed, because we don't use the return
+ * value here. So pass it 0 explicitly.
*/
- get_kaslr_offset(SYMBOL(_stext));
+ get_kaslr_offset(0);
close_vmcoreinfo();
--
2.17.1