Subject: CVE-2024-42235: s390/mm: Add NULL pointer check to crst_table_free() base_crst_free()

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

s390/mm: Add NULL pointer check to crst_table_free() base_crst_free()

crst_table_free() used to work with NULL pointers before the conversion
to ptdescs.  Since crst_table_free() can be called with a NULL pointer
(error handling in crst_table_upgrade() add an explicit check.

Also add the same check to base_crst_free() for consistency reasons.

In real life this should not happen, since order two GFP_KERNEL
allocations will not fail, unless FAIL_PAGE_ALLOC is enabled and used.

The Linux kernel CVE team has assigned CVE-2024-42235 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 6.6 with commit 6326c26c1514 and fixed in 6.6.41 with commit 794fa52b9463
	Issue introduced in 6.6 with commit 6326c26c1514 and fixed in 6.9.10 with commit f80bd8bb6f38
	Issue introduced in 6.6 with commit 6326c26c1514 and fixed in 6.10 with commit b5efb63acf7b

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-42235
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	arch/s390/mm/pgalloc.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/794fa52b94637d6b2e8c9474fbe3983af5c9f046
	https://git.kernel.org/stable/c/f80bd8bb6f380bc265834c46058d38b34174813e
	https://git.kernel.org/stable/c/b5efb63acf7bddaf20eacfcac654c25c446eabe8