Hex Artifact Content

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.