https://source.android.com/security/bulletin/2021-02-01
CVE-2017-18509
CVE-2020-10767
ANDROID: GKI: fix up abi issues with 4.19.172

The futex changes in 4.19.172 required some additions to struct
task_struct, which of course, is a structure used by just about
everyone.

To preserve the abi, do some gyrations with the reserved fields in order
to handle the growth of the structure.  Given that we are adding a
larger structure than a pointer, carve out a chunk of reserved fields
from the block we were reserving.

These changes fix the genksyms issues, but libabigail is smarter than
that, so we also need to update the .xml file to make it happy with this
change.

The results of libabigail is:

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct task_struct at sched.h:647:1' changed:
  type size hasn't changed
  3 data member deletions:
    'u64 task_struct::android_kabi_reserved4', at offset 22592 (in bits) at sched.h:1300:1
    'u64 task_struct::android_kabi_reserved5', at offset 22656 (in bits) at sched.h:1301:1
    'u64 task_struct::android_kabi_reserved6', at offset 22720 (in bits) at sched.h:1302:1
  there are data member changes:
    data member u64 task_struct::android_kabi_reserved2 at offset 22464 (in bits) became anonymous data member 'union {unsigned int futex_state; struct {u64 android_kabi_reserved2;} __UNIQUE_ID_android_kabi_hide48; union {};}'
    type 'typedef u64' of 'task_struct::android_kabi_reserved3' changed:
      entity changed from 'typedef u64' to 'struct mutex' at mutex.h:53:1
      type size changed from 64 to 256 (in bits)
    and name of 'task_struct::android_kabi_reserved3' changed to 'task_struct::futex_exit_mutex' at sched.h:1313:1
  1955 impacted interfaces

Bug: 161946584
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iab623aa5441c1d11e2dc4eb77c7153e4e9517429
2 files changed