<?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>4026</bug_id>
          
          <creation_ts>2005-07-16 04:51:53 -0700</creation_ts>
          <short_desc>Math.random() not seeded</short_desc>
          <delta_ts>2005-12-29 03:07: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>JavaScriptCore</component>
          <version>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Finlay Dobbie">snu</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14735</commentid>
    <comment_count>0</comment_count>
    <who name="Finlay Dobbie">snu</who>
    <bug_when>2005-07-16 04:51:53 -0700</bug_when>
    <thetext>Math.random() appears to be unseeded, and uses the rand() function which is known to perform poorly on 
OS X (IIRC, anyway).

A partial workaround is to srand(time(NULL)) from the host application.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14738</commentid>
    <comment_count>1</comment_count>
    <who name="Finlay Dobbie">snu</who>
    <bug_when>2005-07-16 04:53:38 -0700</bug_when>
    <thetext>*** Bug 4027 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26696</commentid>
    <comment_count>2</comment_count>
      <attachid>5294</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-26 20:23:27 -0800</bug_when>
    <thetext>Created attachment 5294
Fix

FYI, rand() is the *faster* of the random number generators on OS X. (random()
makes the cryptography gods happier, but I don&apos;t think we need to worry about
anyone using JavaScript for that...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26710</commentid>
    <comment_count>3</comment_count>
      <attachid>5294</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 01:35:27 -0800</bug_when>
    <thetext>Comment on attachment 5294
Fix

Is the :: business really needed here? Also, mightn&apos;t you want a time value
that has more than second precision? But otherwise, r=me looks like a good
improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26740</commentid>
    <comment_count>4</comment_count>
      <attachid>5294</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-27 10:29:51 -0800</bug_when>
    <thetext>Comment on attachment 5294
Fix

Is it really a good thing for JavaScript to change the global seed used by the
process it&apos;s hosted in?

Also, why not use sranddev() instead of srand(time(0))?

And why not switch to random(), at least on OS X? If we used that, we could use
initstate() and setstate() and make the random number sequence for
JavaScriptCore be entirely separate from the random number sequence used by
other callers inside the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26761</commentid>
    <comment_count>5</comment_count>
      <attachid>5304</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-27 11:45:01 -0800</bug_when>
    <thetext>Created attachment 5304
Fix 2

Attempt to address some of the comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26762</commentid>
    <comment_count>6</comment_count>
      <attachid>5304</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-27 11:45:49 -0800</bug_when>
    <thetext>Comment on attachment 5304
Fix 2

patch to get rid of ::, use sranddev(), but not use random().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26763</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-27 11:53:15 -0800</bug_when>
    <thetext>In addition to non-portability, I didn&apos;t want to use random() because it&apos;s advertised as being slower than 
rand(), and random number generation is a part of the ibench test suite.

One option to avoid trampling the parent process would be to test for rand() == 16807, which is the first 
value returned by an unseeded rand(). I doubt that&apos;s portable, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26819</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 14:26:29 -0800</bug_when>
    <thetext>Trampling the parent process is unfortunate but seems unavoidable without a portable, efficient API to do 
it otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26823</commentid>
    <comment_count>9</comment_count>
      <attachid>5304</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 14:31:36 -0800</bug_when>
    <thetext>Comment on attachment 5304
Fix 2

Actually, now that I look more closely - shouldn&apos;t randomSeeded be a static
variable, rather than a field of MathFunctionImp? As it is, every interpreter
will reseed the RNG on the first call to Math.random, that doesn&apos;t seem to be
what we want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26920</commentid>
    <comment_count>10</comment_count>
      <attachid>5325</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-27 22:30:47 -0800</bug_when>
    <thetext>Created attachment 5325
Fix 3

Use a static class boolean to track seeding the RNG.

I think globals get initialized to 0 by default, so the initializer may be
overkill. Can&apos;t hurt, I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27036</commentid>
    <comment_count>11</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2005-12-28 10:37:00 -0800</bug_when>
    <thetext>For Windows, we can use rand_s(), which uses the system generated seed. This
will let the 2 OSes have the best OS specific optimizations available.

rand_s is the new Whidbey CRT (the C Runtime Environment used by Visual Studio
2005) that uses Windows XP&apos;s (and Windows Vista&apos;s) cryptographically secure APIs
for generating random numbers and uses CryptoAPI on older platforms, automagically.

Would this be a suitable #ifdef?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27040</commentid>
    <comment_count>12</comment_count>
      <attachid>5325</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-28 10:42:01 -0800</bug_when>
    <thetext>Comment on attachment 5325
Fix 3

The page load test intentionally seeds the random number generator the same way
every time to give repeatable results. This patch is going to break that
feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27077</commentid>
    <comment_count>13</comment_count>
      <attachid>5325</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-28 16:36:22 -0800</bug_when>
    <thetext>Comment on attachment 5325
Fix 3

r=me, to address Darin&apos;s concern, the PLT could do what it does after ensuring
that at least one random number has  been generated, since this latest patch
promises one time only seeding.

Class scope statics do need to be initialized, but you could make it file
scope, then there is no need to mention it in the header. It is better to leave
implementation details out of headers when possible IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27115</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-29 03:07:48 -0800</bug_when>
    <thetext>Landed. Also sent a patch for review to address the PLT issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5294</attachid>
            <date>2005-12-26 20:23:27 -0800</date>
            <delta_ts>2005-12-27 11:45:01 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>patch-random.txt</filename>
            <type>text/plain</type>
            <size>2675</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg5OApkaWZmIC1wIC11IC1y
MS44OTggQ2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJMTEgRGVjIDIwMDUgMDI6MDU6MjkgLTAwMDAJ
MS44OTgKKysrIENoYW5nZUxvZwkyNyBEZWMgMjAwNSAwNDoyMjo0MSAtMDAwMApAQCAtMSwzICsx
LDE3IEBACisyMDA1LTEyLTI2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBGaXhlZCBo
dHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjYKKyAgICAg
ICAgTWF0aC5yYW5kb20oKSBub3Qgc2VlZGVkCisKKyAgICAgICAgKiBranMvbWF0aF9vYmplY3Qu
Y3BwOgorICAgICAgICAoTWF0aEZ1bmNJbXA6Ok1hdGhGdW5jSW1wKTogCisgICAgICAgIChNYXRo
RnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24pOiBTZWVkIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHdp
dGggdGltZQorICAgICAgICBvZiBkYXksIGlmIGl0IGhhc24ndCBiZWVuIHNlZWRlZCBhbHJlYWR5
LgorICAgICAgICAqIGtqcy9tYXRoX29iamVjdC5oOiBOZXcgc3RhdGUgdmFyaWFibGUgdG8gdHJh
Y2sgd2hldGhlciB5b3UgbmVlZAorICAgICAgICB0byBzZWVkIHRoZSByYW5kb20gbnVtYmVyIGdl
bmVyYXRvci4KKwogMjAwNS0xMi0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgTWFjaWVqLgpJbmRleDoga2pzL21hdGhfb2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL21h
dGhfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpkaWZmIC1wIC11IC1yMS4y
MiBranMvbWF0aF9vYmplY3QuY3BwCi0tLSBranMvbWF0aF9vYmplY3QuY3BwCTExIERlYyAyMDA1
IDAyOjA1OjQ1IC0wMDAwCTEuMjIKKysrIGtqcy9tYXRoX29iamVjdC5jcHAJMjcgRGVjIDIwMDUg
MDQ6MjI6NDYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5j
bHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8dGltZS5oPgog
CiAjaW5jbHVkZSAidmFsdWUuaCIKICNpbmNsdWRlICJvYmplY3QuaCIKQEAgLTE1Myw3ICsxNTQs
NyBAQCBKU1ZhbHVlICpNYXRoT2JqZWN0SW1wOjpnZXRWYWx1ZVByb3BlcnR5CiBNYXRoRnVuY0lt
cDo6TWF0aEZ1bmNJbXAoRXhlY1N0YXRlICpleGVjLCBpbnQgaSwgaW50IGwpCiAgIDogSW50ZXJu
YWxGdW5jdGlvbkltcCgKICAgICBzdGF0aWNfY2FzdDxGdW5jdGlvblByb3RvdHlwZSo+KGV4ZWMt
PmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5cGUoKSkKLSAgICAp
LCBpZChpKQorICAgICksIGlkKGkpLCBzcmFuZENhbGxlZChmYWxzZSkKIHsKICAgcHV0RGlyZWN0
KGxlbmd0aFByb3BlcnR5TmFtZSwgbCwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9
CkBAIC0yNTgsOSArMjU5LDEyIEBAIEpTVmFsdWUgKk1hdGhGdW5jSW1wOjpjYWxsQXNGdW5jdGlv
bihFeGUKICAgICAgIHJlc3VsdCA9IDo6cG93KGFyZywgYXJnMik7CiAgICAgYnJlYWs7CiAgIGNh
c2UgTWF0aE9iamVjdEltcDo6UmFuZG9tOgotICAgIHJlc3VsdCA9IDo6cmFuZCgpOwotICAgIHJl
c3VsdCA9IHJlc3VsdCAvIFJBTkRfTUFYOwotICAgIGJyZWFrOworICAgICAgaWYgKCFzcmFuZENh
bGxlZCkgeworICAgICAgICAgIDo6c3JhbmQoOjp0aW1lKDApKTsKKyAgICAgICAgICBzcmFuZENh
bGxlZCA9IHRydWU7CisgICAgICB9CisgICAgICByZXN1bHQgPSAoZG91YmxlKTo6cmFuZCgpIC8g
UkFORF9NQVg7CisgICAgICBicmVhazsKICAgY2FzZSBNYXRoT2JqZWN0SW1wOjpSb3VuZDoKICAg
ICBpZiAoc2lnbmJpdChhcmcpICYmIGFyZyA+PSAtMC41KQogICAgICAgICByZXN1bHQgPSAtMC4w
OwpJbmRleDoga2pzL21hdGhfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2tqcy9tYXRoX29iamVjdC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjkKZGlmZiAtcCAtdSAtcjEuOSBranMvbWF0aF9vYmplY3QuaAotLS0ga2pzL21hdGhfb2JqZWN0
LmgJMTEgRGVjIDIwMDUgMDI6MDU6NDUgLTAwMDAJMS45CisrKyBranMvbWF0aF9vYmplY3QuaAky
NyBEZWMgMjAwNSAwNDoyMjo0NiAtMDAwMApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywg
SlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogICBwcml2YXRlOgogICAgIGlu
dCBpZDsKKyAgICBib29sIHNyYW5kQ2FsbGVkOwogICB9OwogCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5304</attachid>
            <date>2005-12-27 11:45:01 -0800</date>
            <delta_ts>2005-12-27 22:30:47 -0800</delta_ts>
            <desc>Fix 2</desc>
            <filename>patch-random.txt</filename>
            <type>text/plain</type>
            <size>2643</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkzNApkaWZmIC1wIC11IC1y
MS45MzQgQ2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJMjcgRGVjIDIwMDUgMTI6NTY6NDQgLTAwMDAJ
MS45MzQKKysrIENoYW5nZUxvZwkyNyBEZWMgMjAwNSAxOTo0NTowMyAtMDAwMApAQCAtMSwzICsx
LDE1IEBACisyMDA1LTEyLTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisK
KyAgICAgICAtIEZpeGVkIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAyNgorICAgICAgIE1hdGgucmFuZG9tKCkgbm90IHNlZWRlZAorCisgICAgICAgKiBr
anMvbWF0aF9vYmplY3QuY3BwOgorICAgICAgIChNYXRoRnVuY0ltcDo6TWF0aEZ1bmNJbXApOgor
ICAgICAgIChNYXRoRnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24pOiBTZWVkIHJhbmRvbSBudW1iZXIg
Z2VuZXJhdG9yIHdpdGggdGltZQorICAgICAgIG9mIGRheSwgaWYgaXQgaGFzbid0IGJlZW4gc2Vl
ZGVkIGFscmVhZHkuCisgICAgICAgKiBranMvbWF0aF9vYmplY3QuaDogTmV3IHN0YXRlIHZhcmlh
YmxlIHRvIHRyYWNrIHdoZXRoZXIgeW91IG5lZWQKKyAgICAgICB0byBzZWVkIHRoZSByYW5kb20g
bnVtYmVyIGdlbmVyYXRvci4KKwogMjAwNS0xMi0yNyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNA
YXBwbGUuY29tPgogCiAgICAgICAgIC0gdXBkYXRlZCB0ZXN0IHJlc3VsdHMgZm9yIG5ldyBKUyAx
LjYgdGVzdHMKSW5kZXg6IGtqcy9tYXRoX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9tYXRoX29iamVjdC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2pzL21hdGhfb2JqZWN0LmNwcAotLS0g
a2pzL21hdGhfb2JqZWN0LmNwcAkxMSBEZWMgMjAwNSAwMjowNTo0NSAtMDAwMAkxLjIyCisrKyBr
anMvbWF0aF9vYmplY3QuY3BwCTI3IERlYyAyMDA1IDE5OjQ1OjA0IC0wMDAwCkBAIC0yMyw2ICsy
Myw3IEBACiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUg
PGFzc2VydC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KIAogI2luY2x1ZGUgInZhbHVlLmgiCiAjaW5j
bHVkZSAib2JqZWN0LmgiCkBAIC0xNTMsNyArMTU0LDcgQEAgSlNWYWx1ZSAqTWF0aE9iamVjdElt
cDo6Z2V0VmFsdWVQcm9wZXJ0eQogTWF0aEZ1bmNJbXA6Ok1hdGhGdW5jSW1wKEV4ZWNTdGF0ZSAq
ZXhlYywgaW50IGksIGludCBsKQogICA6IEludGVybmFsRnVuY3Rpb25JbXAoCiAgICAgc3RhdGlj
X2Nhc3Q8RnVuY3Rpb25Qcm90b3R5cGUqPihleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVp
bHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpCi0gICAgKSwgaWQoaSkKKyAgICApLCBpZChpKSwgcmFu
ZG9tU2VlZGVkKGZhbHNlKQogewogICBwdXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBsLCBE
b250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KQEAgLTI1OCw5ICsyNTksMTIgQEAgSlNW
YWx1ZSAqTWF0aEZ1bmNJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZQogICAgICAgcmVzdWx0ID0gOjpw
b3coYXJnLCBhcmcyKTsKICAgICBicmVhazsKICAgY2FzZSBNYXRoT2JqZWN0SW1wOjpSYW5kb206
Ci0gICAgcmVzdWx0ID0gOjpyYW5kKCk7Ci0gICAgcmVzdWx0ID0gcmVzdWx0IC8gUkFORF9NQVg7
Ci0gICAgYnJlYWs7CisgICAgICBpZiAoIXJhbmRvbVNlZWRlZCkgeworICAgICAgICAgIHNyYW5k
ZGV2KCk7CisgICAgICAgICAgcmFuZG9tU2VlZGVkID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJl
c3VsdCA9IChkb3VibGUpcmFuZCgpIC8gUkFORF9NQVg7CisgICAgICBicmVhazsKICAgY2FzZSBN
YXRoT2JqZWN0SW1wOjpSb3VuZDoKICAgICBpZiAoc2lnbmJpdChhcmcpICYmIGFyZyA+PSAtMC41
KQogICAgICAgICByZXN1bHQgPSAtMC4wOwpJbmRleDoga2pzL21hdGhfb2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9tYXRoX29iamVjdC5o
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtcCAtdSAtcjEuOSBranMvbWF0aF9vYmpl
Y3QuaAotLS0ga2pzL21hdGhfb2JqZWN0LmgJMTEgRGVjIDIwMDUgMDI6MDU6NDUgLTAwMDAJMS45
CisrKyBranMvbWF0aF9vYmplY3QuaAkyNyBEZWMgMjAwNSAxOTo0NTowNCAtMDAwMApAQCAtNDcs
NiArNDcsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1
bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFy
Z3MpOwogICBwcml2YXRlOgogICAgIGludCBpZDsKKyAgICBib29sIHJhbmRvbVNlZWRlZDsKICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UK
</data>
<flag name="review"
          id="1114"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5325</attachid>
            <date>2005-12-27 22:30:47 -0800</date>
            <delta_ts>2005-12-28 16:36:22 -0800</delta_ts>
            <desc>Fix 3</desc>
            <filename>patch-random.txt</filename>
            <type>text/plain</type>
            <size>1793</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9tYXRoX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2tqcy9tYXRoX29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2pzL21hdGhfb2JqZWN0LmNwcAotLS0ga2pzL21hdGhf
b2JqZWN0LmNwcAkxMSBEZWMgMjAwNSAwMjowNTo0NSAtMDAwMAkxLjIyCisrKyBranMvbWF0aF9v
YmplY3QuY3BwCTI4IERlYyAyMDA1IDA2OjI4OjU3IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAj
aW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPGFzc2VydC5o
PgorI2luY2x1ZGUgPHRpbWUuaD4KIAogI2luY2x1ZGUgInZhbHVlLmgiCiAjaW5jbHVkZSAib2Jq
ZWN0LmgiCkBAIC0xNTAsNiArMTUxLDggQEAgSlNWYWx1ZSAqTWF0aE9iamVjdEltcDo6Z2V0VmFs
dWVQcm9wZXJ0eQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTWF0aE9iamVj
dEltcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitib29sIE1hdGhGdW5jSW1w
OjpyYW5kb21TZWVkZWQgPSBmYWxzZTsKKwogTWF0aEZ1bmNJbXA6Ok1hdGhGdW5jSW1wKEV4ZWNT
dGF0ZSAqZXhlYywgaW50IGksIGludCBsKQogICA6IEludGVybmFsRnVuY3Rpb25JbXAoCiAgICAg
c3RhdGljX2Nhc3Q8RnVuY3Rpb25Qcm90b3R5cGUqPihleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIo
KS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpCkBAIC0yNTgsOSArMjYxLDEyIEBAIEpTVmFs
dWUgKk1hdGhGdW5jSW1wOjpjYWxsQXNGdW5jdGlvbihFeGUKICAgICAgIHJlc3VsdCA9IDo6cG93
KGFyZywgYXJnMik7CiAgICAgYnJlYWs7CiAgIGNhc2UgTWF0aE9iamVjdEltcDo6UmFuZG9tOgot
ICAgIHJlc3VsdCA9IDo6cmFuZCgpOwotICAgIHJlc3VsdCA9IHJlc3VsdCAvIFJBTkRfTUFYOwot
ICAgIGJyZWFrOworICAgICAgaWYgKCFyYW5kb21TZWVkZWQpIHsKKyAgICAgICAgICBzcmFuZGRl
digpOworICAgICAgICAgIHJhbmRvbVNlZWRlZCA9IHRydWU7CisgICAgICB9CisgICAgICByZXN1
bHQgPSAoZG91YmxlKXJhbmQoKSAvIFJBTkRfTUFYOworICAgICAgYnJlYWs7CiAgIGNhc2UgTWF0
aE9iamVjdEltcDo6Um91bmQ6CiAgICAgaWYgKHNpZ25iaXQoYXJnKSAmJiBhcmcgPj0gLTAuNSkK
ICAgICAgICAgcmVzdWx0ID0gLTAuMDsKSW5kZXg6IGtqcy9tYXRoX29iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvbWF0aF9vYmplY3QuaCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkga2pzL21hdGhfb2JqZWN0
LmgKLS0tIGtqcy9tYXRoX29iamVjdC5oCTExIERlYyAyMDA1IDAyOjA1OjQ1IC0wMDAwCTEuOQor
Kysga2pzL21hdGhfb2JqZWN0LmgJMjggRGVjIDIwMDUgMDY6Mjg6NTcgLTAwMDAKQEAgLTQ3LDYg
KzQ3LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5j
dGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdz
KTsKICAgcHJpdmF0ZToKICAgICBpbnQgaWQ7CisgICAgc3RhdGljIGJvb2wgcmFuZG9tU2VlZGVk
OwogICB9OwogCiB9IC8vIG5hbWVzcGFjZQo=
</data>
<flag name="review"
          id="1124"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>