tree c9b5ffc95a60647ddfba8a148daa86d0235df093
parent a1f1613bdd81bf28289e8d3fbeb4eb78b82fb203
author Jessica Clarke <jrtc27@jrtc27.com> 1642022836 +0000
committer GitHub <noreply@github.com> 1642022836 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh30e0CRBK7hj4Ov3rIwAAVqMIAHwnXn+MqPZOwXfa4eXcyldj
 Tu2DR1TFc5mqDh4sO1DzUUPVWs1pHCLK6ndIFBM8iOdQ4Oo+ff949VbRthLZKWTx
 RsSY+y/gtB0I+y4+1aHT3OyVz9tWbP3+t9rlJTGTCkQD8XKSKEvvIFIdZX9ZqCu8
 tEj2SiDJSA5Yp5J+IWRHWzeT2Dvs53kfwYo2b4Aoj41EBReM6oprl0tZh048MTCo
 zKklRpSmxRHYfsySFHgb4sFjr09Wbw1Rcdmoa9WaalxQTBXszsxBRrvIkF9B6ylM
 Hv5VViVkOEm63SSF/fiMod0o++yR59iC8T7Q3PdEudXUyNF3FyaRL/WQcfY1Uxo=
 =a99D
 -----END PGP SIGNATURE-----
 

Use default rather than hard-coded 8 for maximum aggregate member alignment (#1378)

On CHERI, and thus Arm's Morello prototype, pointers are represented as
hardware capabilities. These capabilities are comprised of not just an
integer address, as is the representation for traditional pointers, but
also bounds, permissions and other metadata, plus a tag bit used as the
validity bit, which provides fine-grained spatial and referential safety
for C and C++ in hardware. This tag bit is not part of the data itself
and is instead kept on the side, flowing with the capability between
registers and the memory subsystem, and any attempt to amplify the
privilege of or corrupt a capability clears this tag (or, in some cases,
traps), rendering them impossible to forge; you can only create
capabilities that are (possibly trivial) subsets of existing ones.

When the capability is stored in memory, this tag bit needs to be
preserved, which is done through the use of tagged memory. Every
capability-sized word gains an additional non-addressable (from the
CPU's perspective; depending on the implementation the tag bits may be
stored in a small block of memory carved out of normal DRAM that the CPU
is blocked from accessing) bit. This means that capabilities can only be
stored to aligned locations; attempting to store them to unaligned
locations will trap with an alignment fault or, if you end up using a
memcpy call, will copy the raw bytes of the capability's representation
but lose the tag, so when it is eventually loaded back as a capability
and dereferenced it will fault.

Since, on 64-bit architectures, our capabilities, used to implement C
language pointers, are 128-bit quantities, this means they need 16-byte
alignment. Currently the various #pragma pack directives, used to work
around (extremely broken and bogus) code that includes jsoncpp in a
context where the maximum alignment has been overridden, hard-code 8 as
the maximum alignment to use, and so do not sufficiently align CHERI /
Morello capabilities on 64-bit architectures. On Windows x64, the
default is also not 8 but 16 (ARM64 is supposedly 8), so this is
slightly dodgy to do there too, but in practice likely not an issue so
long as you don't use any 128-bit types there.

Instead of hard-coding a width, use a directive that resets the packing
back to the default. Unfortunately, whilst GCC and Clang both accept
using #pragma pack(push, 0) as shorthand like for any non-zero value,
MSVC does not, so this needs to be two directives.