summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorRoberto Guimaraes <rguimaraes@fastly.com>2017-02-26 15:47:40 -0800
committerRich Salz <rsalz@openssl.org>2017-03-08 09:48:49 -0500
commita556145a2c973303fd70315d9b77f126f43638f0 (patch)
treeee069d3817516edec0064b98c53c9d67f0f8d620 /ssl
parentb1f723c503b371776b2ae67a8cb78c8765387174 (diff)
prevent undefined behavior when src and dst are equal
CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2750) (cherry picked from commit 6aad9393680ccde591905c8d71da92a241756394)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/ssl_sess.c6
1 files changed, 4 insertions, 2 deletions
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;
}