Commit fe742c08 authored by Sven Schnelle's avatar Sven Schnelle Committed by Alexander Gordeev
Browse files

s390/os_info: Fix array size in struct os_info



gcc's -Warray-bounds warned about an out-of-bounds access to
the entry array contained in struct os_info. This doesn't trigger
a bug right now because there's a large reserved space after the
array. Nevertheless fix this, and also add a BUILD_BUG_ON to make
sure struct os_info is always exactly on page in size.

Fixes: f4cac27d ("s390/crash: Use old os_info to create PT_LOAD headers")
Reviewed-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent a2269a66
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#define OS_INFO_IMAGE_START	10
#define OS_INFO_IMAGE_END	11
#define OS_INFO_IMAGE_PHYS	12
#define OS_INFO_MAX		13

#define OS_INFO_FLAG_REIPL_CLEAR	(1UL << 0)

@@ -46,8 +47,8 @@ struct os_info {
	u16	version_minor;
	u64	crashkernel_addr;
	u64	crashkernel_size;
	struct os_info_entry entry[10];
	u8	reserved[3864];
	struct os_info_entry entry[OS_INFO_MAX];
	u8	reserved[3804];
} __packed;

void os_info_init(void);
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ void __init os_info_init(void)
{
	struct lowcore *abs_lc;

	BUILD_BUG_ON(sizeof(struct os_info) != PAGE_SIZE);
	os_info.version_major = OS_INFO_VERSION_MAJOR;
	os_info.version_minor = OS_INFO_VERSION_MINOR;
	os_info.magic = OS_INFO_MAGIC;