Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://core.trac.wordpress.org/ticket/12302?format=rss

  1. <?xml version="1.0"?>
  2. <rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  3.  <channel>
  4.    <title>WordPress Trac: Ticket #12302: add_metadata() Fails to Store Serialized Values as BINARY</title>
  5.    <link>https://core.trac.wordpress.org/ticket/12302</link>
  6.    <description>&lt;p&gt;
  7. Symptoms:
  8. &lt;/p&gt;
  9. &lt;p&gt;
  10. WordPress stores corrupt values in post_metadata if there are any non-UTF-8 bytes in the meta_value.
  11. &lt;/p&gt;
  12. &lt;p&gt;
  13. Steps to reproduce:
  14. &lt;/p&gt;
  15. &lt;p&gt;
  16. Call add_metadata() with non-UTF-8 values such as a latin-1 copyright char.
  17. &lt;/p&gt;
  18. &lt;p&gt;
  19. Even though the serialized string goes through prepare() before the query, MySQL is required to truncate the invalid value being assigned to the meta_value field.  The result is that the stored value can never be un-serialized.
  20. &lt;/p&gt;
  21. &lt;p&gt;
  22. This behavior can also be replicated by trying to inject CHAR(169) into any UTF-8 table query.
  23. &lt;/p&gt;
  24. </description>
  25.    <language>en-us</language>
  26.    <image>
  27.      <title>WordPress Trac</title>
  28.      <url>https://core.trac.wordpress.org/chrome/site/your_project_logo.png</url>
  29.      <link>https://core.trac.wordpress.org/ticket/12302</link>
  30.    </image>
  31.    <generator>Trac 1.2.2</generator>
  32.    <item>
  33.      
  34.        <dc:creator>miqrogroove</dc:creator>
  35.  
  36.      <pubDate>Sat, 20 Feb 2010 11:00:40 GMT</pubDate>
  37.      <title>summary changed</title>
  38.      <link>https://core.trac.wordpress.org/ticket/12302#comment:1</link>
  39.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:1</guid>
  40.      <description>
  41.          &lt;ul&gt;
  42.            &lt;li&gt;&lt;strong&gt;summary&lt;/strong&gt;
  43.                changed from &lt;em&gt;add_metadata() Fails to Validate Inputs Before Serializing Them&lt;/em&gt; to &lt;em&gt;add_metadata() Fails to Store Serialized Values as BINARY&lt;/em&gt;
  44.            &lt;/li&gt;
  45.          &lt;/ul&gt;
  46.      </description>
  47.      <category>Ticket</category>
  48.    </item><item>
  49.      
  50.        <dc:creator>miqrogroove</dc:creator>
  51.  
  52.      <pubDate>Sat, 20 Feb 2010 11:43:26 GMT</pubDate>
  53.      <title></title>
  54.      <link>https://core.trac.wordpress.org/ticket/12302#comment:2</link>
  55.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:2</guid>
  56.      <description>
  57.        &lt;p&gt;
  58. After giving this some thought, I've come to the conclusions:
  59. &lt;/p&gt;
  60. &lt;ol&gt;&lt;li&gt;Post metas are not binary-safe.
  61. &lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;There is no way to make them binary-safe without converting all existing values to a proper binary column.
  62. &lt;/li&gt;&lt;/ol&gt;
  63.      </description>
  64.      <category>Ticket</category>
  65.    </item><item>
  66.      
  67.        <dc:creator>Denis-de-Bernardy</dc:creator>
  68.  
  69.      <pubDate>Sun, 28 Feb 2010 00:03:52 GMT</pubDate>
  70.      <title></title>
  71.      <link>https://core.trac.wordpress.org/ticket/12302#comment:3</link>
  72.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:3</guid>
  73.      <description>
  74.        &lt;p&gt;
  75. similar bugs referenced here: &lt;a class="closed ticket" href="https://core.trac.wordpress.org/ticket/9549" title="#9549: defect (bug): WP should catch serialization errors in options and meta fields (closed: fixed)"&gt;#9549&lt;/a&gt;
  76. &lt;/p&gt;
  77.      </description>
  78.      <category>Ticket</category>
  79.    </item><item>
  80.      
  81.        <dc:creator>dd32</dc:creator>
  82.  
  83.      <pubDate>Sun, 18 Apr 2010 04:36:44 GMT</pubDate>
  84.      <title>milestone changed; keywords set</title>
  85.      <link>https://core.trac.wordpress.org/ticket/12302#comment:4</link>
  86.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:4</guid>
  87.      <description>
  88.          &lt;ul&gt;
  89.            &lt;li&gt;&lt;strong&gt;keywords&lt;/strong&gt;
  90.              &lt;em&gt;needs-patch&lt;/em&gt; added
  91.            &lt;/li&gt;
  92.            &lt;li&gt;&lt;strong&gt;milestone&lt;/strong&gt;
  93.                changed from &lt;em&gt;3.0&lt;/em&gt; to &lt;em&gt;Future Release&lt;/em&gt;
  94.            &lt;/li&gt;
  95.          &lt;/ul&gt;
  96.        &lt;p&gt;
  97. Shifting to Future release pending patch, Too close to release to be changing anything related to the Schema anyway.
  98. &lt;/p&gt;
  99.      </description>
  100.      <category>Ticket</category>
  101.    </item><item>
  102.      
  103.        <dc:creator>bpetty</dc:creator>
  104.  
  105.      <pubDate>Mon, 13 Jan 2014 16:48:28 GMT</pubDate>
  106.      <title>keywords, priority, severity changed; version set</title>
  107.      <link>https://core.trac.wordpress.org/ticket/12302#comment:5</link>
  108.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:5</guid>
  109.      <description>
  110.          &lt;ul&gt;
  111.            &lt;li&gt;&lt;strong&gt;keywords&lt;/strong&gt;
  112.              &lt;em&gt;close&lt;/em&gt; added
  113.            &lt;/li&gt;
  114.            &lt;li&gt;&lt;strong&gt;priority&lt;/strong&gt;
  115.                changed from &lt;em&gt;high&lt;/em&gt; to &lt;em&gt;normal&lt;/em&gt;
  116.            &lt;/li&gt;
  117.            &lt;li&gt;&lt;strong&gt;version&lt;/strong&gt;
  118.                set to &lt;em&gt;3.0&lt;/em&gt;
  119.            &lt;/li&gt;
  120.            &lt;li&gt;&lt;strong&gt;severity&lt;/strong&gt;
  121.                changed from &lt;em&gt;critical&lt;/em&gt; to &lt;em&gt;normal&lt;/em&gt;
  122.            &lt;/li&gt;
  123.          &lt;/ul&gt;
  124.        &lt;p&gt;
  125. As the MySQL connection and encoding is defined through the global &lt;code&gt;DB_COLLATE&lt;/code&gt; and &lt;code&gt;DB_CHARSET&lt;/code&gt; definitions on installation, and I don't believe there's ever going to be the possibility that metadata values will ever be re-encoded to a new binary-safe encoding on upgrade, I just don't think this will ever be supported.
  126. &lt;/p&gt;
  127. &lt;p&gt;
  128. If you absolutely need to store non-UTF8 encoded strings or binary data, the best option I can think of is to do so in a custom table with your explicit schema, or somewhere other than in the DB. Otherwise it should be expected that your strings are encoded with whatever &lt;code&gt;DB_CHARSET&lt;/code&gt; was in use on installation.
  129. &lt;/p&gt;
  130.      </description>
  131.      <category>Ticket</category>
  132.    </item><item>
  133.      
  134.        <dc:creator>nacin</dc:creator>
  135.  
  136.      <pubDate>Mon, 13 Jan 2014 18:14:27 GMT</pubDate>
  137.      <title>status changed; resolution set; milestone deleted</title>
  138.      <link>https://core.trac.wordpress.org/ticket/12302#comment:6</link>
  139.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:6</guid>
  140.      <description>
  141.          &lt;ul&gt;
  142.            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
  143.                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
  144.            &lt;/li&gt;
  145.            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
  146.                set to &lt;em&gt;wontfix&lt;/em&gt;
  147.            &lt;/li&gt;
  148.            &lt;li&gt;&lt;strong&gt;milestone&lt;/strong&gt;
  149.                &lt;em&gt;Future Release&lt;/em&gt; deleted
  150.            &lt;/li&gt;
  151.          &lt;/ul&gt;
  152.        &lt;p&gt;
  153. Yeah, I don't see this as something we're going to do.
  154. &lt;/p&gt;
  155.      </description>
  156.      <category>Ticket</category>
  157.    </item><item>
  158.      
  159.        <dc:creator>miqrogroove</dc:creator>
  160.  
  161.      <pubDate>Tue, 14 Jan 2014 01:12:25 GMT</pubDate>
  162.      <title></title>
  163.      <link>https://core.trac.wordpress.org/ticket/12302#comment:7</link>
  164.      <guid isPermaLink="false">https://core.trac.wordpress.org/ticket/12302#comment:7</guid>
  165.      <description>
  166.        &lt;p&gt;
  167. Why not?  BINARY is compatible with all encodings.  The upgrade would be easy.  Trivial even.  I hear so many WordPress developers complain about this!  What a shame.
  168. &lt;/p&gt;
  169.      </description>
  170.      <category>Ticket</category>
  171.    </item>
  172. </channel>
  173. </rss>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//core.trac.wordpress.org/ticket/12302%3Fformat%3Drss

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda