<?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>41553</bug_id>
          
          <creation_ts>2010-07-02 17:48:00 -0700</creation_ts>
          <short_desc>Make StringExtras.h versions of snprintf and vsnprintf match the unix versions</short_desc>
          <delta_ts>2010-07-03 17:11:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>246174</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-02 17:48:00 -0700</bug_when>
    <thetext>Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.  MSVC does not ensure the buffers are null terminated as the unix versions do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246176</commentid>
    <comment_count>1</comment_count>
      <attachid>60424</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-02 17:50:45 -0700</bug_when>
    <thetext>Created attachment 60424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246177</commentid>
    <comment_count>2</comment_count>
      <attachid>60424</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-02 17:53:39 -0700</bug_when>
    <thetext>Comment on attachment 60424
Patch

&gt; +    // In the case where the string entirely filled the buffer, _vsnprintf will not
&gt; +    // null-terminate it, but vsnprintf must.
&gt; +    if (count &gt; 0)
&gt; +        buffer[count - 1] = &apos;\0&apos;;

But what about the case where Windows *does* have vsnprintf, but it has the wrong behavior and does not terminate the buffer with a nul character? As I understand it, this is the case with MSVC 8 and newer!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246179</commentid>
    <comment_count>3</comment_count>
      <attachid>60426</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-02 18:05:24 -0700</bug_when>
    <thetext>Created attachment 60426
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246180</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 18:06:41 -0700</bug_when>
    <thetext>Attachment 60426 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/StringExtras.h:56:  wtf_vsnprintf is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246284</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-03 03:16:38 -0700</bug_when>
    <thetext>Attachment 60426 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3399146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246326</commentid>
    <comment_count>6</comment_count>
      <attachid>60426</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-03 10:05:17 -0700</bug_when>
    <thetext>Comment on attachment 60426
Updated patch

&gt; +// Work around a bug in Microsoft&apos;s implementation of vsnprintf, where 
&gt; +// vsnprintf does not null terminate the buffer
&gt; +#define vsnprintf(x, y) wtf_vsnprintf(x, y)

vsnprintf has 4 arguments, not 2, which is presumably why the bot is failing to build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246342</commentid>
    <comment_count>7</comment_count>
      <attachid>60457</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-03 14:14:28 -0700</bug_when>
    <thetext>Created attachment 60457
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246344</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-03 14:17:29 -0700</bug_when>
    <thetext>Attachment 60457 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/StringExtras.h:56:  wtf_vsnprintf is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246369</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-03 17:11:53 -0700</bug_when>
    <thetext>Landed in r62457.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60424</attachid>
            <date>2010-07-02 17:50:45 -0700</date>
            <delta_ts>2010-07-02 18:05:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patchForStringExtras.diff</filename>
            <type>text/plain</type>
            <size>3892</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYyNDE5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMDIgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNTUzCisgICAgICAgIE1ha2UgU3RyaW5nRXh0cmFzLmggdmVyc2lvbnMgb2Ygc25w
cmludGYgYW5kIHZzbnByaW50ZiBtYXRjaCB0aGUgdW5peCB2ZXJzaW9ucy4KKworICAgICAgICAt
IE1TVkMgZG9lcyBub3QgZW5zdXJlIHRoZSBidWZmZXJzIGFyZSBudWxsIHRlcm1pbmF0ZWQgYXMg
dGhlIHVuaXggdmVyc2lvbnMgZG8uCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcDogQ2xlYW51cCBpbmNsdWRlcy4KKyAgICAgICAgKiBydW50aW1lL1VTdHJp
bmcuY3BwOiBDbGVhbiB1cCBpbmNsdWRlcy4KKyAgICAgICAgKEpTQzo6VVN0cmluZzo6ZnJvbSk6
IERvbid0IHBhc3Mgc2l6ZW9mKGJ1ZikgLSAxLCB0aGF0IGlzIHdyb25nLgorICAgICAgICAqIHd0
Zi9TdHJpbmdFeHRyYXMuaDoKKyAgICAgICAgKHNucHJpbnRmKTogRW5zdXJlIG51bGwgdGVybWlu
YXRpb24gb2YgYnVmZmVyLgorICAgICAgICAodnNucHJpbnRmKTogRGl0dG8uCisKIDIwMTAtMDct
MDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysg
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDE0ICszNiwxMyBAQAogI2luY2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVk
ZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotI2luY2x1ZGUgIlN0cmlu
Z0V4dHJhcy5oIgogI2luY2x1ZGUgImR0b2EuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1
ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdW5p
Y29kZS9VVEY4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVVN0cmluZy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9VU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTcgKzMyLDE0IEBACiAjaW5jbHVk
ZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0j
aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9VVEY4Lmg+Ci0jaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCiAj
aWYgSEFWRShTVFJJTkdTX0gpCiAjaW5jbHVkZSA8c3RyaW5ncy5oPgpAQCAtMTI2LDkgKzEyMyw5
IEBAIFVTdHJpbmcgVVN0cmluZzo6ZnJvbShsb25nIGxvbmcgaSkKICAgICBlbHNlIGlmIChpID09
IHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWluKCkpIHsKICAgICAgICAgY2hhciBt
aW5CdWZbMSArIHNpemVvZihpKSAqIDNdOwogI2lmIE9TKFdJTkRPV1MpCi0gICAgICAgIHNucHJp
bnRmKG1pbkJ1Ziwgc2l6ZW9mKG1pbkJ1ZikgLSAxLCAiJUk2NGQiLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25wcmludGYobWluQnVmLCBzaXplb2Yo
bWluQnVmKSwgIiVJNjRkIiwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptaW4oKSk7
CiAjZWxzZQotICAgICAgICBzbnByaW50ZihtaW5CdWYsIHNpemVvZihtaW5CdWYpIC0gMSwgIiVs
bGQiLCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25w
cmludGYobWluQnVmLCBzaXplb2YobWluQnVmKSwgIiVsbGQiLCBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1pbigpKTsKICNlbmRpZgogICAgICAgICByZXR1cm4gVVN0cmluZyhtaW5C
dWYpOwogICAgIH0gZWxzZSB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nRXh0cmFz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0V4dHJhcy5oCShyZXZp
c2lvbiA2MjI5NSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdFeHRyYXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsMTIgQEAgaW5saW5lIGludCBzbnByaW50ZihjaGFyKiBidWZm
ZXIsIHNpemVfdAogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAgICAgcmVzdWx0ID0gX3Zz
bnByaW50ZihidWZmZXIsIGNvdW50LCBmb3JtYXQsIGFyZ3MpOwogICAgIHZhX2VuZChhcmdzKTsK
KworICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdHJpbmcgZW50aXJlbHkgZmlsbGVkIHRo
ZSBidWZmZXIsIF92c25wcmludGYgd2lsbCBub3QKKyAgICAvLyBudWxsLXRlcm1pbmF0ZSBpdCwg
YnV0IHNucHJpbnRmIG11c3QuCisgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgYnVmZmVyW2Nv
dW50IC0gMV0gPSAnXDAnOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNTEsNyArNTcs
MTQgQEAgaW5saW5lIGludCBzbnByaW50ZihjaGFyKiBidWZmZXIsIHNpemVfdAogCiBpbmxpbmUg
aW50IHZzbnByaW50ZihjaGFyKiBidWZmZXIsIHNpemVfdCBjb3VudCwgY29uc3QgY2hhciogZm9y
bWF0LCB2YV9saXN0IGFyZ3MpCiB7Ci0gICAgcmV0dXJuIF92c25wcmludGYoYnVmZmVyLCBjb3Vu
dCwgZm9ybWF0LCBhcmdzKTsKKyAgICBpbnQgcmVzdWx0ID0gX3ZzbnByaW50ZihidWZmZXIsIGNv
dW50LCBmb3JtYXQsIGFyZ3MpOworCisgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHN0cmlu
ZyBlbnRpcmVseSBmaWxsZWQgdGhlIGJ1ZmZlciwgX3ZzbnByaW50ZiB3aWxsIG5vdAorICAgIC8v
IG51bGwtdGVybWluYXRlIGl0LCBidXQgdnNucHJpbnRmIG11c3QuCisgICAgaWYgKGNvdW50ID4g
MCkKKyAgICAgICAgYnVmZmVyW2NvdW50IC0gMV0gPSAnXDAnOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60426</attachid>
            <date>2010-07-02 18:05:24 -0700</date>
            <delta_ts>2010-07-03 14:14:28 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch2.diff</filename>
            <type>text/plain</type>
            <size>4242</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYyNDE5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMDIgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNTUzCisgICAgICAgIE1ha2UgU3RyaW5nRXh0cmFzLmggdmVyc2lvbnMgb2Ygc25w
