Skip to content

Commit 0be75dc

Browse files
committed
FIX: Timeout when reading some HTTPS URLs
resolves: Oldes/Rebol-issues#2581
1 parent b63745d commit 0be75dc

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/mezz/prot-tls.reb

+5-1
Original file line numberDiff line numberDiff line change
@@ -1601,6 +1601,8 @@ TLS-parse-handshake-message: function [
16011601
data [binary!]
16021602
][
16031603
msg: binary data
1604+
;@@ There may be more fragments in one message!
1605+
while [4 <= length? msg/buffer][
16041606
binary/read msg [type: UI8 len: UI24 start: INDEX]
16051607
ends: start + len
16061608
log-debug ["R[" ctx/seq-read "] length:" len "start:" start "ends:" ends "type:" type]
@@ -1934,12 +1936,14 @@ TLS-parse-handshake-message: function [
19341936
log-error ["Unknown state: " ctx/state "-" type]
19351937
return 'Unexpected_message
19361938
]
1937-
1939+
;; validate fragment's tail..
19381940
if ends <> i: index? msg/buffer [
19391941
log-error ["Wrong fragment message tail!" ends "<>" i]
19401942
log-error ["in/buffer starts:" copy/part msg/buffer 20]
19411943
return 'Record_overflow
19421944
]
1945+
] ;; more messages?
1946+
19431947
log-more ["R[" ctx/seq-read "] DONE: handshake^[[1m" ctx/state] log-----
19441948
false ;= no error
19451949
]

0 commit comments

Comments
 (0)