Fix protos_len size in SSL_set_alpn_protos and SSL_CTX_set_alpn_protos MakeConstSpan() takes size_t as the second argument, so protos_len ought to also be size_t. Bug: chromium:879657 Change-Id: I93089ea20ce4b9c2b9d4d954dce807feb5341482 Reviewed-on: https://boringssl-review.googlesource.com/c/34164 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index d588395..2f0b1b5 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h
@@ -2661,7 +2661,7 @@ // WARNING: this function is dangerous because it breaks the usual return value // convention. OPENSSL_EXPORT int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const uint8_t *protos, - unsigned protos_len); + size_t protos_len); // SSL_set_alpn_protos sets the client ALPN protocol list on |ssl| to |protos|. // |protos| must be in wire-format (i.e. a series of non-empty, 8-bit @@ -2671,7 +2671,7 @@ // WARNING: this function is dangerous because it breaks the usual return value // convention. OPENSSL_EXPORT int SSL_set_alpn_protos(SSL *ssl, const uint8_t *protos, - unsigned protos_len); + size_t protos_len); // SSL_CTX_set_alpn_select_cb sets a callback function on |ctx| that is called // during ClientHello processing in order to select an ALPN protocol from the
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc index a3c25f3..313a0fa 100644 --- a/ssl/ssl_lib.cc +++ b/ssl/ssl_lib.cc
@@ -2149,14 +2149,14 @@ } int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const uint8_t *protos, - unsigned protos_len) { + size_t protos_len) { // Note this function's calling convention is backwards. return ctx->alpn_client_proto_list.CopyFrom(MakeConstSpan(protos, protos_len)) ? 0 : 1; } -int SSL_set_alpn_protos(SSL *ssl, const uint8_t *protos, unsigned protos_len) { +int SSL_set_alpn_protos(SSL *ssl, const uint8_t *protos, size_t protos_len) { // Note this function's calling convention is backwards. if (!ssl->config) { return 1;