@@ -225,15 +225,10 @@ var fhBytes = sync.Pool{
225
225
},
226
226
}
227
227
228
- var invalidHTTP1LookingFrameHeader = func () FrameHeader {
229
- fh , err := readFrameHeader (make ([]byte , frameHeaderLen ), strings .NewReader ("HTTP/1.1 " ))
230
- if err != nil {
231
- panic (err )
232
- }
228
+ func invalidHTTP1LookingFrameHeader () FrameHeader {
229
+ fh , _ := readFrameHeader (make ([]byte , frameHeaderLen ), strings .NewReader ("HTTP/1.1 " ))
233
230
return fh
234
- }()
235
-
236
- func (h FrameHeader ) looksLikeHTTP1Header () bool { return h == invalidHTTP1LookingFrameHeader }
231
+ }
237
232
238
233
// ReadFrameHeader reads 9 bytes from r and returns a FrameHeader.
239
234
// Most users should use Framer.ReadFrame instead.
@@ -513,14 +508,14 @@ func (fr *Framer) ReadFrame() (Frame, error) {
513
508
return nil , err
514
509
}
515
510
if fh .Length > fr .maxReadSize {
516
- if fh . looksLikeHTTP1Header () {
511
+ if fh == invalidHTTP1LookingFrameHeader () {
517
512
return nil , fmt .Errorf ("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header" , err )
518
513
}
519
514
return nil , ErrFrameTooLarge
520
515
}
521
516
payload := fr .getReadBuf (fh .Length )
522
517
if _ , err := io .ReadFull (fr .r , payload ); err != nil {
523
- if fh . looksLikeHTTP1Header () {
518
+ if fh == invalidHTTP1LookingFrameHeader () {
524
519
return nil , fmt .Errorf ("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header" , err )
525
520
}
526
521
return nil , err
0 commit comments