<?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>109923</bug_id>
          
          <creation_ts>2013-02-15 04:04:45 -0800</creation_ts>
          <short_desc>[Curl] The function cookiesForDOM() does not behave correctly.</short_desc>
          <delta_ts>2013-02-19 00:29:06 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>833875</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-02-15 04:04:45 -0800</bug_when>
    <thetext>The Curl implementation of the function cookiesForDOM() has a couple of problems:

It never returns more than one cookie, when it should return a list of all matching cookies.
It only returns cookies set with setCookiesFromDOM() in this session,
when it should return persistent cookies, and cookies set with http (which are not http only).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833917</commentid>
    <comment_count>1</comment_count>
      <attachid>188545</attachid>
    <who name="">peavo</who>
    <bug_when>2013-02-15 05:11:31 -0800</bug_when>
    <thetext>Created attachment 188545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834623</commentid>
    <comment_count>2</comment_count>
      <attachid>188545</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-02-15 20:34:48 -0800</bug_when>
    <thetext>Comment on attachment 188545
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=188545&amp;action=review

Nice work putting all of these pieces together.  A few minor formatting nits, but otherwise it looks great!

&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:32
&gt; +static void readCurlCookieToken(const char*&amp; cookie, String &amp;token)

This should be &quot;String&amp; token)&quot;

&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:37
&gt; +        token.append(cookie[0]);

It&apos;s too bad WTF String doesn&apos;t support a character append with a length (like it does with UChar).  Then we could use strchr to find the &apos;\t&apos; character, then append the distance without having to handroll this loop.

&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:44
&gt; +static void addMatchingCurlCookie(const char* cookie, const String &amp;domain, const String &amp;path, String &amp;cookies)

These should be written as &quot;String&amp; domain&quot; and &quot;String&amp; path&quot;, not &quot;String &amp;domain&quot;, etc.

&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:119
&gt; +    cookies = cookies + strName + String(&quot;=&quot;) + strValue + String(&quot;; &quot;);

Do you know if we are paying the cost of creating String temporaries on this line (e.g., the &quot;=&quot; and &quot;; &quot; values)? Could these be declared as static const values so we don&apos;t reconstruct them each time we pass through here?  Maybe this function isn&apos;t used enough for this to be a concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835343</commentid>
    <comment_count>3</comment_count>
      <attachid>188848</attachid>
    <who name="">peavo</who>
    <bug_when>2013-02-18 04:37:56 -0800</bug_when>
    <thetext>Created attachment 188848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835345</commentid>
    <comment_count>4</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-02-18 04:40:27 -0800</bug_when>
    <thetext>Updated patch after review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835786</commentid>
    <comment_count>5</comment_count>
      <attachid>188848</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-02-18 15:21:42 -0800</bug_when>
    <thetext>Comment on attachment 188848
Patch

Looks good.  Let&apos;s get it landed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835809</commentid>
    <comment_count>6</comment_count>
      <attachid>188848</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 16:02:28 -0800</bug_when>
    <thetext>Comment on attachment 188848
Patch

Clearing flags on attachment: 188848

Committed r143272: &lt;http://trac.webkit.org/changeset/143272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835810</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 16:02:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836081</commentid>
    <comment_count>8</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-02-19 00:29:06 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 188848 [details])
&gt; Looks good.  Let&apos;s get it landed!

Thanks for the review!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188545</attachid>
            <date>2013-02-15 05:11:31 -0800</date>
            <delta_ts>2013-02-18 04:37:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109923-20130215140743.patch</filename>
            <type>text/plain</type>
            <size>6267</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjk4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE1ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBUaGUgZnVu
Y3Rpb24gY29va2llc0ZvckRPTSgpIGRvZXMgbm90IGJlaGF2ZSBjb3JyZWN0bHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk5MjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9Db29raWVKYXJDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDdXJsQ29v
a2llVG9rZW4pOiBBZGRlZCBmdW5jdGlvbiB0byByZWFkIG5leHQgdG9rZW4gZnJvbSBDdXJsIGNv
b2tpZSBzdHJpbmcuCisgICAgICAgIChXZWJDb3JlOjphZGRNYXRjaGluZ0N1cmxDb29raWUpOiBB
ZGRlZCBmdW5jdGlvbiB0byBhZGQgbWF0Y2hpbmcgY29va2llcyB0byBjb29raWUgbGlzdC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKTogQWRkIGRvbWFpbiBhbmQgcGF0aCBm
cm9tIHVybCB0byBjb29raWUgaWYgbm90IGFscmVhZHkgc2V0LgorICAgICAgICAoV2ViQ29yZTo6
Y29va2llc0ZvckRPTSk6IFJldHVybiBhIGxpc3Qgb2YgbWF0Y2hpbmcgY29va2llcywgYm90aCBz
ZXNzaW9uIGFuZCBwZXJzaXN0ZW50IGNvb2tpZXMuCisKIDIwMTMtMDItMTUgIE1paG5lYSBPdmlk
ZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBSZWdpb25zXSBSZW5kZXJS
ZWdpb24gc2hvdWxkIGluaGVyaXQgZnJvbSBSZW5kZXJCbG9jawpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAko
cmV2aXNpb24gMTQyNzI2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckN1cmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5NiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBjb29raWVK
YXI7CiAKK3N0YXRpYyB2b2lkIHJlYWRDdXJsQ29va2llVG9rZW4oY29uc3QgY2hhciomIGNvb2tp
ZSwgU3RyaW5nICZ0b2tlbikKK3sKKyAgICAvLyBSZWFkIHRoZSBuZXh0IHRva2VuIGZyb20gYSBj
b29raWUgd2l0aCB0aGUgTmV0c2NhcGUgY29va2llIGZvcm1hdC4KKyAgICAvLyBDdXJsIHNlcGFy
YXRlcyBlYWNoIHRva2VuIGluIGxpbmUgd2l0aCB0YWIgY2hhcmFjdGVyLgorICAgIHdoaWxlIChj
b29raWUgJiYgY29va2llWzBdICYmIGNvb2tpZVswXSAhPSAnXHQnKSB7CisgICAgICAgIHRva2Vu
LmFwcGVuZChjb29raWVbMF0pOworICAgICAgICBjb29raWUrKzsKKyAgICB9CisgICAgaWYgKGNv
b2tpZVswXSA9PSAnXHQnKQorICAgICAgICBjb29raWUrKzsKK30KKworc3RhdGljIHZvaWQgYWRk
TWF0Y2hpbmdDdXJsQ29va2llKGNvbnN0IGNoYXIqIGNvb2tpZSwgY29uc3QgU3RyaW5nICZkb21h
aW4sIGNvbnN0IFN0cmluZyAmcGF0aCwgU3RyaW5nICZjb29raWVzKQoreworICAgIC8vIENoZWNr
IGlmIHRoZSBjb29raWUgbWF0Y2hlcyBkb21haW4gYW5kIHBhdGgsIGFuZCBpcyBub3QgZXhwaXJl
ZC4KKyAgICAvLyBJZiBzbywgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIGNvb2tpZXMuCisgICAgLy8K
KyAgICAvLyBEZXNjcmlwdGlvbiBvZiB0aGUgTmV0c2NhcGUgY29va2llIGZpbGUgZm9ybWF0IHdo
aWNoIEN1cmwgdXNlczoKKyAgICAvLworICAgIC8vIC5uZXRzY2FwZS5jb20gICAgIFRSVUUgICAv
ICBGQUxTRSAgOTQ2Njg0Nzk5ICAgTkVUU0NBUEVfSUQgIDEwMDEwMworICAgIC8vCisgICAgLy8g
RWFjaCBsaW5lIHJlcHJlc2VudHMgYSBzaW5nbGUgcGllY2Ugb2Ygc3RvcmVkIGluZm9ybWF0aW9u
LiBBIHRhYiBpcyBpbnNlcnRlZCBiZXR3ZWVuIGVhY2ggb2YgdGhlIGZpZWxkcy4KKyAgICAvLwor
ICAgIC8vIEZyb20gbGVmdC10by1yaWdodCwgaGVyZSBpcyB3aGF0IGVhY2ggZmllbGQgcmVwcmVz
ZW50czoKKyAgICAvLworICAgIC8vIGRvbWFpbiAtIFRoZSBkb21haW4gdGhhdCBjcmVhdGVkIEFO
RCB0aGF0IGNhbiByZWFkIHRoZSB2YXJpYWJsZS4KKyAgICAvLyBmbGFnIC0gQSBUUlVFL0ZBTFNF
IHZhbHVlIGluZGljYXRpbmcgaWYgYWxsIG1hY2hpbmVzIHdpdGhpbiBhIGdpdmVuIGRvbWFpbiBj
YW4gYWNjZXNzIHRoZSB2YXJpYWJsZS4gVGhpcyB2YWx1ZSBpcyBzZXQgYXV0b21hdGljYWxseSBi
eSB0aGUgYnJvd3NlciwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSB5b3Ugc2V0IGZvciBkb21haW4u
CisgICAgLy8gcGF0aCAtIFRoZSBwYXRoIHdpdGhpbiB0aGUgZG9tYWluIHRoYXQgdGhlIHZhcmlh
YmxlIGlzIHZhbGlkIGZvci4KKyAgICAvLyBzZWN1cmUgLSBBIFRSVUUvRkFMU0UgdmFsdWUgaW5k
aWNhdGluZyBpZiBhIHNlY3VyZSBjb25uZWN0aW9uIHdpdGggdGhlIGRvbWFpbiBpcyBuZWVkZWQg
dG8gYWNjZXNzIHRoZSB2YXJpYWJsZS4KKyAgICAvLyBleHBpcmF0aW9uIC0gVGhlIFVOSVggdGlt
ZSB0aGF0IHRoZSB2YXJpYWJsZSB3aWxsIGV4cGlyZSBvbi4gVU5JWCB0aW1lIGlzIGRlZmluZWQg
YXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIEphbiAxLCAxOTcwIDAwOjAwOjAwIEdNVC4K
KyAgICAvLyBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLgorICAgIC8vIHZhbHVlIC0g
VGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZS4KKworICAgIGlmICghY29va2llKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBTdHJpbmcgY29va2llRG9tYWluOworICAgIHJlYWRDdXJsQ29va2llVG9r
ZW4oY29va2llLCBjb29raWVEb21haW4pOworCisgICAgYm9vbCBzdWJEb21haW4gPSBmYWxzZTsK
KworICAgIGlmIChjb29raWVEb21haW5bMF0gPT0gJy4nKSB7CisgICAgICAgIC8vIENoZWNrIGlm
IGRvbWFpbiBpcyBhIHN1YmRvbWFpbiBvZiB0aGUgZG9tYWluIGluIHRoZSBjb29raWUuCisgICAg
ICAgIC8vIEN1cmwgdXNlcyBhICcuJyBpbiBmcm9udCBvZiBkb21haW5zIHRvIGluZGljYXRlIGl0
cyB2YWxpZCBvbiBzdWJkb21haW5zLgorICAgICAgICBjb29raWVEb21haW4ucmVtb3ZlKDApOwor
ICAgICAgICBpbnQgbGVuRGlmZiA9IGRvbWFpbi5sZW5ndGgoKSAtIGNvb2tpZURvbWFpbi5sZW5n
dGgoKTsKKyAgICAgICAgaW50IGluZGV4ID0gZG9tYWluLmZpbmQoY29va2llRG9tYWluKTsKKyAg
ICAgICAgaWYgKGluZGV4ID09IGxlbkRpZmYpCisgICAgICAgICAgICBzdWJEb21haW4gPSB0cnVl
OworICAgIH0KKworICAgIGlmICghc3ViRG9tYWluICYmIGNvb2tpZURvbWFpbiAhPSBkb21haW4p
CisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdHJCb29sZWFuOworICAgIHJlYWRDdXJs
Q29va2llVG9rZW4oY29va2llLCBzdHJCb29sZWFuKTsKKworICAgIFN0cmluZyBzdHJQYXRoOwor
ICAgIHJlYWRDdXJsQ29va2llVG9rZW4oY29va2llLCBzdHJQYXRoKTsKKworICAgIC8vIENoZWNr
IGlmIHBhdGggbWF0Y2hlcworICAgIGludCBpbmRleCA9IHBhdGguZmluZChzdHJQYXRoKTsKKyAg
ICBpZiAoaW5kZXgpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdHJTZWN1cmU7Cisg
ICAgcmVhZEN1cmxDb29raWVUb2tlbihjb29raWUsIHN0clNlY3VyZSk7CisKKyAgICBTdHJpbmcg
c3RyRXhwaXJlczsKKyAgICByZWFkQ3VybENvb2tpZVRva2VuKGNvb2tpZSwgc3RyRXhwaXJlcyk7
CisKKyAgICBpbnQgZXhwaXJlcyA9IHN0ckV4cGlyZXMudG9JbnQoKTsKKworICAgIHRpbWVfdCBu
b3cgPSAwOworICAgIHRpbWUoJm5vdyk7CisKKyAgICAvLyBDaGVjayBpZiBjb29raWUgaGFzIGV4
cGlyZWQKKyAgICBpZiAoZXhwaXJlcyAmJiBub3cgPiBleHBpcmVzKQorICAgICAgICByZXR1cm47
CisKKyAgICBTdHJpbmcgc3RyTmFtZTsKKyAgICByZWFkQ3VybENvb2tpZVRva2VuKGNvb2tpZSwg
c3RyTmFtZSk7CisKKyAgICBTdHJpbmcgc3RyVmFsdWU7CisgICAgcmVhZEN1cmxDb29raWVUb2tl
bihjb29raWUsIHN0clZhbHVlKTsKKworICAgIC8vIFRoZSBjb29raWUgbWF0Y2hlcywgYWRkIGl0
IHRvIHRoZSBjb29raWUgbGlzdC4KKyAgICBjb29raWVzID0gY29va2llcyArIHN0ck5hbWUgKyBT
dHJpbmcoIj0iKSArIHN0clZhbHVlICsgU3RyaW5nKCI7ICIpOworfQorCiB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IEtVUkwmLCBjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgY29va2llSmFyLnNldCh1
cmwuc3RyaW5nKCksIHZhbHVlKTsKQEAgLTUxLDYgKzE0MSwxMiBAQCB2b2lkIHNldENvb2tpZXNG
cm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yCiAgICAgZWxzZQogICAgICAgICBjb29raWUuYXBwZW5k
KFN0cmluZzo6bWFrZThCaXRGcm9tMTZCaXRTb3VyY2UodmFsdWUuY2hhcmFjdGVyczE2KCksIHZh
bHVlLmxlbmd0aCgpKSk7CiAKKyAgICBpZiAoY29va2llLmZpbmQoU3RyaW5nKCJkb21haW4iKSkg
PT0gbm90Rm91bmQpIHsKKyAgICAgICAgLy8gSWYgbm8gZG9tYWluIGlzIHNldCwgc2V0IGRvbWFp
biBhbmQgcGF0aCBmcm9tIHVybC4KKyAgICAgICAgY29va2llLmFwcGVuZChTdHJpbmcoIjsgZG9t
YWluPSIpICsgdXJsLmhvc3QoKSk7CisgICAgICAgIGNvb2tpZS5hcHBlbmQoU3RyaW5nKCI7IHBh
dGg9IikgKyB1cmwucGF0aCgpKTsKKyAgICB9CisKICAgICBDU3RyaW5nIHN0ckNvb2tpZShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjb29raWUuY2hhcmFjdGVyczgoKSksIGNvb2tpZS5s
ZW5ndGgoKSk7CiAKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRfQ09PS0lFTElT
VCwgc3RyQ29va2llLmRhdGEoKSk7CkBAIC02MCw3ICsxNTYsMzcgQEAgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBOZXR3b3JrU3RvcgogCiBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBLVVJMJiwgY29uc3QgS1VSTCYgdXJsKQogewot
ICAgIHJldHVybiBjb29raWVKYXIuZ2V0KHVybC5zdHJpbmcoKSk7CisgICAgU3RyaW5nIGNvb2tp
ZXM7CisKKyAgICBDVVJMKiBjdXJsID0gY3VybF9lYXN5X2luaXQoKTsKKworICAgIGlmICghY3Vy
bCkKKyAgICAgICAgcmV0dXJuIGNvb2tpZXM7CisKKyAgICBDVVJMU0gqIGN1cmxzaCA9IFJlc291
cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+Z2V0Q3VybFNoYXJlSGFuZGxlKCk7
CisKKyAgICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRfU0hBUkUsIGN1cmxzaCk7CisK
KyAgICBzdHJ1Y3QgY3VybF9zbGlzdCogbGlzdCA9IDA7CisgICAgY3VybF9lYXN5X2dldGluZm8o
Y3VybCwgQ1VSTElORk9fQ09PS0lFTElTVCwgJmxpc3QpOworCisgICAgaWYgKGxpc3QpIHsKKyAg
ICAgICAgU3RyaW5nIGRvbWFpbiA9IHVybC5ob3N0KCk7CisgICAgICAgIFN0cmluZyBwYXRoID0g
dXJsLnBhdGgoKTsKKworICAgICAgICBzdHJ1Y3QgY3VybF9zbGlzdCogaXRlbSA9IGxpc3Q7Cisg
ICAgICAgIHdoaWxlIChpdGVtKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBjb29raWUgPSBp
dGVtLT5kYXRhOworICAgICAgICAgICAgYWRkTWF0Y2hpbmdDdXJsQ29va2llKGNvb2tpZSwgZG9t
YWluLCBwYXRoLCBjb29raWVzKTsKKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtLT5uZXh0OworICAg
ICAgICB9CisKKyAgICAgICAgY3VybF9zbGlzdF9mcmVlX2FsbChsaXN0KTsKKyAgICB9CisKKyAg
ICBjdXJsX2Vhc3lfY2xlYW51cChjdXJsKTsKKworICAgIHJldHVybiBjb29raWVzOwogfQogCiBT
dHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiwgY29uc3QgS1VSTCYgLypmaXJzdFBhcnR5Ki8sIGNvbnN0IEtVUkwmIHVybCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188848</attachid>
            <date>2013-02-18 04:37:56 -0800</date>
            <delta_ts>2013-02-18 16:02:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109923-20130218133414.patch</filename>
            <type>text/plain</type>
            <size>6390</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjk5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAyLTE1ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBUaGUgZnVu
Y3Rpb24gY29va2llc0ZvckRPTSgpIGRvZXMgbm90IGJlaGF2ZSBjb3JyZWN0bHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk5MjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29va2llc0ZvckRP
TSgpIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBsaXN0IG9mIG1hdGNoaW5nIGNvb2tpZXMsIGJv
dGggcGVyc2lzdGVudCBhbmQgc2Vzc2lvbiBjb29raWVzLgorCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVhZEN1
cmxDb29raWVUb2tlbik6IEFkZGVkIGZ1bmN0aW9uIHRvIHJlYWQgbmV4dCB0b2tlbiBmcm9tIEN1
cmwgY29va2llIHN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OmFkZE1hdGNoaW5nQ3VybENvb2tp
ZSk6IEFkZGVkIGZ1bmN0aW9uIHRvIGFkZCBtYXRjaGluZyBjb29raWVzIHRvIGNvb2tpZSBsaXN0
LgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00pOiBBZGQgZG9tYWluIGFuZCBw
YXRoIGZyb20gdXJsIHRvIGNvb2tpZSBpZiBub3QgYWxyZWFkeSBzZXQuCisgICAgICAgIChXZWJD
b3JlOjpjb29raWVzRm9yRE9NKTogUmV0dXJuIGEgbGlzdCBvZiBtYXRjaGluZyBjb29raWVzLCBi
b3RoIHNlc3Npb24gYW5kIHBlcnNpc3RlbnQgY29va2llcy4KKwogMjAxMy0wMi0xNSAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZWRvIGluIHRleHQgZWRpdG9yIHNob3VsZCBhbHdheXMgY29sbGFwc2Ugc2VsZWN0aW9uIHRv
IGVuZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVK
YXJDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ29va2llSmFyQ3VybC5jcHAJKHJldmlzaW9uIDE0Mjk5NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gY29va2llSmFyOwogCitzdGF0aWMgdm9pZCByZWFkQ3VybENvb2tp
ZVRva2VuKGNvbnN0IGNoYXIqJiBjb29raWUsIFN0cmluZyYgdG9rZW4pCit7CisgICAgLy8gUmVh
ZCB0aGUgbmV4dCB0b2tlbiBmcm9tIGEgY29va2llIHdpdGggdGhlIE5ldHNjYXBlIGNvb2tpZSBm
b3JtYXQuCisgICAgLy8gQ3VybCBzZXBhcmF0ZXMgZWFjaCB0b2tlbiBpbiBsaW5lIHdpdGggdGFi
IGNoYXJhY3Rlci4KKyAgICB3aGlsZSAoY29va2llICYmIGNvb2tpZVswXSAmJiBjb29raWVbMF0g
IT0gJ1x0JykgeworICAgICAgICB0b2tlbi5hcHBlbmQoY29va2llWzBdKTsKKyAgICAgICAgY29v
a2llKys7CisgICAgfQorICAgIGlmIChjb29raWVbMF0gPT0gJ1x0JykKKyAgICAgICAgY29va2ll
Kys7Cit9CisKK3N0YXRpYyB2b2lkIGFkZE1hdGNoaW5nQ3VybENvb2tpZShjb25zdCBjaGFyKiBj
b29raWUsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYg
Y29va2llcykKK3sKKyAgICAvLyBDaGVjayBpZiB0aGUgY29va2llIG1hdGNoZXMgZG9tYWluIGFu
ZCBwYXRoLCBhbmQgaXMgbm90IGV4cGlyZWQuCisgICAgLy8gSWYgc28sIGFkZCBpdCB0byB0aGUg
bGlzdCBvZiBjb29raWVzLgorICAgIC8vCisgICAgLy8gRGVzY3JpcHRpb24gb2YgdGhlIE5ldHNj
YXBlIGNvb2tpZSBmaWxlIGZvcm1hdCB3aGljaCBDdXJsIHVzZXM6CisgICAgLy8KKyAgICAvLyAu
bmV0c2NhcGUuY29tICAgICBUUlVFICAgLyAgRkFMU0UgIDk0NjY4NDc5OSAgIE5FVFNDQVBFX0lE
ICAxMDAxMDMKKyAgICAvLworICAgIC8vIEVhY2ggbGluZSByZXByZXNlbnRzIGEgc2luZ2xlIHBp
ZWNlIG9mIHN0b3JlZCBpbmZvcm1hdGlvbi4gQSB0YWIgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBlYWNo
IG9mIHRoZSBmaWVsZHMuCisgICAgLy8KKyAgICAvLyBGcm9tIGxlZnQtdG8tcmlnaHQsIGhlcmUg
aXMgd2hhdCBlYWNoIGZpZWxkIHJlcHJlc2VudHM6CisgICAgLy8KKyAgICAvLyBkb21haW4gLSBU
aGUgZG9tYWluIHRoYXQgY3JlYXRlZCBBTkQgdGhhdCBjYW4gcmVhZCB0aGUgdmFyaWFibGUuCisg
ICAgLy8gZmxhZyAtIEEgVFJVRS9GQUxTRSB2YWx1ZSBpbmRpY2F0aW5nIGlmIGFsbCBtYWNoaW5l
cyB3aXRoaW4gYSBnaXZlbiBkb21haW4gY2FuIGFjY2VzcyB0aGUgdmFyaWFibGUuIFRoaXMgdmFs
dWUgaXMgc2V0IGF1dG9tYXRpY2FsbHkgYnkgdGhlIGJyb3dzZXIsIGRlcGVuZGluZyBvbiB0aGUg
dmFsdWUgeW91IHNldCBmb3IgZG9tYWluLgorICAgIC8vIHBhdGggLSBUaGUgcGF0aCB3aXRoaW4g
dGhlIGRvbWFpbiB0aGF0IHRoZSB2YXJpYWJsZSBpcyB2YWxpZCBmb3IuCisgICAgLy8gc2VjdXJl
IC0gQSBUUlVFL0ZBTFNFIHZhbHVlIGluZGljYXRpbmcgaWYgYSBzZWN1cmUgY29ubmVjdGlvbiB3
aXRoIHRoZSBkb21haW4gaXMgbmVlZGVkIHRvIGFjY2VzcyB0aGUgdmFyaWFibGUuCisgICAgLy8g
ZXhwaXJhdGlvbiAtIFRoZSBVTklYIHRpbWUgdGhhdCB0aGUgdmFyaWFibGUgd2lsbCBleHBpcmUg
b24uIFVOSVggdGltZSBpcyBkZWZpbmVkIGFzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBK
YW4gMSwgMTk3MCAwMDowMDowMCBHTVQuCisgICAgLy8gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB2
YXJpYWJsZS4KKyAgICAvLyB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUuCisKKyAg
ICBpZiAoIWNvb2tpZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGNvb2tpZURvbWFp
bjsKKyAgICByZWFkQ3VybENvb2tpZVRva2VuKGNvb2tpZSwgY29va2llRG9tYWluKTsKKworICAg
IGJvb2wgc3ViRG9tYWluID0gZmFsc2U7CisKKyAgICBpZiAoY29va2llRG9tYWluWzBdID09ICcu
JykgeworICAgICAgICAvLyBDaGVjayBpZiBkb21haW4gaXMgYSBzdWJkb21haW4gb2YgdGhlIGRv
bWFpbiBpbiB0aGUgY29va2llLgorICAgICAgICAvLyBDdXJsIHVzZXMgYSAnLicgaW4gZnJvbnQg
b2YgZG9tYWlucyB0byBpbmRpY2F0ZSBpdHMgdmFsaWQgb24gc3ViZG9tYWlucy4KKyAgICAgICAg
Y29va2llRG9tYWluLnJlbW92ZSgwKTsKKyAgICAgICAgaW50IGxlbkRpZmYgPSBkb21haW4ubGVu
Z3RoKCkgLSBjb29raWVEb21haW4ubGVuZ3RoKCk7CisgICAgICAgIGludCBpbmRleCA9IGRvbWFp
bi5maW5kKGNvb2tpZURvbWFpbik7CisgICAgICAgIGlmIChpbmRleCA9PSBsZW5EaWZmKQorICAg
ICAgICAgICAgc3ViRG9tYWluID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIXN1YkRvbWFpbiAm
JiBjb29raWVEb21haW4gIT0gZG9tYWluKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcg
c3RyQm9vbGVhbjsKKyAgICByZWFkQ3VybENvb2tpZVRva2VuKGNvb2tpZSwgc3RyQm9vbGVhbik7
CisKKyAgICBTdHJpbmcgc3RyUGF0aDsKKyAgICByZWFkQ3VybENvb2tpZVRva2VuKGNvb2tpZSwg
c3RyUGF0aCk7CisKKyAgICAvLyBDaGVjayBpZiBwYXRoIG1hdGNoZXMKKyAgICBpbnQgaW5kZXgg
PSBwYXRoLmZpbmQoc3RyUGF0aCk7CisgICAgaWYgKGluZGV4KQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmcgc3RyU2VjdXJlOworICAgIHJlYWRDdXJsQ29va2llVG9rZW4oY29va2llLCBz
dHJTZWN1cmUpOworCisgICAgU3RyaW5nIHN0ckV4cGlyZXM7CisgICAgcmVhZEN1cmxDb29raWVU
b2tlbihjb29raWUsIHN0ckV4cGlyZXMpOworCisgICAgaW50IGV4cGlyZXMgPSBzdHJFeHBpcmVz
LnRvSW50KCk7CisKKyAgICB0aW1lX3Qgbm93ID0gMDsKKyAgICB0aW1lKCZub3cpOworCisgICAg
Ly8gQ2hlY2sgaWYgY29va2llIGhhcyBleHBpcmVkCisgICAgaWYgKGV4cGlyZXMgJiYgbm93ID4g
ZXhwaXJlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHN0ck5hbWU7CisgICAgcmVh
ZEN1cmxDb29raWVUb2tlbihjb29raWUsIHN0ck5hbWUpOworCisgICAgU3RyaW5nIHN0clZhbHVl
OworICAgIHJlYWRDdXJsQ29va2llVG9rZW4oY29va2llLCBzdHJWYWx1ZSk7CisKKyAgICAvLyBU
aGUgY29va2llIG1hdGNoZXMsIGFkZCBpdCB0byB0aGUgY29va2llIGxpc3QuCisgICAgY29va2ll
cyA9IGNvb2tpZXMgKyBzdHJOYW1lICsgIj0iICsgc3RyVmFsdWUgKyAiOyAiOworfQorCiB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IEtV
UkwmLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgY29va2ll
SmFyLnNldCh1cmwuc3RyaW5nKCksIHZhbHVlKTsKQEAgLTUxLDYgKzE0MSwxMiBAQCB2b2lkIHNl
dENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yCiAgICAgZWxzZQogICAgICAgICBjb29r
aWUuYXBwZW5kKFN0cmluZzo6bWFrZThCaXRGcm9tMTZCaXRTb3VyY2UodmFsdWUuY2hhcmFjdGVy
czE2KCksIHZhbHVlLmxlbmd0aCgpKSk7CiAKKyAgICBpZiAoY29va2llLmZpbmQoU3RyaW5nKCJk
b21haW4iKSkgPT0gbm90Rm91bmQpIHsKKyAgICAgICAgLy8gSWYgbm8gZG9tYWluIGlzIHNldCwg
c2V0IGRvbWFpbiBhbmQgcGF0aCBmcm9tIHVybC4KKyAgICAgICAgY29va2llLmFwcGVuZChTdHJp
bmcoIjsgZG9tYWluPSIpICsgdXJsLmhvc3QoKSk7CisgICAgICAgIGNvb2tpZS5hcHBlbmQoU3Ry
aW5nKCI7IHBhdGg9IikgKyB1cmwucGF0aCgpKTsKKyAgICB9CisKICAgICBDU3RyaW5nIHN0ckNv
b2tpZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjb29raWUuY2hhcmFjdGVyczgoKSks
IGNvb2tpZS5sZW5ndGgoKSk7CiAKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRf
Q09PS0lFTElTVCwgc3RyQ29va2llLmRhdGEoKSk7CkBAIC02MCw3ICsxNTYsMzcgQEAgdm9pZCBz
ZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcgogCiBTdHJpbmcgY29va2llc0ZvckRP
TShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBLVVJMJiwgY29uc3QgS1VSTCYg
dXJsKQogewotICAgIHJldHVybiBjb29raWVKYXIuZ2V0KHVybC5zdHJpbmcoKSk7CisgICAgU3Ry
aW5nIGNvb2tpZXM7CisKKyAgICBDVVJMKiBjdXJsID0gY3VybF9lYXN5X2luaXQoKTsKKworICAg
IGlmICghY3VybCkKKyAgICAgICAgcmV0dXJuIGNvb2tpZXM7CisKKyAgICBDVVJMU0gqIGN1cmxz
aCA9IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+Z2V0Q3VybFNoYXJl
SGFuZGxlKCk7CisKKyAgICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRfU0hBUkUsIGN1
cmxzaCk7CisKKyAgICBzdHJ1Y3QgY3VybF9zbGlzdCogbGlzdCA9IDA7CisgICAgY3VybF9lYXN5
X2dldGluZm8oY3VybCwgQ1VSTElORk9fQ09PS0lFTElTVCwgJmxpc3QpOworCisgICAgaWYgKGxp
c3QpIHsKKyAgICAgICAgU3RyaW5nIGRvbWFpbiA9IHVybC5ob3N0KCk7CisgICAgICAgIFN0cmlu
ZyBwYXRoID0gdXJsLnBhdGgoKTsKKworICAgICAgICBzdHJ1Y3QgY3VybF9zbGlzdCogaXRlbSA9
IGxpc3Q7CisgICAgICAgIHdoaWxlIChpdGVtKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBj
b29raWUgPSBpdGVtLT5kYXRhOworICAgICAgICAgICAgYWRkTWF0Y2hpbmdDdXJsQ29va2llKGNv
b2tpZSwgZG9tYWluLCBwYXRoLCBjb29raWVzKTsKKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtLT5u
ZXh0OworICAgICAgICB9CisKKyAgICAgICAgY3VybF9zbGlzdF9mcmVlX2FsbChsaXN0KTsKKyAg
ICB9CisKKyAgICBjdXJsX2Vhc3lfY2xlYW51cChjdXJsKTsKKworICAgIHJldHVybiBjb29raWVz
OwogfQogCiBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgS1VSTCYgLypmaXJzdFBhcnR5Ki8sIGNvbnN0IEtVUkwm
IHVybCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>