From: Roberto Guimaraes Date: Sun, 26 Feb 2017 23:47:40 +0000 (-0800) Subject: prevent undefined behavior when src and dst are equal X-Git-Tag: OpenSSL_1_1_0f~170 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a556145a2c973303fd70315d9b77f126f43638f0;p=oweals%2Fopenssl.git prevent undefined behavior when src and dst are equal CLA: trivial Reviewed-by: Matt Caswell Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/2750) (cherry picked from commit 6aad9393680ccde591905c8d71da92a241756394) --- diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c index 43cb1d371b..3f068840b9 100644 --- a/ssl/ssl_sess.c +++ b/ssl/ssl_sess.c @@ -814,7 +814,8 @@ int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, return 0; } s->session_id_length = sid_len; - memcpy(s->session_id, sid, sid_len); + if (sid != s->session_id) + memcpy(s->session_id, sid, sid_len); return 1; } @@ -895,7 +896,8 @@ int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, return 0; } s->sid_ctx_length = sid_ctx_len; - memcpy(s->sid_ctx, sid_ctx, sid_ctx_len); + if (sid_ctx != s->sid_ctx) + memcpy(s->sid_ctx, sid_ctx, sid_ctx_len); return 1; }