Enhance code safety and readability in SSL_get_shared_ciphers()
[openssl.git] / ssl / ssl_lib.c
index b7fa9d78f70a92437ab3cf29e1db30c54e76d802..fdc8b6b82410d9c22a32c7494bc95c2f6fc77836 100644 (file)
@@ -3397,14 +3397,14 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size)
         if (sk_SSL_CIPHER_find(srvrsk, c) < 0)
             continue;
 
-        n = strlen(c->name);
-        if (n + 1 > size) {
+        n = OPENSSL_strnlen(c->name, size);
+        if (n >= size) {
             if (p != buf)
                 --p;
             *p = '\0';
             return buf;
         }
-        strcpy(p, c->name);
+        memcpy(p, c->name, n);
         p += n;
         *(p++) = ':';
         size -= n + 1;