<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>102293</bug_id>
          
          <creation_ts>2012-11-14 15:28:51 -0800</creation_ts>
          <short_desc>IndexedDB: SerializedScriptValue::toWireString() fails for odd-length serialized data</short_desc>
          <delta_ts>2012-11-14 15:42:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>99310</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Michael Pruett">michael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>767367</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-14 15:28:51 -0800</bug_when>
    <thetext>SerializedScriptValue fails to produce a wire string representation value which can be deserialized for odd-length serialized data. The problem is that CloneDeserializer::toWireString() divides value.size() by sizeof(UChar) which omits the final byte of an odd-length buffer producing a wire representation which cannot be deserialized. Appending a zero-valued byte to an odd-length string is one way to fix this problem.

The V8 implementation of SerializedScriptValue avoids this problem by using String as its internal representation and rounding up to an even number of bytes in Writer::ensureSpace(), thus ensuring that the internal representation is always an even number of bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767382</commentid>
    <comment_count>1</comment_count>
      <attachid>174271</attachid>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-14 15:39:18 -0800</bug_when>
    <thetext>Created attachment 174271
Fix SerializedScriptValue::toWireString() for odd-length serialized data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767385</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-14 15:42:48 -0800</bug_when>
    <thetext>This is effectively a duplicate of webkit.org/b/99310 - it would make more sense to upload the patch there - but review the discussion first.

The &quot;right&quot; solution is probably to rip the notion of &quot;WireString&quot; out of SSV and use e.g. Vector&lt;char&gt; instead.

*** This bug has been marked as a duplicate of bug 99310 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174271</attachid>
            <date>2012-11-14 15:39:18 -0800</date>
            <delta_ts>2012-11-14 15:39:18 -0800</delta_ts>
            <desc>Fix SerializedScriptValue::toWireString() for odd-length serialized data</desc>
            <filename>indexeddb-fix-ssv-towirestring.patch</filename>
            <type>text/plain</type>
            <size>3107</size>
            <attacher name="Michael Pruett">michael</attacher>
            
              <data encoding="base64">RnJvbTogTWljaGFlbCBQcnVldHQgPG1pY2hhZWxANjhrLm9yZz4KRGF0ZTogV2VkLCAxNCBOb3Yg
MjAxMiAxMTo0Njo1OCAtMDgwMApTdWJqZWN0OiBJbmRleGVkREI6IEZpeCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OnRvV2lyZVN0cmluZygpIGZvciBvZGQtbGVuZ3RoIHNlcmlhbGl6ZWQgZGF0YQoK
LS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMzcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgIHwgICAgNSArKysKIDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5z
ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2NmOTMzLi5kM2UwZDdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTItMTEtMTQgIE1pY2hhZWwgUHJ1ZXR0ICA8bWljaGFlbEA2OGsu
b3JnPgorCisgICAgICAgIEluZGV4ZWREQjogRml4IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9X
aXJlU3RyaW5nKCkgZm9yIG9kZC1sZW5ndGggc2VyaWFsaXplZCBkYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIyOTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
ZmFpbHMgdG8gcHJvZHVjZSBhIHdpcmUgc3RyaW5nCisgICAgICAgIHJlcHJlc2VudGF0aW9uIHZh
bHVlIHdoaWNoIGNhbiBiZSBkZXNlcmlhbGl6ZWQKKyAgICAgICAgZm9yIG9kZC1sZW5ndGggc2Vy
aWFsaXplZCBkYXRhLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIENsb25lRGVzZXJpYWxp
emVyOjp0b1dpcmVTdHJpbmcoKSBkaXZpZGVzIHZhbHVlLnNpemUoKSBieQorICAgICAgICBzaXpl
b2YoVUNoYXIpIHdoaWNoIG9taXRzIHRoZSBmaW5hbCBieXRlIG9mIGFuIG9kZC1sZW5ndGgKKyAg
ICAgICAgYnVmZmVyIHByb2R1Y2luZyBhIHdpcmUgcmVwcmVzZW50YXRpb24gd2hpY2ggY2Fubm90
IGJlCisgICAgICAgIGRlc2VyaWFsaXplZC4gQXBwZW5kaW5nIGEgemVyby12YWx1ZWQgYnl0ZSB0
byBhbiBvZGQtbGVuZ3RoCisgICAgICAgIGJ1ZmZlciBmaXhlcyB0aGlzIHByb2JsZW0uCisKKyAg
ICAgICAgVGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUuaHRtbAorICAgICAg
ICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbAorICAg
ICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci5odG1sCisgICAg
ICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUuaHRt
bAorICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXZhbHVlLmh0bWwKKyAg
ICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLmh0bWwKKyAgICAg
ICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sCisg
ICAgICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1wb3B1bGF0aW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL211dGF0aW5nLWN1cnNvci5odG1sCisgICAg
ICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwK
KyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwKKyAgICAg
ICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWwKKyAgICAgICAgICAg
ICAgIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWwKKyAgICAgICAg
ICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbAorICAgICAg
ICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLmh0bWwKKyAgICAgICAg
ICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9XaXJlU3RyaW5nKToKKwogMjAxMi0xMS0xNCAg
SGVsZGVyIENvcnJlaWEgIDxoZWxkZXIuY29ycmVpYUBub2tpYS5jb20+CiAKICAgICAgICAgW1Rl
eE1hcF1bQ2Fpcm9dIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGRlYnVnIHZpc3VhbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CmluZGV4IDQ1ODEyYmIuLjc5MjAwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTg0Miw2ICsxODQyLDExIEBA
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSoKIAogU3RyaW5nIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
dG9XaXJlU3RyaW5nKCkgY29uc3QKIHsKKyAgICBpZiAobV9kYXRhLnNpemUoKSAmIDEpIHsKKyAg
ICAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IGRhdGEobV9kYXRhKTsKKyAgICAgICAgZGF0YS5h
cHBlbmQoMCk7CisgICAgICAgIHJldHVybiBDbG9uZURlc2VyaWFsaXplcjo6dG9XaXJlU3RyaW5n
KGRhdGEpOworICAgIH0KICAgICByZXR1cm4gQ2xvbmVEZXNlcmlhbGl6ZXI6OnRvV2lyZVN0cmlu
ZyhtX2RhdGEpOwogfQogCi0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>