cmludGYgYW5kIHZzbnByaW50ZiBtYXRjaCB0aGUgdW5peCB2ZXJzaW9ucy4KKworICAgICAgICAt
IE1TVkMgZG9lcyBub3QgZW5zdXJlIHRoZSBidWZmZXJzIGFyZSBudWxsIHRlcm1pbmF0ZWQgYXMg
dGhlIHVuaXggdmVyc2lvbnMgZG8uCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcDogQ2xlYW51cCBpbmNsdWRlcy4KKyAgICAgICAgKiBydW50aW1lL1VTdHJp
bmcuY3BwOiBDbGVhbiB1cCBpbmNsdWRlcy4KKyAgICAgICAgKEpTQzo6VVN0cmluZzo6ZnJvbSk6
IERvbid0IHBhc3Mgc2l6ZW9mKGJ1ZikgLSAxLCB0aGF0IGlzIHdyb25nLgorICAgICAgICAqIHd0
Zi9TdHJpbmdFeHRyYXMuaDoKKyAgICAgICAgKHNucHJpbnRmKTogRW5zdXJlIG51bGwgdGVybWlu
YXRpb24gb2YgYnVmZmVyLgorICAgICAgICAodnNucHJpbnRmKTogRGl0dG8uCisKIDIwMTAtMDct
MDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysg
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDE0ICszNiwxMyBAQAogI2luY2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVk
ZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotI2luY2x1ZGUgIlN0cmlu
Z0V4dHJhcy5oIgogI2luY2x1ZGUgImR0b2EuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1
ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdW5p
Y29kZS9VVEY4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVVN0cmluZy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9VU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTcgKzMyLDE0IEBACiAjaW5jbHVk
ZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0j
aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9VVEY4Lmg+Ci0jaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCiAj
aWYgSEFWRShTVFJJTkdTX0gpCiAjaW5jbHVkZSA8c3RyaW5ncy5oPgpAQCAtMTI2LDkgKzEyMyw5
IEBAIFVTdHJpbmcgVVN0cmluZzo6ZnJvbShsb25nIGxvbmcgaSkKICAgICBlbHNlIGlmIChpID09
IHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWluKCkpIHsKICAgICAgICAgY2hhciBt
aW5CdWZbMSArIHNpemVvZihpKSAqIDNdOwogI2lmIE9TKFdJTkRPV1MpCi0gICAgICAgIHNucHJp
bnRmKG1pbkJ1Ziwgc2l6ZW9mKG1pbkJ1ZikgLSAxLCAiJUk2NGQiLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25wcmludGYobWluQnVmLCBzaXplb2Yo
bWluQnVmKSwgIiVJNjRkIiwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptaW4oKSk7
CiAjZWxzZQotICAgICAgICBzbnByaW50ZihtaW5CdWYsIHNpemVvZihtaW5CdWYpIC0gMSwgIiVs
bGQiLCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25w
cmludGYobWluQnVmLCBzaXplb2YobWluQnVmKSwgIiVsbGQiLCBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1pbigpKTsKICNlbmRpZgogICAgICAgICByZXR1cm4gVVN0cmluZyhtaW5C
dWYpOwogICAgIH0gZWxzZSB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nRXh0cmFz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0V4dHJhcy5oCShyZXZp
c2lvbiA2MjI5NSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdFeHRyYXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsMjQgQEAgaW5saW5lIGludCBzbnByaW50ZihjaGFyKiBidWZm
ZXIsIHNpemVfdAogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAgICAgcmVzdWx0ID0gX3Zz
bnByaW50ZihidWZmZXIsIGNvdW50LCBmb3JtYXQsIGFyZ3MpOwogICAgIHZhX2VuZChhcmdzKTsK
KworICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdHJpbmcgZW50aXJlbHkgZmlsbGVkIHRo
ZSBidWZmZXIsIF92c25wcmludGYgd2lsbCBub3QKKyAgICAvLyBudWxsLXRlcm1pbmF0ZSBpdCwg
YnV0IHNucHJpbnRmIG11c3QuCisgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgYnVmZmVyW2Nv
dW50IC0gMV0gPSAnXDAnOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW5saW5lIGRvdWJs
ZSB3dGZfdnNucHJpbnRmKGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyKiBm
b3JtYXQsIHZhX2xpc3QgYXJncykKK3sKKyAgICBpbnQgcmVzdWx0ID0gX3ZzbnByaW50ZihidWZm
ZXIsIGNvdW50LCBmb3JtYXQsIGFyZ3MpOworCisgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhl
IHN0cmluZyBlbnRpcmVseSBmaWxsZWQgdGhlIGJ1ZmZlciwgX3ZzbnByaW50ZiB3aWxsIG5vdAor
ICAgIC8vIG51bGwtdGVybWluYXRlIGl0LCBidXQgdnNucHJpbnRmIG11c3QuCisgICAgaWYgKGNv
dW50ID4gMCkKKyAgICAgICAgYnVmZmVyW2NvdW50IC0gMV0gPSAnXDAnOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApAQCAtNTEsOSArNjksMTUgQEAgaW5saW5lIGludCBzbnByaW50ZihjaGFy
KiBidWZmZXIsIHNpemVfdAogCiBpbmxpbmUgaW50IHZzbnByaW50ZihjaGFyKiBidWZmZXIsIHNp
emVfdCBjb3VudCwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7Ci0gICAgcmV0
dXJuIF92c25wcmludGYoYnVmZmVyLCBjb3VudCwgZm9ybWF0LCBhcmdzKTsKKyAgICByZXR1cm4g
d3RmX3ZzbnByaW50ZihidWZmZXIsIGNvdW50LCBmb3JtYXQsIGFyZ3MpOwogfQogCisjZWxzZQor
CisvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZiB2
c25wcmludGYsIHdoZXJlIAorLy8gdnNucHJpbnRmIGRvZXMgbm90IG51bGwgdGVybWluYXRlIHRo
ZSBidWZmZXIKKyNkZWZpbmUgdnNucHJpbnRmKHgsIHkpIHd0Zl92c25wcmludGYoeCwgeSkKKwog
I2VuZGlmCiAKICNpZiBPUyhXSU5DRSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60457</attachid>
            <date>2010-07-03 14:14:28 -0700</date>
            <delta_ts>2010-07-03 16:19:58 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>patch2.diff</filename>
            <type>text/plain</type>
            <size>4199</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYyNDE5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMDIgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNTUzCisgICAgICAgIE1ha2UgU3RyaW5nRXh0cmFzLmggdmVyc2lvbnMgb2Ygc25w
