mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
pvattest: build_attestation_v1_ioctl: make the code more robust
...by adding a compile time assertion about the buffer size. While at it, report the actual user data size in case of an error. Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
4e02dc8751
commit
d69b9fab4a
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
/* Must be included before any other header */
|
||||
#include "config.h"
|
||||
#include "lib/zt_common.h"
|
||||
|
||||
#ifdef PVATTEST_COMPILE_PERFORM
|
||||
#include <stdio.h>
|
||||
@@ -47,14 +48,17 @@ uvio_attest_t *build_attestation_v1_ioctl(GBytes *serialized_arcb, GBytes *user_
|
||||
g_steal_pointer(&serialized_arcb);
|
||||
|
||||
if (user_data) {
|
||||
if (g_bytes_get_size(user_data) > sizeof(uvio_attest->user_data)) {
|
||||
size_t user_data_size = g_bytes_get_size(user_data);
|
||||
|
||||
if (user_data_size > sizeof(uvio_attest->user_data)) {
|
||||
g_set_error(error, ATT_ERROR, ATT_ERR_INVALID_USER_DATA,
|
||||
_("User data larger than %li bytes"),
|
||||
sizeof(uvio_attest->user_data));
|
||||
_("User data %li bytes is larger than %li bytes"),
|
||||
user_data_size, sizeof(uvio_attest->user_data));
|
||||
return NULL;
|
||||
}
|
||||
uvio_attest->user_data_len = (uint16_t)g_bytes_get_size(user_data);
|
||||
pv_gbytes_memcpy(uvio_attest->user_data, uvio_attest->user_data_len, user_data);
|
||||
pv_gbytes_memcpy(uvio_attest->user_data, sizeof(uvio_attest->user_data), user_data);
|
||||
STATIC_ASSERT(sizeof(uvio_attest->user_data) <= UINT16_MAX);
|
||||
uvio_attest->user_data_len = (uint16_t)user_data_size;
|
||||
}
|
||||
|
||||
uvio_attest->meas_addr = PTR_TO_U64(g_malloc0(measurement_size));
|
||||
|
||||
Reference in New Issue
Block a user