From 3fc8163fbd7e11d5273e11c034b15e1836d9b07b Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Mon, 15 May 2017 09:06:11 -0700 Subject: [PATCH] okhttp: Make implicit cast explicit to declare it safe --- okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java index ef7cf31221..d1ff6ab5d9 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java @@ -282,7 +282,9 @@ class OkHttpClientStream extends AbstractClientStream2 { */ @GuardedBy("lock") public void transportDataReceived(okio.Buffer frame, boolean endOfStream) { - long length = frame.size(); + // We only support 16 KiB frames, and the max permitted in HTTP/2 is 16 MiB. This is verified + // in OkHttp's Http2 deframer. In addition, this code is after the data has been read. + int length = (int) frame.size(); window -= length; if (window < 0) { frameWriter.rstStream(id(), ErrorCode.FLOW_CONTROL_ERROR);