From 8b4944fec22be770efbd2114e25151facf620f37 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Fri, 23 Nov 2018 19:21:54 -0500 Subject: [PATCH] tpm12: ubsan: prevent source address NULL passed to memcpy memcpy() is called with source address NULL, which causes an error with ubsan. Coincidentally data_length is also 0, so nothing bad happens. So we simply intercept the data_length = 0 case. Signed-off-by: Stefan Berger --- src/tpm12/tpm_store.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tpm12/tpm_store.c b/src/tpm12/tpm_store.c index 736d672e..03de7448 100644 --- a/src/tpm12/tpm_store.c +++ b/src/tpm12/tpm_store.c @@ -257,8 +257,10 @@ TPM_RESULT TPM_Sbuffer_Append(TPM_STORE_BUFFER *sbuffer, } /* append the data */ if (rc == 0) { - memcpy(sbuffer->buffer_current, data, data_length); - sbuffer->buffer_current += data_length; + if (data_length > 0) { /* libtpms added (ubsan) */ + memcpy(sbuffer->buffer_current, data, data_length); + sbuffer->buffer_current += data_length; + } } return rc; }