aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerm-g <110920239+erm-g@users.noreply.github.com>2024-02-09 12:09:18 -0800
committerCopybara-Service <copybara-worker@google.com>2024-02-09 12:11:30 -0800
commit33437566730bc225826e7f173517fb2f429b0e63 (patch)
tree37a0155d6a3f275eaed643fefb5ea28b2933f4c0
parent4cbe274f4b21c729b3a3bf5dd32c5484177acdea (diff)
downloadgrpc-grpc-33437566730bc225826e7f173517fb2f429b0e63.tar.gz
[ssl] Fix for ALPN comparision logic (#35863)
fix for b/316952851 Closes #35863 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35863 from erm-g:apln-calc 1b445bf14a98fe35f65df315262c0f1753cc09e4 PiperOrigin-RevId: 605697428
-rw-r--r--src/core/ext/transport/chttp2/alpn/alpn.cc5
-rw-r--r--test/core/transport/chttp2/alpn_test.cc1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/core/ext/transport/chttp2/alpn/alpn.cc b/src/core/ext/transport/chttp2/alpn/alpn.cc
index 432f2c0607..be9c617a14 100644
--- a/src/core/ext/transport/chttp2/alpn/alpn.cc
+++ b/src/core/ext/transport/chttp2/alpn/alpn.cc
@@ -30,7 +30,10 @@ static const char* const supported_versions[] = {"h2"};
int grpc_chttp2_is_alpn_version_supported(const char* version, size_t size) {
size_t i;
for (i = 0; i < GPR_ARRAY_SIZE(supported_versions); i++) {
- if (!strncmp(version, supported_versions[i], size)) return 1;
+ if (size == strlen(supported_versions[i]) &&
+ !strncmp(version, supported_versions[i], size)) {
+ return 1;
+ }
}
return 0;
}
diff --git a/test/core/transport/chttp2/alpn_test.cc b/test/core/transport/chttp2/alpn_test.cc
index a21ed75514..a2d33ae682 100644
--- a/test/core/transport/chttp2/alpn_test.cc
+++ b/test/core/transport/chttp2/alpn_test.cc
@@ -32,6 +32,7 @@ TEST(AlpnTest, TestAlpnFailure) {
ASSERT_FALSE(grpc_chttp2_is_alpn_version_supported("h2-155", 6));
ASSERT_FALSE(grpc_chttp2_is_alpn_version_supported("h1-15", 5));
ASSERT_FALSE(grpc_chttp2_is_alpn_version_supported("grpc-exp", 8));
+ ASSERT_FALSE(grpc_chttp2_is_alpn_version_supported("h", 1));
}
int main(int argc, char** argv) {