diff options
author | Daiki Ueno <ueno@gnu.org> | 2019-07-11 17:10:24 +0000 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2019-07-11 17:10:24 +0000 |
commit | 67d2bb911c3882f7fb7fbfaec9cadd77a08e30b7 (patch) | |
tree | d880dc64b173506ac090d2315111ebf1c6d606cc | |
parent | a1335c3e798c51b23da7881f6b42912568f10093 (diff) | |
parent | 1f6bbceeeeb613cf4d790874bdd1e917a7071159 (diff) | |
download | gnutls-67d2bb911c3882f7fb7fbfaec9cadd77a08e30b7.tar.gz |
Merge branch 'tmp-session-ticket-valgrind' into 'master'
ext/session_ticket: eliminate redundant memcpy
See merge request gnutls/gnutls!1040
-rw-r--r-- | lib/ext/session_ticket.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ext/session_ticket.c b/lib/ext/session_ticket.c index 09e240c2d0..98db39ff88 100644 --- a/lib/ext/session_ticket.c +++ b/lib/ext/session_ticket.c @@ -136,7 +136,11 @@ pack_ticket(const struct ticket_st *ticket, gnutls_datum_t *ticket_data) _gnutls_write_uint16(ticket->encrypted_state_len, p); p += 2; - memcpy(p, ticket->encrypted_state, ticket->encrypted_state_len); + /* We use memmove instead of memcpy here because + * ticket->encrypted_state is allocated from + * ticket_data->data, and thus both memory areas may overlap. + */ + memmove(p, ticket->encrypted_state, ticket->encrypted_state_len); p += ticket->encrypted_state_len; memcpy(p, ticket->mac, TICKET_MAC_SIZE); |