cmludGYgYW5kIHZzbnByaW50ZiBtYXRjaCB0aGUgdW5peCB2ZXJzaW9ucy4KKworICAgICAgICAt
IE1TVkMgZG9lcyBub3QgZW5zdXJlIHRoZSBidWZmZXJzIGFyZSBudWxsIHRlcm1pbmF0ZWQgYXMg
dGhlIHVuaXggdmVyc2lvbnMgZG8uCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcDogQ2xlYW51cCBpbmNsdWRlcy4KKyAgICAgICAgKiBydW50aW1lL1VTdHJp
bmcuY3BwOiBDbGVhbiB1cCBpbmNsdWRlcy4KKyAgICAgICAgKEpTQzo6VVN0cmluZzo6ZnJvbSk6
IERvbid0IHBhc3Mgc2l6ZW9mKGJ1ZikgLSAxLCB0aGF0IGlzIHdyb25nLgorICAgICAgICAqIHd0
Zi9TdHJpbmdFeHRyYXMuaDoKKyAgICAgICAgKHNucHJpbnRmKTogRW5zdXJlIG51bGwgdGVybWlu
YXRpb24gb2YgYnVmZmVyLgorICAgICAgICAodnNucHJpbnRmKTogRGl0dG8uCisKIDIwMTAtMDct
MDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysg
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDE0ICszNiwxMyBAQAogI2luY2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVk
ZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotI2luY2x1ZGUgIlN0cmlu
Z0V4dHJhcy5oIgogI2luY2x1ZGUgImR0b2EuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1
ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdW5p
Y29kZS9VVEY4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVVN0cmluZy5jcHAJKHJldmlzaW9uIDYyNDE0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9VU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTcgKzMyLDE0IEBACiAjaW5jbHVk
ZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0j
aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9VVEY4Lmg+Ci0jaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCiAj
aWYgSEFWRShTVFJJTkdTX0gpCiAjaW5jbHVkZSA8c3RyaW5ncy5oPgpAQCAtMTI2LDkgKzEyMyw5
IEBAIFVTdHJpbmcgVVN0cmluZzo6ZnJvbShsb25nIGxvbmcgaSkKICAgICBlbHNlIGlmIChpID09
IHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWluKCkpIHsKICAgICAgICAgY2hhciBt
aW5CdWZbMSArIHNpemVvZihpKSAqIDNdOwogI2lmIE9TKFdJTkRPV1MpCi0gICAgICAgIHNucHJp
bnRmKG1pbkJ1Ziwgc2l6ZW9mKG1pbkJ1ZikgLSAxLCAiJUk2NGQiLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25wcmludGYobWluQnVmLCBzaXplb2Yo
bWluQnVmKSwgIiVJNjRkIiwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptaW4oKSk7
CiAjZWxzZQotICAgICAgICBzbnByaW50ZihtaW5CdWYsIHNpemVvZihtaW5CdWYpIC0gMSwgIiVs
bGQiLCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1pbigpKTsKKyAgICAgICAgc25w
cmludGYobWluQnVmLCBzaXplb2YobWluQnVmKSwgIiVsbGQiLCBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1pbigpKTsKICNlbmRpZgogICAgICAgICByZXR1cm4gVVN0cmluZyhtaW5C
dWYpOwogICAgIH0gZWxzZSB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nRXh0cmFz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0V4dHJhcy5oCShyZXZp
c2lvbiA2MjI5NSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdFeHRyYXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsMTcgKzQ0LDMwIEBAIGlubGluZSBpbnQgc25wcmludGYoY2hhciogYnVm
ZmVyLCBzaXplX3QKICAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwogICAgIHJlc3VsdCA9IF92
c25wcmludGYoYnVmZmVyLCBjb3VudCwgZm9ybWF0LCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7
CisKKyAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgc3RyaW5nIGVudGlyZWx5IGZpbGxlZCB0
aGUgYnVmZmVyLCBfdnNucHJpbnRmIHdpbGwgbm90CisgICAgLy8gbnVsbC10ZXJtaW5hdGUgaXQs
IGJ1dCBzbnByaW50ZiBtdXN0LgorICAgIGlmIChjb3VudCA+IDApCisgICAgICAgIGJ1ZmZlcltj
b3VudCAtIDFdID0gJ1wwJzsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLSNpZiBDT01QSUxF
UihNU1ZDN19PUl9MT1dFUikgfHwgT1MoV0lOQ0UpCi0KLWlubGluZSBpbnQgdnNucHJpbnRmKGNo
YXIqIGJ1ZmZlciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJn
cykKK2lubGluZSBkb3VibGUgd3RmX3ZzbnByaW50ZihjaGFyKiBidWZmZXIsIHNpemVfdCBjb3Vu
dCwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7Ci0gICAgcmV0dXJuIF92c25w
cmludGYoYnVmZmVyLCBjb3VudCwgZm9ybWF0LCBhcmdzKTsKKyAgICBpbnQgcmVzdWx0ID0gX3Zz
bnByaW50ZihidWZmZXIsIGNvdW50LCBmb3JtYXQsIGFyZ3MpOworCisgICAgLy8gSW4gdGhlIGNh
c2Ugd2hlcmUgdGhlIHN0cmluZyBlbnRpcmVseSBmaWxsZWQgdGhlIGJ1ZmZlciwgX3ZzbnByaW50
ZiB3aWxsIG5vdAorICAgIC8vIG51bGwtdGVybWluYXRlIGl0LCBidXQgdnNucHJpbnRmIG11c3Qu
CisgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgYnVmZmVyW2NvdW50IC0gMV0gPSAnXDAnOwor
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2VuZGlmCisvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBp
biBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZiB2c25wcmludGYsIHdoZXJlIAorLy8gdnNu
cHJpbnRmIGRvZXMgbm90IG51bGwgdGVybWluYXRlIHRoZSBidWZmZXIKKyNkZWZpbmUgdnNucHJp
bnRmKGJ1ZmZlciwgY291bnQsIGZvcm1hdCwgYXJncykgd3RmX3ZzbnByaW50ZihidWZmZXIsIGNv
dW50LCBmb3JtYXQsIGFyZ3MpCiAKICNpZiBPUyhXSU5DRSkKIAo=
</data>
<flag name="review"
          id="47970"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>