WordPress.org

Make WordPress Core

Opened 10 years ago

Closed 10 years ago

#7224 closed enhancement (duplicate)

wp_get_http, discover_pingback_server_uri does not consider HTTP chuck format

Reported by: lilyfan Owned by: jacobsantos
Milestone: Priority: normal
Severity: major Version: 2.6
Component: General Keywords:
Focuses: Cc:

Description

wp_get_http() at wp-includes/functions.php, discover_pingback_server_uri() at wp-includes/comment.php speaks HTTP with fcoskopen(), fputs(), fgets(), fread(). But, thease codes does not consider HTTP chunk format. If the server returns chunk format, received data will be malformed. The chunk format is described in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html

To handle chunk format, check Transfer-Encoding field in HTTP header, and read chunk-size and the content.

Attachments (2)

pingback.patch (355 bytes) - added by lilyfan 10 years ago.
Patch for discover_pingback_server_uri()
pingback.diff (355 bytes) - added by lilyfan 10 years ago.
Patch for discover_pingback_server_uri()

Download all attachments as: .zip

Change History (11)

@lilyfan
10 years ago

Patch for discover_pingback_server_uri()

@lilyfan
10 years ago

Patch for discover_pingback_server_uri()

#1 @santosj
10 years ago

HTTP/1.0 does not understand chunked-encoding, therefore, should not accept the header and ignore it. If it is received, then the standard states that we must send a 501 response back.

#2 @santosj
10 years ago

  • Type changed from defect to enhancement

#3 @DD32
10 years ago

HTTP/1.0 does not understand chunked-encoding

The function in question should be set to use 1.0, I believe the function in question uses HTTP/1.1, which is probably the reason the server is returning that content type.

#4 @lilyfan
10 years ago

  • Milestone changed from 2.9 to 2.7

#5 @jacobsantos
10 years ago

  • Owner changed from anonymous to jacobsantos

#6 @jacobsantos
10 years ago

  • Status changed from new to assigned

#7 @jacobsantos
10 years ago

I think the easiest way to fix this problem is to use HTTP 1.0 instead.

#8 @santosj
10 years ago

This can use the new HTTP API WP_Http method for decoding chunked transfer-encoding messages. I'm not sure if the team wants to convert those functions over to the new HTTP API yet. I think the HTTP API is stable enough, but there does seem to still be problems.

#9 @jacobsantos
10 years ago

  • Keywords HTTP chuck removed
  • Milestone 2.7 deleted
  • Resolution set to duplicate
  • Status changed from assigned to closed

Superceded by #7793.

Note: See TracTickets for help on using tickets.