Artifact
639511f397f343ef62f1e6ef897748f31bb73d48a854f515b3a960fd27801d38:
Ticket change
[639511f397]
- New ticket
[88c0c8496999c48f|88c0c84969] <i>EOF handling potentially broken with OpenSSL 1.1.1e or newer</i>.
by
gustafn3 on
2023-10-22 11:55:59.
0000: 44 20 32 30 32 33 2d 31 30 2d 32 32 54 31 31 3a D 2023-10-22T11:
0010: 35 35 3a 35 39 2e 34 35 36 0a 4a 20 66 6f 75 6e 55:59.456.J foun
0020: 64 69 6e 20 74 63 6c 74 6c 73 2d 31 2e 37 2e 32 din tcltls-1.7.2
0030: 32 0a 4a 20 69 63 6f 6d 6d 65 6e 74 20 54 68 65 2.J icomment The
0040: 5c 73 45 4f 46 5c 73 68 61 6e 64 6c 69 6e 67 5c \sEOF\shandling\
0050: 73 68 61 73 5c 73 63 68 61 6e 67 65 64 5c 73 69 shas\schanged\si
0060: 6e 5c 73 4f 70 65 6e 53 53 4c 5c 73 31 2e 31 2e n\sOpenSSL\s1.1.
0070: 31 65 2c 5c 73 77 68 65 72 65 5c 73 69 74 5c 73 1e,\swhere\sit\s
0080: 63 68 61 6e 67 65 64 5c 73 66 72 6f 6d 5c 73 53 changed\sfrom\sS
0090: 53 4c 5f 45 52 52 4f 52 5f 53 59 53 43 41 4c 4c SL_ERROR_SYSCALL
00a0: 5c 73 77 69 74 68 5c 73 65 72 72 6e 6f 5c 73 30 \swith\serrno\s0
00b0: 5c 73 74 6f 5c 73 53 53 4c 5f 45 52 52 4f 52 5f \sto\sSSL_ERROR_
00c0: 53 53 4c 5c 73 77 69 74 68 5c 73 72 65 61 73 6f SSL\swith\sreaso
00d0: 6e 5c 73 63 6f 64 65 5c 73 53 53 4c 5f 52 5f 55 n\scode\sSSL_R_U
00e0: 4e 45 58 50 45 43 54 45 44 5f 45 4f 46 5f 57 48 NEXPECTED_EOF_WH
00f0: 49 4c 45 5f 52 45 41 44 49 4e 47 5c 73 5b 31 5d ILE_READING\s[1]
0100: 2e 5c 73 54 68 69 73 5c 73 63 68 61 6e 67 65 5c .\sThis\schange\
0110: 73 69 6e 5c 73 4f 70 65 6e 53 53 4c 5c 73 72 65 sin\sOpenSSL\sre
0120: 71 75 69 72 65 73 5c 73 61 6c 73 6f 5c 73 61 64 quires\salso\sad
0130: 6a 75 73 74 6d 65 6e 74 73 5c 73 69 6e 5c 73 61 justments\sin\sa
0140: 70 70 6c 69 63 61 74 69 6f 6e 73 5c 73 75 73 69 pplications\susi
0150: 6e 67 5c 73 4f 70 65 6e 53 53 4c 5c 73 28 73 65 ng\sOpenSSL\s(se
0160: 65 2c 5c 73 65 2e 67 2e 2c 5c 73 5b 32 5d 29 2c e,\se.g.,\s[2]),
0170: 5c 73 69 6e 63 6c 75 64 69 6e 67 5c 73 74 63 6c \sincluding\stcl
0180: 74 6c 73 2e 5c 72 5c 6e 5c 72 5c 6e 57 65 5c 73 tls.\r\n\r\nWe\s
0190: 6e 6f 74 69 63 65 64 5c 73 74 68 65 5c 73 70 72 noticed\sthe\spr
01a0: 6f 62 6c 65 6d 5c 73 77 68 65 6e 5c 73 75 70 67 oblem\swhen\supg
01b0: 72 61 64 69 6e 67 5c 73 61 5c 73 6d 61 63 68 69 rading\sa\smachi
01c0: 6e 65 5c 73 66 72 6f 6d 5c 73 43 65 6e 74 4f 53 ne\sfrom\sCentOS
01d0: 5c 73 37 5c 73 74 6f 5c 73 52 6f 63 6b 79 5c 72 \s7\sto\sRocky\r
01e0: 5c 6e 4c 69 6e 75 78 5c 73 39 2c 5c 73 77 68 65 \nLinux\s9,\swhe
01f0: 72 65 5c 73 61 66 74 65 72 5c 73 74 68 65 5c 73 re\safter\sthe\s
0200: 75 70 67 72 61 64 65 5c 73 61 5c 73 73 63 72 69 upgrade\sa\sscri
0210: 70 74 5c 73 6c 69 6b 65 5c 73 74 68 65 5c 73 66 pt\slike\sthe\sf
0220: 6f 6c 6c 6f 77 69 6e 67 5c 73 73 74 6f 70 70 65 ollowing\sstoppe
0230: 64 5c 72 5c 6e 77 6f 72 6b 69 6e 67 3a 5c 72 5c d\r\nworking:\r\
0240: 6e 5c 72 5c 6e 60 60 60 60 5c 72 5c 6e 24 5c 73 n\r\n````\r\n$\s
0250: 2f 75 73 72 2f 6c 6f 63 61 6c 2f 6e 73 2f 62 69 /usr/local/ns/bi
0260: 6e 2f 74 63 6c 73 68 38 2e 36 5c 72 5c 6e 25 5c n/tclsh8.6\r\n%\
0270: 73 70 61 63 6b 61 67 65 5c 73 72 65 71 75 69 72 spackage\srequir
0280: 65 5c 73 74 6c 73 5c 73 5c 73 5c 73 5c 73 5c 73 e\stls\s\s\s\s\s
0290: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 \s\s\s\s\s\s\s\s
02a0: 5c 73 5c 73 5c 73 5c 73 5c 72 5c 6e 25 5c 73 73 \s\s\s\s\r\n%\ss
02b0: 65 74 5c 73 66 5c 73 5b 74 6c 73 3a 3a 73 6f 63 et\sf\s[tls::soc
02c0: 6b 65 74 5c 73 6c 6f 63 61 6c 68 6f 73 74 5c 73 ket\slocalhost\s
02d0: 38 34 34 33 5d 5c 72 5c 6e 25 5c 73 70 75 74 73 8443]\r\n%\sputs
02e0: 5c 73 24 66 5c 73 22 47 45 54 5c 73 2f 5c 73 48 \s$f\s"GET\s/\sH
02f0: 54 54 50 2f 31 2e 30 5c 5c 6e 22 5c 72 5c 6e 25 TTP/1.0\\n"\r\n%
0300: 5c 73 66 6c 75 73 68 5c 73 24 66 5c 72 5c 6e 25 \sflush\s$f\r\n%
0310: 5c 73 73 65 74 5c 73 63 6f 6e 74 65 6e 74 5c 73 \sset\scontent\s
0320: 5b 72 65 61 64 5c 73 24 66 5d 5c 72 5c 6e 25 5c [read\s$f]\r\n%\
0330: 73 63 6c 6f 73 65 5c 73 24 66 5c 72 5c 6e 60 60 sclose\s$f\r\n``
0340: 60 60 5c 72 5c 6e 5c 72 5c 6e 54 68 65 5c 73 70 ``\r\n\r\nThe\sp
0350: 72 6f 62 6c 65 6d 5c 73 6d 61 6e 69 66 65 73 74 roblem\smanifest
0360: 73 5c 73 69 74 73 65 6c 66 5c 73 69 6e 5c 73 74 s\sitself\sin\st
0370: 68 65 5c 73 22 72 65 61 64 22 5c 73 6f 70 65 72 he\s"read"\soper
0380: 61 74 69 6f 6e 2c 5c 73 77 68 65 72 65 5c 73 66 ation,\swhere\sf
0390: 69 72 73 74 2c 5c 73 69 74 5c 72 5c 6e 74 72 61 irst,\sit\r\ntra
03a0: 6e 73 66 65 72 73 5c 73 74 68 65 5c 73 66 75 6c nsfers\sthe\sful
03b0: 6c 5c 73 63 6f 6e 74 65 6e 74 2c 5c 73 61 6e 64 l\scontent,\sand
03c0: 5c 73 74 68 65 6e 5c 73 69 74 5c 73 72 65 70 6f \sthen\sit\srepo
03d0: 72 74 73 5c 73 22 73 6f 66 74 77 61 72 65 5c 73 rts\s"software\s
03e0: 63 61 75 73 65 64 5c 72 5c 6e 63 6f 6e 6e 65 63 caused\r\nconnec
03f0: 74 69 6f 6e 5c 73 61 62 6f 72 74 22 2e 5c 73 53 tion\sabort".\sS
0400: 65 65 5c 73 62 65 6c 6f 77 5c 73 74 68 65 5c 73 ee\sbelow\sthe\s
0410: 6f 75 74 70 75 74 5c 73 66 72 6f 6d 5c 73 74 68 output\sfrom\sth
0420: 65 5c 73 64 65 62 75 67 5c 73 6d 61 63 72 6f 73 e\sdebug\smacros
0430: 5c 73 6f 66 5c 72 5c 6e 74 63 6c 74 6c 73 2e 5c \sof\r\ntcltls.\
0440: 72 5c 6e 5c 72 5c 6e 60 60 60 60 5c 72 5c 6e 2e r\n\r\n````\r\n.
0450: 2f 74 6c 73 49 4f 2e 63 3a 33 38 35 3a 54 6c 73 /tlsIO.c:385:Tls
0460: 49 6e 70 75 74 50 72 6f 63 28 29 3a 42 49 4f 5f InputProc():BIO_
0470: 72 65 61 64 28 34 30 39 36 29 5c 72 5c 6e 2e 2e read(4096)\r\n..
0480: 2e 5c 72 5c 6e 2e 2f 74 6c 73 49 4f 2e 63 3a 34 .\r\n./tlsIO.c:4
0490: 32 32 3a 54 6c 73 49 6e 70 75 74 50 72 6f 63 28 22:TlsInputProc(
04a0: 29 3a 42 49 4f 5f 72 65 61 64 5c 73 2d 3e 5c 73 ):BIO_read\s->\s
04b0: 34 36 35 5c 72 5c 6e 2e 2f 74 6c 73 49 4f 2e 63 465\r\n./tlsIO.c
04c0: 3a 34 32 35 3a 54 6c 73 49 6e 70 75 74 50 72 6f :425:TlsInputPro
04d0: 63 28 29 3a 42 49 4f 5f 72 65 61 64 5c 73 72 65 c():BIO_read\sre
04e0: 74 75 72 6e 65 64 5c 73 65 72 72 5c 73 30 5c 72 turned\serr\s0\r
04f0: 5c 6e 2e 2e 2e 5c 72 5c 6e 2e 2f 74 6c 73 49 4f \n...\r\n./tlsIO
0500: 2e 63 3a 34 32 32 3a 54 6c 73 49 6e 70 75 74 50 .c:422:TlsInputP
0510: 72 6f 63 28 29 3a 42 49 4f 5f 72 65 61 64 5c 73 roc():BIO_read\s
0520: 2d 3e 5c 73 32 30 37 5c 72 5c 6e 2e 2f 74 6c 73 ->\s207\r\n./tls
0530: 49 4f 2e 63 3a 34 32 35 3a 54 6c 73 49 6e 70 75 IO.c:425:TlsInpu
0540: 74 50 72 6f 63 28 29 3a 42 49 4f 5f 72 65 61 64 tProc():BIO_read
0550: 5c 73 72 65 74 75 72 6e 65 64 5c 73 65 72 72 5c \sreturned\serr\
0560: 73 30 5c 72 5c 6e 2e 2e 2e 5c 72 5c 6e 2e 2f 74 s0\r\n...\r\n./t
0570: 6c 73 42 49 4f 2e 63 3a 32 36 32 3a 42 69 6f 43 lsBIO.c:262:BioC
0580: 74 72 6c 28 29 3a 47 6f 74 5c 73 42 49 4f 5f 43 trl():Got\sBIO_C
0590: 54 52 4c 5f 45 4f 46 5c 72 5c 6e 2e 2f 74 6c 73 TRL_EOF\r\n./tls
05a0: 42 49 4f 2e 63 3a 31 32 37 3a 42 69 6f 57 72 69 BIO.c:127:BioWri
05b0: 74 65 28 29 3a 5b 63 68 61 6e 3d 30 78 31 34 33 te():[chan=0x143
05c0: 38 61 37 39 39 30 5d 5c 73 42 69 6f 57 72 69 74 8a7990]\sBioWrit
05d0: 65 28 32 34 29 5c 73 2d 3e 5c 73 32 34 5c 73 5b e(24)\s->\s24\s[
05e0: 74 63 6c 45 6f 66 3d 31 3b 5c 73 74 63 6c 45 72 tclEof=1;\stclEr
05f0: 72 6e 6f 3d 30 5d 5c 72 5c 6e 2e 2f 74 6c 73 42 rno=0]\r\n./tlsB
0600: 49 4f 2e 63 3a 31 34 38 3a 42 69 6f 57 72 69 74 IO.c:148:BioWrit
0610: 65 28 29 3a 53 75 63 63 65 73 73 66 75 6c 6c 79 e():Successfully
0620: 5c 73 77 72 6f 74 65 5c 73 73 6f 6d 65 5c 73 64 \swrote\ssome\sd
0630: 61 74 61 5c 72 5c 6e 2e 2e 2e 5c 72 5c 6e 2e 2f ata\r\n...\r\n./
0640: 74 6c 73 2e 63 3a 31 38 30 3a 49 6e 66 6f 43 61 tls.c:180:InfoCa
0650: 6c 6c 62 61 63 6b 28 29 3a 43 61 6c 6c 65 64 5c llback():Called\
0660: 72 5c 6e 2e 2f 74 6c 73 49 4f 2e 63 3a 34 32 32 r\n./tlsIO.c:422
0670: 3a 54 6c 73 49 6e 70 75 74 50 72 6f 63 28 29 3a :TlsInputProc():
0680: 42 49 4f 5f 72 65 61 64 5c 73 2d 3e 5c 73 30 5c BIO_read\s->\s0\
0690: 72 5c 6e 2e 2f 74 6c 73 49 4f 2e 63 3a 34 32 35 r\n./tlsIO.c:425
06a0: 3a 54 6c 73 49 6e 70 75 74 50 72 6f 63 28 29 3a :TlsInputProc():
06b0: 42 49 4f 5f 72 65 61 64 5c 73 72 65 74 75 72 6e BIO_read\sreturn
06c0: 65 64 5c 73 65 72 72 5c 73 31 5c 72 5c 6e 2e 2f ed\serr\s1\r\n./
06d0: 74 6c 73 49 4f 2e 63 3a 34 36 30 3a 54 6c 73 49 tlsIO.c:460:TlsI
06e0: 6e 70 75 74 50 72 6f 63 28 29 3a 53 53 4c 5c 73 nputProc():SSL\s
06f0: 6e 65 67 6f 74 69 61 74 69 6f 6e 5c 73 65 72 72 negotiation\serr
0700: 6f 72 2c 5c 73 69 6e 64 69 63 61 74 69 6e 67 5c or,\sindicating\
0710: 73 74 68 61 74 5c 73 74 68 65 5c 73 63 6f 6e 6e sthat\sthe\sconn
0720: 65 63 74 69 6f 6e 5c 73 68 61 73 5c 73 62 65 65 ection\shas\sbee
0730: 6e 5c 73 61 62 6f 72 74 65 64 5c 72 5c 6e 2e 2f n\saborted\r\n./
0740: 74 6c 73 2e 63 3a 33 36 37 3a 54 6c 73 5f 45 72 tls.c:367:Tls_Er
0750: 72 6f 72 28 29 3a 43 61 6c 6c 65 64 5c 72 5c 6e ror():Called\r\n
0760: 2e 2f 74 6c 73 49 4f 2e 63 3a 35 30 32 3a 54 6c ./tlsIO.c:502:Tl
0770: 73 49 6e 70 75 74 50 72 6f 63 28 29 3a 49 6e 70 sInputProc():Inp
0780: 75 74 28 34 30 39 36 29 5c 73 2d 3e 5c 73 2d 31 ut(4096)\s->\s-1
0790: 5c 73 5b 35 33 5d 5c 72 5c 6e 2e 2f 74 6c 73 49 \s[53]\r\n./tlsI
07a0: 4f 2e 63 3a 37 31 39 3a 54 6c 73 57 61 74 63 68 O.c:719:TlsWatch
07b0: 50 72 6f 63 28 29 3a 54 6c 73 57 61 74 63 68 50 Proc():TlsWatchP
07c0: 72 6f 63 28 30 78 30 29 5c 72 5c 6e 2e 2f 74 6c roc(0x0)\r\n./tl
07d0: 73 49 4f 2e 63 3a 37 32 38 3a 54 6c 73 57 61 74 sIO.c:728:TlsWat
07e0: 63 68 50 72 6f 63 28 29 3a 73 74 61 74 65 50 74 chProc():statePt
07f0: 72 2d 3e 66 6c 61 67 73 3d 30 5c 72 5c 6e 2e 2f r->flags=0\r\n./
0800: 74 6c 73 49 4f 2e 63 3a 39 39 32 3a 54 6c 73 5f tlsIO.c:992:Tls_
0810: 47 65 74 50 61 72 65 6e 74 28 29 3a 52 65 71 75 GetParent():Requ
0820: 65 73 74 65 64 5c 73 74 6f 5c 73 67 65 74 5c 73 ested\sto\sget\s
0830: 70 61 72 65 6e 74 5c 73 6f 66 5c 73 63 68 61 6e parent\sof\schan
0840: 6e 65 6c 5c 73 30 78 31 34 33 38 61 30 37 39 30 nel\s0x1438a0790
0850: 5c 72 5c 6e 2e 2f 74 6c 73 49 4f 2e 63 3a 37 35 \r\n./tlsIO.c:75
0860: 34 3a 54 6c 73 57 61 74 63 68 50 72 6f 63 28 29 4:TlsWatchProc()
0870: 3a 52 65 67 69 73 74 65 72 69 6e 67 5c 73 6f 75 :Registering\sou
0880: 72 5c 73 69 6e 74 65 72 65 73 74 5c 73 69 6e 5c r\sinterest\sin\
0890: 73 74 68 65 5c 73 6c 6f 77 65 72 5c 73 63 68 61 sthe\slower\scha
08a0: 6e 6e 65 6c 5c 73 28 63 68 61 6e 3d 30 78 31 34 nnel\s(chan=0x14
08b0: 33 38 61 37 39 39 30 29 5c 72 5c 6e 65 72 72 6f 38a7990)\r\nerro
08c0: 72 5c 73 72 65 61 64 69 6e 67 5c 73 22 73 6f 63 r\sreading\s"soc
08d0: 6b 31 34 34 30 37 36 39 39 30 22 3a 5c 73 73 6f k144076990":\sso
08e0: 66 74 77 61 72 65 5c 73 63 61 75 73 65 64 5c 73 ftware\scaused\s
08f0: 63 6f 6e 6e 65 63 74 69 6f 6e 5c 73 61 62 6f 72 connection\sabor
0900: 74 5c 72 5c 6e 60 60 60 60 5c 72 5c 6e 5c 72 5c t\r\n````\r\n\r\
0910: 6e 54 68 65 5c 73 70 72 6f 62 6c 65 6d 5c 73 65 nThe\sproblem\se
0920: 78 69 73 74 73 5c 73 6e 6f 74 5c 73 6f 6e 6c 79 xists\snot\sonly
0930: 5c 73 6f 6e 5c 73 4c 69 6e 75 78 2c 5c 73 62 75 \son\sLinux,\sbu
0940: 74 5c 73 61 73 5c 73 77 65 6c 6c 5c 73 6f 6e 5c t\sas\swell\son\
0950: 73 6d 61 63 4f 53 5c 73 28 31 33 2e 36 29 5c 72 smacOS\s(13.6)\r
0960: 5c 6e 42 65 6c 6f 77 5c 73 69 73 5c 73 61 5c 73 \nBelow\sis\sa\s
0970: 70 61 74 63 68 5c 73 74 68 61 74 5c 73 66 69 78 patch\sthat\sfix
0980: 65 73 5c 73 74 68 65 5c 73 70 72 6f 62 6c 65 6d es\sthe\sproblem
0990: 5c 73 77 69 74 68 6f 75 74 5c 73 67 6f 69 6e 67 \swithout\sgoing
09a0: 5c 73 69 6e 74 6f 5c 73 74 68 65 5c 73 28 76 65 \sinto\sthe\s(ve
09b0: 72 73 69 6f 6e 5c 72 5c 6e 64 65 70 65 6e 64 65 rsion\r\ndepende
09c0: 6e 74 29 5c 73 65 72 72 6f 72 5c 73 63 6f 64 65 nt)\serror\scode
09d0: 5c 73 2f 5c 73 65 72 72 6f 72 5c 73 72 65 61 73 \s/\serror\sreas
09e0: 6f 6e 5c 73 68 61 6e 64 6c 69 6e 67 5c 73 6f 66 on\shandling\sof
09f0: 5c 73 4f 70 65 6e 53 53 4c 2c 5c 73 73 69 6e 63 \sOpenSSL,\ssinc
0a00: 65 5c 73 74 68 69 73 5c 73 61 70 70 72 6f 61 63 e\sthis\sapproac
0a10: 68 5c 73 6d 61 6b 65 73 5c 73 74 68 65 5c 73 69 h\smakes\sthe\si
0a20: 73 73 75 65 5c 73 6d 6f 72 65 5c 73 74 72 61 6e ssue\smore\stran
0a30: 73 70 61 72 65 6e 74 2e 5c 73 54 68 69 73 5c 73 sparent.\sThis\s
0a40: 70 61 74 63 68 5c 73 62 65 6c 6f 77 5c 73 77 61 patch\sbelow\swa
0a50: 73 5c 73 74 65 73 74 65 64 5c 73 77 69 74 68 5c s\stested\swith\
0a60: 73 54 63 6c 5c 73 38 2e 36 2e 31 33 2c 5c 73 74 sTcl\s8.6.13,\st
0a70: 63 6c 74 6c 73 2d 31 2e 37 2e 32 32 5c 73 61 6e cltls-1.7.22\san
0a80: 64 5c 73 4f 70 65 6e 53 53 4c 5c 73 33 2e 31 2e d\sOpenSSL\s3.1.
0a90: 33 5c 73 28 31 39 5c 73 53 65 70 5c 73 32 30 32 3\s(19\sSep\s202
0aa0: 33 29 2e 5c 72 5c 6e 5c 72 5c 6e 60 60 60 60 5c 3).\r\n\r\n````\
0ab0: 72 5c 6e 24 5c 73 64 69 66 66 5c 73 2d 77 75 5c r\n$\sdiff\s-wu\
0ac0: 73 74 6c 73 49 4f 2e 63 2d 6f 72 69 67 5c 73 74 stlsIO.c-orig\st
0ad0: 6c 73 49 4f 2e 63 5c 72 5c 6e 2d 2d 2d 5c 73 74 lsIO.c\r\n---\st
0ae0: 6c 73 49 4f 2e 63 2d 6f 72 69 67 5c 74 32 30 32 lsIO.c-orig\t202
0af0: 30 2d 31 30 2d 31 32 5c 73 32 32 3a 33 39 3a 32 0-10-12\s22:39:2
0b00: 32 5c 72 5c 6e 2b 2b 2b 5c 73 74 6c 73 49 4f 2e 2\r\n+++\stlsIO.
0b10: 63 5c 74 32 30 32 33 2d 31 30 2d 32 32 5c 73 31 c\t2023-10-22\s1
0b20: 32 3a 33 33 3a 31 31 5c 72 5c 6e 40 40 5c 73 2d 2:33:11\r\n@@\s-
0b30: 34 32 30 2c 36 5c 73 2b 34 32 30 2c 31 38 5c 73 420,6\s+420,18\s
0b40: 40 40 5c 72 5c 6e 5c 73 5c 74 45 52 52 5f 63 6c @@\r\n\s\tERR_cl
0b50: 65 61 72 5f 65 72 72 6f 72 28 29 3b 5c 72 5c 6e ear_error();\r\n
0b60: 5c 73 5c 74 62 79 74 65 73 52 65 61 64 5c 73 3d \s\tbytesRead\s=
0b70: 5c 73 42 49 4f 5f 72 65 61 64 28 73 74 61 74 65 \sBIO_read(state
0b80: 50 74 72 2d 3e 62 69 6f 2c 5c 73 62 75 66 2c 5c Ptr->bio,\sbuf,\
0b90: 73 62 75 66 53 69 7a 65 29 3b 5c 72 5c 6e 5c 73 sbufSize);\r\n\s
0ba0: 5c 74 64 70 72 69 6e 74 66 28 22 42 49 4f 5f 72 \tdprintf("BIO_r
0bb0: 65 61 64 5c 73 2d 3e 5c 73 25 64 22 2c 5c 73 62 ead\s->\s%d",\sb
0bc0: 79 74 65 73 52 65 61 64 29 3b 5c 72 5c 6e 2b 5c ytesRead);\r\n+\
0bd0: 72 5c 6e 2b 5c 74 69 66 5c 73 28 62 79 74 65 73 r\n+\tif\s(bytes
0be0: 52 65 61 64 5c 73 3d 3d 5c 73 30 5c 73 26 26 5c Read\s==\s0\s&&\
0bf0: 73 54 63 6c 5f 45 6f 66 28 73 74 61 74 65 50 74 sTcl_Eof(statePt
0c00: 72 2d 3e 73 65 6c 66 29 29 5c 73 7b 5c 72 5c 6e r->self))\s{\r\n
0c10: 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c +\s\s\s\s\s\s\s\
0c20: 73 5c 73 5c 73 5c 73 5c 73 2f 2a 5c 73 5c 72 5c s\s\s\s\s/*\s\r\
0c30: 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 n+\s\s\s\s\s\s\s
0c40: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 2a 5c 73 57 \s\s\s\s\s\s*\sW
0c50: 65 5c 73 6b 6e 6f 77 5c 73 74 68 72 6f 75 67 68 e\sknow\sthrough
0c60: 5c 73 42 49 4f 5f 43 54 52 4c 5f 45 4f 46 5c 73 \sBIO_CTRL_EOF\s
0c70: 74 68 61 74 5c 73 77 65 5c 73 61 72 65 5c 73 61 that\swe\sare\sa
0c80: 6c 72 65 61 64 79 5c 73 61 74 5c 72 5c 6e 2b 5c lready\sat\r\n+\
0c90: 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c s\s\s\s\s\s\s\s\
0ca0: 73 5c 73 5c 73 5c 73 5c 73 2a 5c 73 45 4f 46 5c s\s\s\s\s*\sEOF\
0cb0: 73 28 64 65 74 65 72 6d 69 6e 65 64 5c 73 64 75 s(determined\sdu
0cc0: 72 69 6e 67 5c 73 42 49 4f 5f 72 65 61 64 28 29 ring\sBIO_read()
0cd0: 29 2e 5c 73 54 68 65 72 65 5c 73 69 73 5c 73 6e ).\sThere\sis\sn
0ce0: 6f 5c 73 6e 65 65 64 5c 73 74 6f 5c 72 5c 6e 2b o\sneed\sto\r\n+
0cf0: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 \s\s\s\s\s\s\s\s
0d00: 5c 73 5c 73 5c 73 5c 73 5c 73 2a 5c 73 74 72 79 \s\s\s\s\s*\stry
0d10: 5c 73 74 6f 5c 73 68 61 6e 64 6c 65 5c 73 74 68 \sto\shandle\sth
0d20: 69 73 5c 73 73 69 74 75 61 74 69 6f 6e 5c 73 76 is\ssituation\sv
0d30: 69 61 5c 73 65 72 72 6f 72 5c 73 61 6e 64 5c 73 ia\serror\sand\s
0d40: 72 65 61 73 6f 6e 5c 73 63 6f 64 65 73 5c 72 5c reason\scodes\r\
0d50: 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 n+\s\s\s\s\s\s\s
0d60: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 2a 5c 73 66 \s\s\s\s\s\s*\sf
0d70: 72 6f 6d 5c 73 4f 70 65 6e 53 53 4c 2e 5c 72 5c rom\sOpenSSL.\r\
0d80: 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 n+\s\s\s\s\s\s\s
0d90: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 2a 2f 5c 72 \s\s\s\s\s\s*/\r
0da0: 5c 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c \n+\s\s\s\s\s\s\
0db0: 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 64 70 72 s\s\s\s\s\s\sdpr
0dc0: 69 6e 74 66 28 22 74 72 69 65 64 5c 73 74 6f 5c intf("tried\sto\
0dd0: 73 72 65 61 64 5c 73 77 68 69 6c 65 5c 73 63 68 sread\swhile\sch
0de0: 61 6e 6e 65 6c 5c 73 69 73 5c 73 61 6c 72 65 61 annel\sis\salrea
0df0: 64 79 5c 73 61 74 5c 73 45 4f 46 22 29 3b 5c 72 dy\sat\sEOF");\r
0e00: 5c 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c \n+\s\s\s\s\s\s\
0e10: 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 2a 65 72 s\s\s\s\s\s\s*er
0e20: 72 6f 72 43 6f 64 65 50 74 72 5c 73 3d 5c 73 30 rorCodePtr\s=\s0
0e30: 3b 5c 72 5c 6e 2b 5c 73 5c 73 5c 73 5c 73 5c 73 ;\r\n+\s\s\s\s\s
0e40: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 \s\s\s\s\s\s\s\s
0e50: 72 65 74 75 72 6e 28 62 79 74 65 73 52 65 61 64 return(bytesRead
0e60: 29 3b 5c 72 5c 6e 60 60 60 60 5c 72 5c 6e 5c 72 );\r\n````\r\n\r
0e70: 5c 6e 5c 72 5c 6e 5b 31 5d 5c 73 68 74 74 70 73 \n\r\n[1]\shttps
0e80: 3a 2f 2f 6d 74 61 2e 6f 70 65 6e 73 73 6c 2e 6f ://mta.openssl.o
0e90: 72 67 2f 70 69 70 65 72 6d 61 69 6c 2f 6f 70 65 rg/pipermail/ope
0ea0: 6e 73 73 6c 2d 70 72 6f 6a 65 63 74 2f 32 30 32 nssl-project/202
0eb0: 30 2d 4d 61 79 2f 30 30 31 39 37 35 2e 68 74 6d 0-May/001975.htm
0ec0: 6c 5c 73 5c 73 5c 73 5c 72 5c 6e 5b 32 5d 5c 73 l\s\s\s\r\n[2]\s
0ed0: 68 74 74 70 73 3a 2f 2f 67 72 6f 75 70 73 2e 67 https://groups.g
0ee0: 6f 6f 67 6c 65 2e 63 6f 6d 2f 67 2f 6d 61 69 6c oogle.com/g/mail
0ef0: 69 6e 67 2e 6f 70 65 6e 73 73 6c 2e 75 73 65 72 ing.openssl.user
0f00: 73 2f 63 2f 39 43 32 72 54 39 57 56 71 57 38 2f s/c/9C2rT9WVqW8/
0f10: 6d 2f 31 46 2d 38 4a 57 6e 7a 41 51 41 4a 0a 4a m/1F-8JWnzAQAJ.J
0f20: 20 6c 6f 67 69 6e 20 67 75 73 74 61 66 6e 33 0a login gustafn3.
0f30: 4a 20 6d 69 6d 65 74 79 70 65 20 74 65 78 74 2f J mimetype text/
0f40: 78 2d 6d 61 72 6b 64 6f 77 6e 0a 4a 20 70 72 69 x-markdown.J pri
0f50: 76 61 74 65 5f 63 6f 6e 74 61 63 74 20 65 66 31 vate_contact ef1
0f60: 39 39 33 61 39 38 63 31 64 61 61 37 37 38 66 65 993a98c1daa778fe
0f70: 30 62 32 34 36 61 37 61 66 31 32 62 33 30 37 36 0b246a7af12b3076
0f80: 66 32 32 34 30 0a 4a 20 73 65 76 65 72 69 74 79 f2240.J severity
0f90: 20 43 72 69 74 69 63 61 6c 0a 4a 20 73 74 61 74 Critical.J stat
0fa0: 75 73 20 4f 70 65 6e 0a 4a 20 74 69 74 6c 65 20 us Open.J title
0fb0: 45 4f 46 5c 73 68 61 6e 64 6c 69 6e 67 5c 73 70 EOF\shandling\sp
0fc0: 6f 74 65 6e 74 69 61 6c 6c 79 5c 73 62 72 6f 6b otentially\sbrok
0fd0: 65 6e 5c 73 77 69 74 68 5c 73 4f 70 65 6e 53 53 en\swith\sOpenSS
0fe0: 4c 5c 73 31 2e 31 2e 31 65 5c 73 6f 72 5c 73 6e L\s1.1.1e\sor\sn
0ff0: 65 77 65 72 0a 4a 20 74 79 70 65 20 43 6f 64 65 ewer.J type Code
1000: 5c 73 44 65 66 65 63 74 0a 4b 20 38 38 63 30 63 \sDefect.K 88c0c
1010: 38 34 39 36 39 39 39 63 34 38 66 35 31 33 65 62 8496999c48f513eb
1020: 34 66 39 37 61 61 61 30 61 63 39 38 32 39 62 33 4f97aaa0ac9829b3
1030: 35 64 33 0a 55 20 67 75 73 74 61 66 6e 33 0a 5a 5d3.U gustafn3.Z
1040: 20 38 66 37 35 62 64 63 32 36 62 36 30 36 30 39 8f75bdc26b60609
1050: 61 64 32 39 61 66 65 32 32 61 35 66 66 37 37 34 ad29afe22a5ff774
1060: 35 0a 5.