<?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>16127</bug_id>
          
          <creation_ts>2007-11-24 22:24:00 -0800</creation_ts>
          <short_desc>Reproducible crash inside PCRE under guard malloc</short_desc>
          <delta_ts>2007-11-30 15:44:19 -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>528+ (Nightly build)</version>
          <rep_platform>Mac</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>HasReduction, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62253</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-24 22:24:00 -0800</bug_when>
    <thetext>Loading a JavaScript snippet containing the following regexp literal will cause a crash under guard malloc:
/\)[;\s]+/

This leads to indexing off the end of an array.  My reading of the PCRE 7.4 sources suggest that they also have this problem.  I recall seeing valgrind warnings in similar places when playing with it on Linux recently.

Steps to reproduce:
1) Save attachment as test.js.
2) DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib DYLD_FRAMEWORK_PATH=WebKitBuild/Debug ./WebitBuild/Debug/testkjs test.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62254</commentid>
    <comment_count>1</comment_count>
      <attachid>17499</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-24 22:24:40 -0800</bug_when>
    <thetext>Created attachment 17499
Reduced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62255</commentid>
    <comment_count>2</comment_count>
      <attachid>17500</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-24 22:25:23 -0800</bug_when>
    <thetext>Created attachment 17500
Crash log

0   com.apple.JavaScriptCore      	0x0031a0f2 calculateCompiledPatternLengthAndFlags(unsigned short const*, int, JSRegExpIgnoreCaseOption, compile_data&amp;, ErrorCode) + 1268 (pcre_compile.cpp:2550)
1   com.apple.JavaScriptCore      	0x0031ab56 jsRegExpCompile(unsigned short const*, int, JSRegExpIgnoreCaseOption, JSRegExpMultilineOption, unsigned int*, char const**) + 82 (pcre_compile.cpp:3013)
2   com.apple.JavaScriptCore      	0x002883df KJS::RegExp::RegExp(KJS::UString const&amp;, KJS::UString const&amp;) + 417 (regexp.cpp:70)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62256</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-24 22:26:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/5611792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62261</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-11-25 00:03:00 -0800</bug_when>
    <thetext>I don&apos;t think that original PCRE has this problem - it relies on strings being null-terminated.

*** This bug has been marked as a duplicate of 15839 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62785</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-30 05:18:00 -0800</bug_when>
    <thetext>bug 15839 no longer crashes on TOT, however this still does.  Reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62786</commentid>
    <comment_count>6</comment_count>
      <attachid>17603</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-30 05:39:01 -0800</bug_when>
    <thetext>Created attachment 17603
Check against patternEnd to make sure we don&apos;t walk of the end of the string

 JavaScriptCore/ChangeLog                           |   12 +++++
 JavaScriptCore/pcre/pcre_compile.cpp               |   47 ++++++++++----------
 LayoutTests/ChangeLog                              |   10 ++++
 .../fast/js/regexp-compile-crash-expected.txt      |    5 ++
 LayoutTests/fast/js/regexp-compile-crash.html      |   22 +++++++++
 5 files changed, 72 insertions(+), 24 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62788</commentid>
    <comment_count>7</comment_count>
      <attachid>17604</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-30 05:55:42 -0800</bug_when>
    <thetext>Created attachment 17604
Check against patternEnd to make sure we don&apos;t walk off the end of the string

 JavaScriptCore/ChangeLog                           |   12 +++++
 JavaScriptCore/pcre/pcre_compile.cpp               |   47 ++++++++++----------
 LayoutTests/ChangeLog                              |   10 ++++
 .../fast/js/regexp-compile-crash-expected.txt      |   11 +++++
 LayoutTests/fast/js/regexp-compile-crash.html      |   22 +++++++++
 5 files changed, 78 insertions(+), 24 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62795</commentid>
    <comment_count>8</comment_count>
      <attachid>17604</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-30 09:30:02 -0800</bug_when>
    <thetext>Comment on attachment 17604
Check against patternEnd to make sure we don&apos;t walk off the end of the string

This is not the correct way to write tests in fast/js -- the actual test should be in a resources file, and the wrapper generated by the make-js-test-wrappers script. With that structure we can possibly run them standalone in the future.

+                while ((++ptr &lt; patternEnd) &amp;&amp; ((c = *ptr) != &apos;]&apos;)) {
                     if (c &gt; 127)
                         c = getCharAndAdvanceIfSurrogate(ptr);

This still has a &quot;run off the end&quot; problem, because getCharAndAdvanceIfSurrogate doesn&apos;t check the end. But that problem will go away if we merge my change to remove support for UTF-16 surrogate pairs, currently up for review.

I&apos;m a little bit opposed to this code using parentheses around the patternEnd conditions, when all the other similar code in the same file omits parens in cases like these.

r=me, but better to improve the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62824</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-30 15:44:19 -0800</bug_when>
    <thetext>r28260</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17499</attachid>
            <date>2007-11-24 22:24:40 -0800</date>
            <delta_ts>2007-11-24 22:24:40 -0800</delta_ts>
            <desc>Reduced test case</desc>
            <filename>test.js</filename>
            <type>text/plain</type>
            <size>11</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">L1wpWztcc10rLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17500</attachid>
            <date>2007-11-24 22:25:23 -0800</date>
            <delta_ts>2007-11-24 22:25:23 -0800</delta_ts>
            <desc>Crash log</desc>
            <filename>crash-log.txt</filename>
            <type>text/plain</type>
            <size>7771</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICB0ZXN0a2pzIFs0NTc2XQpQYXRoOiAgICAgICAgICAgIC4vV2ViS2l0
QnVpbGQvRGVidWcvdGVzdGtqcwpJZGVudGlmaWVyOiAgICAgIHRlc3RranMKVmVyc2lvbjogICAg
ICAgICA/Pz8gKD8/PykKQ29kZSBUeXBlOiAgICAgICBYODYgKE5hdGl2ZSkKUGFyZW50IFByb2Nl
c3M6ICBiYXNoIFsyMTM2XQoKRGF0ZS9UaW1lOiAgICAgICAyMDA3LTExLTI1IDE3OjIzOjQzLjIx
NCArMTEwMApPUyBWZXJzaW9uOiAgICAgIE1hYyBPUyBYIDEwLjUgKDlBNTgxKQpSZXBvcnQgVmVy
c2lvbjogIDYKCkV4Y2VwdGlvbiBUeXBlOiAgRVhDX0JBRF9BQ0NFU1MgKFNJR0JVUykKRXhjZXB0
aW9uIENvZGVzOiBLRVJOX1BST1RFQ1RJT05fRkFJTFVSRSBhdCAweDAwMDAwMDAwYjBhMDgwMDAK
Q3Jhc2hlZCBUaHJlYWQ6ICAwCgpUaHJlYWQgMCBDcmFzaGVkOgowICAgY29tLmFwcGxlLkphdmFT
Y3JpcHRDb3JlICAgICAgCTB4MDAzMWEwZjIgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3Ro
QW5kRmxhZ3ModW5zaWduZWQgc2hvcnQgY29uc3QqLCBpbnQsIEpTUmVnRXhwSWdub3JlQ2FzZU9w
dGlvbiwgY29tcGlsZV9kYXRhJiwgRXJyb3JDb2RlKSArIDEyNjggKHBjcmVfY29tcGlsZS5jcHA6
MjU1MCkKMSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMzFhYjU2IGpzUmVn
RXhwQ29tcGlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCosIGludCwgSlNSZWdFeHBJZ25vcmVDYXNl
T3B0aW9uLCBKU1JlZ0V4cE11bHRpbGluZU9wdGlvbiwgdW5zaWduZWQgaW50KiwgY2hhciBjb25z
dCoqKSArIDgyIChwY3JlX2NvbXBpbGUuY3BwOjMwMTMpCjIgICBjb20uYXBwbGUuSmF2YVNjcmlw
dENvcmUgICAgICAJMHgwMDI4ODNkZiBLSlM6OlJlZ0V4cDo6UmVnRXhwKEtKUzo6VVN0cmluZyBj
b25zdCYsIEtKUzo6VVN0cmluZyBjb25zdCYpICsgNDE3IChyZWdleHAuY3BwOjcwKQozICAgY29t
LmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAyODg0MGQgS0pTOjpSZWdFeHA6OlJlZ0V4
cChLSlM6OlVTdHJpbmcgY29uc3QmLCBLSlM6OlVTdHJpbmcgY29uc3QmKSArIDMxIChyZWdleHAu
Y3BwOjcxKQo0ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAyZTk5MDUgS0pT
OjpSZWdFeHBOb2RlOjpSZWdFeHBOb2RlKEtKUzo6VVN0cmluZyBjb25zdCYsIEtKUzo6VVN0cmlu
ZyBjb25zdCYpICsgODcgKG5vZGVzLmg6MjgxKQo1ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3Jl
ICAgICAgCTB4MDAyZTk5M2IgS0pTOjpSZWdFeHBOb2RlOjpSZWdFeHBOb2RlKEtKUzo6VVN0cmlu
ZyBjb25zdCYsIEtKUzo6VVN0cmluZyBjb25zdCYpICsgMjkgKG5vZGVzLmg6MjgzKQo2ICAgY29t
LmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAyYjg2NTMga2pzeXlwYXJzZSgpICsgMzEx
NyAoZ3JhbW1hci55OjIyNykKNyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAw
MmJjNWQ2IEtKUzo6UGFyc2VyOjpwYXJzZShLSlM6OlVTdHJpbmcgY29uc3QmLCBpbnQsIEtKUzo6
VUNoYXIgY29uc3QqLCB1bnNpZ25lZCBpbnQsIGludCosIGludCosIEtKUzo6VVN0cmluZyopICsg
MjA4IChQYXJzZXIuY3BwOjc2KQo4ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4
MDAyYmM3MWUgS0pTOjpQYXJzZXI6OnBhcnNlUHJvZ3JhbShLSlM6OlVTdHJpbmcgY29uc3QmLCBp
bnQsIEtKUzo6VUNoYXIgY29uc3QqLCB1bnNpZ25lZCBpbnQsIGludCosIGludCosIEtKUzo6VVN0
cmluZyopICsgNzAgKFBhcnNlci5jcHA6NDcpCjkgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUg
ICAgICAJMHgwMDJiYzdmNCBLSlM6OkludGVycHJldGVyOjpldmFsdWF0ZShLSlM6OlVTdHJpbmcg
Y29uc3QmLCBpbnQsIEtKUzo6VUNoYXIgY29uc3QqLCBpbnQsIEtKUzo6SlNWYWx1ZSopICsgMTgy
IChpbnRlcnByZXRlci5jcHA6MzUwKQoxMCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAg
CTB4MDAyYmNjZmEgS0pTOjpJbnRlcnByZXRlcjo6ZXZhbHVhdGUoS0pTOjpVU3RyaW5nIGNvbnN0
JiwgaW50LCBLSlM6OlVTdHJpbmcgY29uc3QmLCBLSlM6OkpTVmFsdWUqKSArIDg0IChpbnRlcnBy
ZXRlci5jcHA6MzM1KQoxMSAgdGVzdGtqcyAgICAgICAgICAgICAgICAgICAgICAgCTB4MDAwMDI5
YTMgcnVuV2l0aFNjcmlwdHMoV1RGOjpWZWN0b3I8S0pTOjpVU3RyaW5nLCAwdWw+IGNvbnN0Jiwg
Ym9vbCkgKyAyNTUgKHRlc3RranMuY3BwOjI3NykKMTIgIHRlc3RranMgICAgICAgICAgICAgICAg
ICAgICAgIAkweDAwMDAyYTkzIGtqc21haW4oaW50LCBjaGFyKiopICsgNzMgKHRlc3RranMuY3Bw
OjMxMykKMTMgIHRlc3RranMgICAgICAgICAgICAgICAgICAgICAgIAkweDAwMDAyYWYxIG1haW4g
KyAzMSAodGVzdGtqcy5jcHA6MjE5KQoxNCAgdGVzdGtqcyAgICAgICAgICAgICAgICAgICAgICAg
CTB4MDAwMDE5YzIgc3RhcnQgKyA1NAoKVGhyZWFkIDAgY3Jhc2hlZCB3aXRoIFg4NiBUaHJlYWQg
U3RhdGUgKDMyLWJpdCk6CiAgZWF4OiAweGIwYTA4MDAwICBlYng6IDB4MDAzMTljMGUgIGVjeDog
MHhiZmZmZGFmNCAgZWR4OiAweDAwMDAwMDFjCiAgZWRpOiAweGIwYTExZmZjICBlc2k6IDB4YmZm
ZmRhODQgIGVicDogMHhiZmZmZGFlOCAgZXNwOiAweGJmZmZkNjAwCiAgIHNzOiAweDAwMDAwMDFm
ICBlZmw6IDB4MDAwMTAyOTYgIGVpcDogMHgwMDMxYTBmMiAgIGNzOiAweDAwMDAwMDE3CiAgIGRz
OiAweDAwMDAwMDFmICAgZXM6IDB4MDAwMDAwMWYgICBmczogMHgwMDAwMDAwMCAgIGdzOiAweDAw
MDAwMDM3CiAgY3IyOiAweGIwYTA4MDAwCgpCaW5hcnkgSW1hZ2VzOgogICAgMHgxMDAwIC0gICAg
IDB4NGZmZiArdGVzdGtqcyA/Pz8gKD8/PykgPDBjNzk0YmIxNzQ3YzhlNTZhMTc0ZTcyNGU3NjU1
OTA4PiAvVm9sdW1lcy9EYXRhL0hvbWUvRG9jdW1lbnRzL1dvcmsvV2ViS2l0LWdpdC9PcGVuU291
cmNlL1dlYktpdEJ1aWxkL0RlYnVnL3Rlc3RranMKICAgMHgxMTAwMCAtICAgIDB4MTRmZmYgIGxp
YmdtYWxsb2MuZHlsaWIgPz8/ICg/Pz8pIDw1NDlkNjNlNGQ4MGZkMDQwZWE4YzRmOGQwMjliYjA1
MD4gL3Vzci9saWIvbGliZ21hbGxvYy5keWxpYgogIDB4MjcyMDAwIC0gICAweDM0NWZmYiAgY29t
LmFwcGxlLkphdmFTY3JpcHRDb3JlIDUyNS4xKyAoNTI1LjErKSA8ZjZlYWM3ZmQ5OGM5NDFjYWMz
MTk1YjMzYTYwMDUyMTI+IC9Wb2x1bWVzL0RhdGEvSG9tZS9Eb2N1bWVudHMvV29yay9XZWJLaXQt
Z2l0L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvSmF2YVNjcmlwdENvcmUKMHg4ZmUwMDAwMCAtIDB4OGZlMmQ4ODMgIGR5bGQg
OTUuMyAoPz8/KSA8ODE1OTJlNzk4NzgwNTY0YjVkNDZiOTg4ZjdlZTFhNmE+IC91c3IvbGliL2R5
bGQKMHg5MDBjMjAwMCAtIDB4OTAzM2JmZTcgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uIDYuNSAoNjc3
KSA8ZDE4MmIyY2MyMTgxN2Y3ZTViNmM3YTFiM2Y0MjFhOTg+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0MvRm91bmRhdGlvbgoweDkwNDg5
MDAwIC0gMHg5MDRiM2ZlZiAgbGliYXV0by5keWxpYiA/Pz8gKD8/PykgPGQ0NjhiYzRhOGE2OTM0
M2YxNzQ4YzI5M2RiMWI1N2ZiPiAvdXNyL2xpYi9saWJhdXRvLmR5bGliCjB4OTA0YjQwMDAgLSAw
eDkwNTNkZmZmICBjb20uYXBwbGUuZnJhbWV3b3JrLklPS2l0IDEuNS4wICg/Pz8pIDw1ZDliODVj
NTUxODNmOTczMmViOWVmYzM4ZDE4YmE1Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9L
aXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQKMHg5MGIxOTAwMCAtIDB4OTBiZjhmZmYgIGxp
Ym9iamMuQS5keWxpYiA/Pz8gKD8/PykgPDVlZGE0N2ZlYzJkMGU3ODUzYjM1MDZhYTFmZDJkYWZh
PiAvdXNyL2xpYi9saWJvYmpjLkEuZHlsaWIKMHg5MGM4NTAwMCAtIDB4OTBkMTFmZjcgIGNvbS5h
cHBsZS5MYXVuY2hTZXJ2aWNlcyAyODMgKDI4MykgPDMwMTY4MDUxNzc5ODE3OTE2ZTA0ZWI4ZTg1
ZmNjMTdmPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9MYXVuY2hTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9MYXVuY2hTZXJ2aWNlcwoweDkwZDE0MDAwIC0gMHg5MGU0Y2ZmNyAgbGliaWN1Y29yZS5BLmR5
bGliID8/PyAoPz8/KSA8YWZjZWE2NTJmZjJlYzM2ODg1YjJjODFjNTdkMDZkNGM+IC91c3IvbGli
L2xpYmljdWNvcmUuQS5keWxpYgoweDkxMjI2MDAwIC0gMHg5MTM1OGZlNyAgY29tLmFwcGxlLkNv
cmVGb3VuZGF0aW9uIDYuNSAoNDc2KSA8OGJmZWJjMGRiYWQ2ZmMzM2JlYTBmYTAwYTFiOWVjMzc+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0NvcmVGb3VuZGF0aW9uCjB4OTE0ZmMwMDAgLSAweDkxN2Q1ZmU3ICBjb20uYXBwbGUu
Q29yZVNlcnZpY2VzLkNhcmJvbkNvcmUgNzgzICg3ODMpIDw4MzcwZTY2NGVlYjI1ZWRjOThkNWMx
ZjU0MDViMDZhZT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9DYXJib25Db3JlCjB4OTE3ZWUwMDAgLSAweDkxOTQ4ZmUzICBsaWJTeXN0ZW0uQi5keWxpYiA/
Pz8gKD8/PykgPDhlY2M4M2RjMDM5OWJlMzk0NmY3YTQ2ZTg4Y2Y0YmJiPiAvdXNyL2xpYi9saWJT
eXN0ZW0uQi5keWxpYgoweDkxOTQ5MDAwIC0gMHg5MTk0YWZlZiAgbGlibWF0aENvbW1vbi5BLmR5
bGliID8/PyAoPz8/KSAvdXNyL2xpYi9zeXN0ZW0vbGlibWF0aENvbW1vbi5BLmR5bGliCjB4OTE5
NzMwMDAgLSAweDkxOWE5ZmZmICBjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbiAxLjkuMCAo
MS45LjApIDw3OTE5ZDk1ODhjM2IwZDU1NjY0NmU1NTViNzE5M2YxZj4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU3lzdGVtQ29uZmlndXJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TeXN0
ZW1Db25maWd1cmF0aW9uCjB4OTE5Y2EwMDAgLSAweDkxOWNhZmZhICBjb20uYXBwbGUuQ29yZVNl
cnZpY2VzIDMyICgzMikgPDJmY2M4ZjNiZDViYmZjMDAwYjQ3NmNhZDhlNmEzZGQyPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29y
ZVNlcnZpY2VzCjB4OTIzMjAwMDAgLSAweDkyM2Q2ZmUzICBjb20uYXBwbGUuQ29yZVNlcnZpY2Vz
Lk9TU2VydmljZXMgMjA5ICgyMDkpIDw4OTI5NmIyMGQyZGI2YzE4MGVlZTA3M2I2OTllMzQ4ND4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ZyYW1ld29ya3MvT1NTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9PU1NlcnZpY2Vz
CjB4OTJiMDgwMDAgLSAweDkyYjJjZmZmICBsaWJ4c2x0LjEuZHlsaWIgPz8/ICg/Pz8pIDw0OTMz
ZGRjN2Y2NjE4NzQzMTk3YWFkYzg1YjMzYjVhYj4gL3Vzci9saWIvbGlieHNsdC4xLmR5bGliCjB4
OTQ1ODIwMDAgLSAweDk0NThhZmZmICBjb20uYXBwbGUuRGlza0FyYml0cmF0aW9uIDIuMiAoMi4y
KSA8MTU1MWIyYWY1NTdmZGY2ZjM2OGY5M2UwOTM5MzM4NTI+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0Rpc2tBcmJpdHJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EaXNrQXJiaXRyYXRp
b24KMHg5NGMxZDAwMCAtIDB4OTRjMjRmZmUgIGxpYmJzbS5keWxpYiA/Pz8gKD8/PykgPGQyNWM2
MzM3OGE1MDI5NjQ4ZmZkNGI0NjY5YmUzMWJmPiAvdXNyL2xpYi9saWJic20uZHlsaWIKMHg5NGNm
NDAwMCAtIDB4OTRkNzNmZjUgIGNvbS5hcHBsZS5TZWFyY2hLaXQgMS4yLjAgKDEuMi4wKSA8Mjc3
YjQ2MGRhODZiYzIyMjc4NTE1OWZlNzdlMmUyZWQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NlYXJjaEtpdC5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9TZWFyY2hLaXQKMHg5NGQ3NDAwMCAtIDB4OTRkYTNmZTMgIGNv
bS5hcHBsZS5BRSA0MDIgKDQwMikgPDk5NGJhOGU4ODRhZWZlN2JmMWZjNTk4N2RmMDk5ZTdiPiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9BRS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BRQoweDk1NzU3MDAwIC0gMHg5
NTc1ZWZlOSAgbGliZ2NjX3MuMS5keWxpYiA/Pz8gKD8/PykgPGY1M2M4MDhlODdkMTE4NGMwZjlk
ZjYzYWVmNTNjZTBiPiAvdXNyL2xpYi9saWJnY2Nfcy4xLmR5bGliCjB4OTU5YzgwMDAgLSAweDk1
OWQ2ZmZkICBsaWJ6LjEuZHlsaWIgPz8/ICg/Pz8pIDw1ZGRkODUzOWFlMmViZmQ4ZTdjYzFjNTc1
MjUzODVjNz4gL3Vzci9saWIvbGliei4xLmR5bGliCjB4OTVmZmUwMDAgLSAweDk2MDQzZmVmICBj
b20uYXBwbGUuTWV0YWRhdGEgMTAuNS4wICgzOTgpIDw0ZmQ3NGZiYTAwNjJjMmUwOGVjNGIxYzEw
YjQwZmY2Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTWV0YWRhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0
YWRhdGEKMHg5NjEzNzAwMCAtIDB4OTYzMDBmZWYgIGNvbS5hcHBsZS5zZWN1cml0eSA1LjAuMSAo
MzI3MzYpIDxhNGYxMjI4MTI5N2Y4OWNiNmJmZWZkOTIzMzBhYjhlMD4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHkKMHg5NjM4
ZTAwMCAtIDB4OTY0MTVmZjcgIGxpYnNxbGl0ZTMuMC5keWxpYiA/Pz8gKD8/PykgPDI3M2VmY2I3
MTdlODljMjEyMDdjODUxZDdkMzNmZGE0PiAvdXNyL2xpYi9saWJzcWxpdGUzLjAuZHlsaWIKMHg5
NjRjNTAwMCAtIDB4OTY1M2NmZTMgIGNvbS5hcHBsZS5DRk5ldHdvcmsgMjE3ICgyMTkpIDxmM2Mx
NmFlNGIyZmFlYjEzNDk1N2VlOTZkOTBkYzVjYT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZy
YW1ld29yay9WZXJzaW9ucy9BL0NGTmV0d29yawoweDk2NTQzMDAwIC0gMHg5NjU1OWZmZiAgY29t
LmFwcGxlLkRpY3Rpb25hcnlTZXJ2aWNlcyAxLjAuMCAoMS4wLjApIDxhZDBhYTAyNTJlMzMyM2Qx
ODJlMTdmNTBkZWZlNTZmYz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2Vz
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvRGljdGlvbmFyeVNlcnZpY2VzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0RpY3Rpb25hcnlTZXJ2aWNlcwoweDk2YmQxMDAwIC0gMHg5NmMyZWZm
YiAgbGlic3RkYysrLjYuZHlsaWIgPz8/ICg/Pz8pIDwwNGI4MTJkY2VjNjcwZGFhOGI3ZDI4NTJh
YjE0YmU2MD4gL3Vzci9saWIvbGlic3RkYysrLjYuZHlsaWIKMHg5NmM4ODAwMCAtIDB4OTZkNjlm
ZjcgIGxpYnhtbDIuMi5keWxpYiA/Pz8gKD8/PykgPDQ1MGVjMzhiNTdmYjQ2MDEzODQ3Y2NlODUx
MDAxYTJmPiAvdXNyL2xpYi9saWJ4bWwyLjIuZHlsaWIKMHhmZmZlODAwMCAtIDB4ZmZmZWJmZmYg
IGxpYm9iamMuQS5keWxpYiA/Pz8gKD8/PykgL3Vzci9saWIvbGlib2JqYy5BLmR5bGliCjB4ZmZm
ZjAwMDAgLSAweGZmZmYxNzgwICBsaWJTeXN0ZW0uQi5keWxpYiA/Pz8gKD8/PykgL3Vzci9saWIv
bGliU3lzdGVtLkIuZHlsaWIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17603</attachid>
            <date>2007-11-30 05:39:01 -0800</date>
            <delta_ts>2007-11-30 05:56:25 -0800</delta_ts>
            <desc>Check against patternEnd to make sure we don&apos;t walk of the end of the string</desc>
            <filename>Check-against-patternEnd-to-make-sure-we-don-t-walk-of-the-end-of-the-string.patch</filename>
            <type>text/plain</type>
            <size>8835</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZDNlM2I0ZTBjN2U5MmEwNDczODBhZGZhYjJlYmE5YzJmY2U2MmMwYgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk3
ZTVkNzEuLjdjODcxNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAwNy0xMS0zMCAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQQ1JFIGNyYXNoZXMgdW5kZXIgR3VhcmRN
YWxsb2MKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYx
MjcKKyAgICAgICAgY2hlY2sgYWdhaW5zdCBwYXR0ZXJuRW5kIHRvIG1ha2Ugc3VyZSB3ZSBkb24n
dCB3YWxrIG9mZiB0aGUgZW5kIG9mIHRoZSBzdHJpbmcKKworICAgICAgICAqIHBjcmUvcGNyZV9j
b21waWxlLmNwcDoKKyAgICAgICAgKGNvbXBpbGVfYnJhbmNoKToKKyAgICAgICAgKGNhbGN1bGF0
ZUNvbXBpbGVkUGF0dGVybkxlbmd0aEFuZEZsYWdzKToKKworMjAwNy0xMS0zMCAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgogICAg
ICAgICAKICAgICAgICAgRml4IGxheW91dCB0ZXN0IHJlZ3Jlc3Npb25zIGNhdXNlZCBieSByMjgx
ODYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcAppbmRleCBiZThmZDIxLi4xZDc4NThm
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwCkBAIC03NzQsOCArNzc0LDcgQEAg
Y29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hhcioqIGNvZGVw
dHIsCiAgICAgCiAgICAgLyogU3dpdGNoIG9uIG5leHQgY2hhcmFjdGVyIHVudGlsIHRoZSBlbmQg
b2YgdGhlIGJyYW5jaCAqLwogICAgIAotICAgIGZvciAoOzsgcHRyKyspCi0gICAgeworICAgIGZv
ciAoOzsgcHRyKyspIHsKICAgICAgICAgYm9vbCBuZWdhdGVfY2xhc3M7CiAgICAgICAgIGJvb2wg
c2hvdWxkX2ZsaXBfbmVnYXRpb247IC8qIElmIGEgbmVnYXRpdmUgc3BlY2lhbCBzdWNoIGFzIFxT
IGlzIHVzZWQsIHdlIHNob3VsZCBuZWdhdGUgdGhlIHdob2xlIGNsYXNzIHRvIHByb3Blcmx5IHN1
cHBvcnQgVW5pY29kZS4gKi8KICAgICAgICAgaW50IGNsYXNzX2NoYXJjb3VudDsKQEAgLTg2NSw3
ICs4NjQsMTAgQEAgY29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVz
Y2hhcioqIGNvZGVwdHIsCiAgICAgICAgICAgICAgICAgIHRoZXkgYXJlIGVuY291bnRlcmVkIGF0
IHRoZSB0b3AgbGV2ZWwsIHNvIHdlJ2xsIGRvIHRoYXQgdG9vLiAqLwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIC8qIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgJ14nLCBzZXQg
dGhlIG5lZ2F0aW9uIGZsYWcgYW5kIHNraXAgaXQuICovCi0gICAgICAgICAgICAgICAgCisKKyAg
ICAgICAgICAgICAgICBpZiAocHRyICsgMSA+PSBwYXR0ZXJuRW5kKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gLTE7CisKICAgICAgICAgICAgICAgICBpZiAocHRyWzFdID09ICdeJykgewog
ICAgICAgICAgICAgICAgICAgICBuZWdhdGVfY2xhc3MgPSB0cnVlOwogICAgICAgICAgICAgICAg
ICAgICArK3B0cjsKQEAgLTg5Myw3ICs4OTUsNyBAQCBjb21waWxlX2JyYW5jaChpbnQgb3B0aW9u
cywgaW50KiBicmFja2V0cywgdXNjaGFyKiogY29kZXB0ciwKICAgICAgICAgICAgICAgICAgdGhy
b3VnaCB0aGUgcmVnZXggY2hlY2tlZCB0aGUgb3ZlcmFsbCBzeW50YXgsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gYmUgdmVyeQogICAgICAgICAgICAgICAgICBzdHJpY3QgaGVyZS4gQXQgdGhlIHN0YXJ0
IG9mIHRoZSBsb29wLCBjIGNvbnRhaW5zIHRoZSBmaXJzdCBieXRlIG9mIHRoZQogICAgICAgICAg
ICAgICAgICBjaGFyYWN0ZXIuICovCi0gICAgICAgICAgICAgICAgd2hpbGUgKChjID0gKigrK3B0
cikpICE9ICddJykgeworICAgICAgICAgICAgICAgIHdoaWxlICgoKytwdHIgPCBwYXR0ZXJuRW5k
KSAmJiAoKGMgPSAqcHRyKSAhPSAnXScpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjID4g
MTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGdldENoYXJBbmRBZHZhbmNlSWZTdXJy
b2dhdGUocHRyKTsKICAgICAgICAgICAgICAgICAgICAgCkBAIC05NjYsNyArOTY4LDcgQEAgY29t
cGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hhcioqIGNvZGVwdHIs
CiAgICAgICAgICAgICAgICAgICAgICBQZXJsIGRvZXMgbm90IHBlcm1pdCAnXScgdG8gYmUgdGhl
IGVuZCBvZiB0aGUgcmFuZ2UuIEEgJy0nIGNoYXJhY3RlcgogICAgICAgICAgICAgICAgICAgICAg
aGVyZSBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbC4gKi8KICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIGlmIChwdHJbMV0gPT0gJy0nICYmIHB0clsyXSAhPSAnXScpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAyIDwgcGF0dGVybkVuZCkgJiYgcHRyWzFd
ID09ICctJyAmJiBwdHJbMl0gIT0gJ10nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdHIg
Kz0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
aW50IGQgPSBnZXRDaGFyQW5kQWR2YW5jZUlmU3Vycm9nYXRlKHB0cik7CkBAIC0xMDkwLDExICsx
MDkyLDggQEAgY29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hh
cioqIGNvZGVwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0Zjhk
YXRhICs9IF9wY3JlX29yZDJ1dGY4KG90aGVyY2FzZSwgY2xhc3NfdXRmOGRhdGEpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSGFuZGxlIGEgc2luZ2xlLWJ5dGUg
Y2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBhIHNpbmdsZS1ieXRl
IGNoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2MvOF0gfD0g
KDEgPDwgKGMmNykpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBJZ25v
cmVDYXNlT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGZsaXBDYXNl
KGMpOwpAQCAtMjIzOCw5ICsyMjM3LDkgQEAgc3RhdGljIGludCBjYWxjdWxhdGVDb21waWxlZFBh
dHRlcm5MZW5ndGhBbmRGbGFncyhjb25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHQKICAgICB3
aGlsZSAoKytwdHIgPCBwYXR0ZXJuRW5kKSB7CiAgICAgICAgIGludCBtaW5SZXBlYXRzID0gMCwg
bWF4UmVwZWF0cyA9IDA7CiAgICAgICAgIGludCBjID0gKnB0cjsKLSAgICAgICAgCisKICAgICAg
ICAgaXRlbV9jb3VudCsrOyAgICAvKiBJcyB6ZXJvIGZvciB0aGUgZmlyc3Qgbm9uLWNvbW1lbnQg
aXRlbSAqLwotICAgICAgICAKKwogICAgICAgICBzd2l0Y2goYykgewogICAgICAgICAgICAgICAg
IC8qIEEgYmFja3NsYXNoZWQgaXRlbSBtYXkgYmUgYW4gZXNjYXBlZCBkYXRhIGNoYXJhY3RlciBv
ciBpdCBtYXkgYmUgYQogICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgdHlwZS4gKi8KQEAgLTIy
ODAsOCArMjI3OSw4IEBAIHN0YXRpYyBpbnQgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3Ro
QW5kRmxhZ3MoY29uc3QgVUNoYXIqIHBhdHRlcm4sIGludCBwYXR0CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZWZudW0gPiBjb21waWxlX2Jsb2NrLnRvcF9iYWNrcmVmKQogICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcGlsZV9ibG9jay50b3BfYmFja3JlZiA9IHJlZm51bTsKICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoICs9IDI7ICAgLyogRm9yIHNpbmdsZSBiYWNrIHJlZmVyZW5jZSAq
LwotICAgICAgICAgICAgICAgICAgICBpZiAocHRyWzFdID09ICd7JyAmJiBpc19jb3VudGVkX3Jl
cGVhdChwdHIrMiwgcGF0dGVybkVuZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9
IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMiwgJm1pblJlcGVhdHMsICZtYXhSZXBlYXRzLCAmZXJy
b3Jjb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkg
JiYgcHRyWzFdID09ICd7JyAmJiBpc19jb3VudGVkX3JlcGVhdChwdHIgKyAyLCBwYXR0ZXJuRW5k
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcmVhZF9yZXBlYXRfY291bnRzKHB0
ciArIDIsICZtaW5SZXBlYXRzLCAmbWF4UmVwZWF0cywgJmVycm9yY29kZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZXJyb3Jjb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWluUmVwZWF0cyA9PSAw
ICYmIChtYXhSZXBlYXRzID09IDEgfHwgbWF4UmVwZWF0cyA9PSAtMSkpIHx8CkBAIC0yMjg5LDI5
ICsyMjg4LDI5IEBAIHN0YXRpYyBpbnQgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3RoQW5k
RmxhZ3MoY29uc3QgVUNoYXIqIHBhdHRlcm4sIGludCBwYXR0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoKys7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocHRyWzFdID09ICc/JykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocHRyICsg
MSA8IHBhdHRlcm5FbmQpICYmIHB0clsxXSA9PSAnPycpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHRyKys7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgY2FzZSAnXic6ICAgICAvKiBTaW5nbGUtYnl0ZSBtZXRhY2hhcmFjdGVycyAqLwotICAgICAg
ICAgICAgICAgIGNhc2UgJy4nOgotICAgICAgICAgICAgICAgIGNhc2UgJyQnOgorICAgICAgICAg
ICAgY2FzZSAnXic6ICAgICAvKiBTaW5nbGUtYnl0ZSBtZXRhY2hhcmFjdGVycyAqLworICAgICAg
ICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICBjYXNlICckJzoKICAgICAgICAgICAgICAgICBs
ZW5ndGgrKzsKICAgICAgICAgICAgICAgICBsYXN0aXRlbWxlbmd0aCA9IDE7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY2FzZSAn
Kic6ICAgICAgICAgICAgLyogVGhlc2UgcmVwZWF0cyB3b24ndCBiZSBhZnRlciBicmFja2V0czsg
Ki8KLSAgICAgICAgICAgICAgICBjYXNlICcrJzogICAgICAgICAgICAvKiB0aG9zZSBhcmUgaGFu
ZGxlZCBzZXBhcmF0ZWx5ICovCi0gICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAg
ICBjYXNlICcqJzogICAgICAgICAgICAvKiBUaGVzZSByZXBlYXRzIHdvbid0IGJlIGFmdGVyIGJy
YWNrZXRzOyAqLworICAgICAgICAgICAgY2FzZSAnKyc6ICAgICAgICAgICAgLyogdGhvc2UgYXJl
IGhhbmRsZWQgc2VwYXJhdGVseSAqLworICAgICAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAg
ICAgICAgbGVuZ3RoKys7CiAgICAgICAgICAgICAgICAgZ290byBQT1NFU1NJVkU7ICAgICAgLyog
QSBmZXcgbGluZXMgYmVsb3cgKi8KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAv
KiBUaGlzIGNvdmVycyB0aGUgY2FzZXMgb2YgYnJhY2VkIHJlcGVhdHMgYWZ0ZXIgYSBzaW5nbGUg
Y2hhciwgbWV0YWNoYXIsCiAgICAgICAgICAgICAgICAgIGNsYXNzLCBvciBiYWNrIHJlZmVyZW5j
ZS4gKi8KICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAg
ICAgICAgIGNhc2UgJ3snOgogICAgICAgICAgICAgICAgIGlmICghaXNfY291bnRlZF9yZXBlYXQo
cHRyKzEsIHBhdHRlcm5FbmQpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIE5PUk1BTF9DSEFS
OwogICAgICAgICAgICAgICAgIHB0ciA9IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMSwgJm1pblJl
cGVhdHMsICZtYXhSZXBlYXRzLCAmZXJyb3Jjb2RlKTsKQEAgLTIzMzUsMTEgKzIzMzQsMTEgQEAg
c3RhdGljIGludCBjYWxjdWxhdGVDb21waWxlZFBhdHRlcm5MZW5ndGhBbmRGbGFncyhjb25zdCBV
Q2hhciogcGF0dGVybiwgaW50IHBhdHQKICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IGxh
c3RpdGVtbGVuZ3RoICsgKChtYXhSZXBlYXRzID4gMCk/IDMgOiAxKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHB0clsxXSA9PSAnPycp
CisgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkgJiYgcHRyWzFdID09
ICc/JykKICAgICAgICAgICAgICAgICAgICAgcHRyKys7ICAgICAgLyogTmVlZHMgbm8gZXh0cmEg
bGVuZ3RoICovCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBQT1NFU1NJVkU6ICAgICAg
ICAgICAgICAgICAgICAgLyogVGVzdCBmb3IgcG9zc2Vzc2l2ZSBxdWFudGlmaWVyICovCi0gICAg
ICAgICAgICAgICAgaWYgKHB0clsxXSA9PSAnKycpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHB0
ciArIDEgPCBwYXR0ZXJuRW5kKSAmJiBwdHJbMV0gPT0gJysnKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHB0cisrOwogICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gMiArIDIgKiBMSU5LX1NJ
WkU7ICAgLyogQWxsb3cgZm9yIGF0b21pYyBicmFja2V0cyAqLwogICAgICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NjkzMGMyLi4yZjg0Y2Y5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTEt
MzAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGVzdCBjYXNlIGZvcjoKKyAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjcKKworICAgICAg
ICAqIGZhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2pzL3JlZ2V4cC1jb21waWxlLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDA3
LTExLTI5ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPGhvbGdlci5mcmV5dGhlckB0cm9s
bHRlY2guY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZWdleHAtY29tcGlsZS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5ZmZiNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBTeW50YXhFcnJvcjogUGFy
c2UgZXJyb3IKK0ZBSUwgc3VjY2Vzc2Z1bGx5UGFyc2VkIHNob3VsZCBiZSB0cnVlLiBUaHJldyBl
eGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHN1Y2Nlc3NmdWxs
eVBhcnNlZAorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
anMvcmVnZXhwLWNvbXBpbGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhw
LWNvbXBpbGUtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
OGFlZWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdleHAtY29t
cGlsZS1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CisgIC9cKVs7XHNdKy87CisgIC9bLzsKKyAgL1thLzsKKyAgL1stLzsKKyAgLyhh
KVwxLzsKKyAgLyhhKVwxezEsM30vOworICAKKyAgdGVzdFBhc3NlZCgiTm8gY3Jhc2hlcywgeWF5
ISIpCisgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17604</attachid>
            <date>2007-11-30 05:55:42 -0800</date>
            <delta_ts>2007-11-30 09:30:02 -0800</delta_ts>
            <desc>Check against patternEnd to make sure we don&apos;t walk off the end of the string</desc>
            <filename>Check-against-patternEnd-to-make-sure-we-don-t-walk-of-the-end-of-the-string.patch</filename>
            <type>text/plain</type>
            <size>9062</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NjVmNzFlYWU0NDc2Nzg0YzJiOGZkNTBjZWU5MTA2MDJkNjk1OGYzMQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk3
ZTVkNzEuLjdjODcxNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAwNy0xMS0zMCAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQQ1JFIGNyYXNoZXMgdW5kZXIgR3VhcmRN
YWxsb2MKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYx
MjcKKyAgICAgICAgY2hlY2sgYWdhaW5zdCBwYXR0ZXJuRW5kIHRvIG1ha2Ugc3VyZSB3ZSBkb24n
dCB3YWxrIG9mZiB0aGUgZW5kIG9mIHRoZSBzdHJpbmcKKworICAgICAgICAqIHBjcmUvcGNyZV9j
b21waWxlLmNwcDoKKyAgICAgICAgKGNvbXBpbGVfYnJhbmNoKToKKyAgICAgICAgKGNhbGN1bGF0
ZUNvbXBpbGVkUGF0dGVybkxlbmd0aEFuZEZsYWdzKToKKworMjAwNy0xMS0zMCAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgogICAg
ICAgICAKICAgICAgICAgRml4IGxheW91dCB0ZXN0IHJlZ3Jlc3Npb25zIGNhdXNlZCBieSByMjgx
ODYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcAppbmRleCBiZThmZDIxLi4xZDc4NThm
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwCkBAIC03NzQsOCArNzc0LDcgQEAg
Y29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hhcioqIGNvZGVw
dHIsCiAgICAgCiAgICAgLyogU3dpdGNoIG9uIG5leHQgY2hhcmFjdGVyIHVudGlsIHRoZSBlbmQg
b2YgdGhlIGJyYW5jaCAqLwogICAgIAotICAgIGZvciAoOzsgcHRyKyspCi0gICAgeworICAgIGZv
ciAoOzsgcHRyKyspIHsKICAgICAgICAgYm9vbCBuZWdhdGVfY2xhc3M7CiAgICAgICAgIGJvb2wg
c2hvdWxkX2ZsaXBfbmVnYXRpb247IC8qIElmIGEgbmVnYXRpdmUgc3BlY2lhbCBzdWNoIGFzIFxT
IGlzIHVzZWQsIHdlIHNob3VsZCBuZWdhdGUgdGhlIHdob2xlIGNsYXNzIHRvIHByb3Blcmx5IHN1
cHBvcnQgVW5pY29kZS4gKi8KICAgICAgICAgaW50IGNsYXNzX2NoYXJjb3VudDsKQEAgLTg2NSw3
ICs4NjQsMTAgQEAgY29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVz
Y2hhcioqIGNvZGVwdHIsCiAgICAgICAgICAgICAgICAgIHRoZXkgYXJlIGVuY291bnRlcmVkIGF0
IHRoZSB0b3AgbGV2ZWwsIHNvIHdlJ2xsIGRvIHRoYXQgdG9vLiAqLwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIC8qIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgJ14nLCBzZXQg
dGhlIG5lZ2F0aW9uIGZsYWcgYW5kIHNraXAgaXQuICovCi0gICAgICAgICAgICAgICAgCisKKyAg
ICAgICAgICAgICAgICBpZiAocHRyICsgMSA+PSBwYXR0ZXJuRW5kKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gLTE7CisKICAgICAgICAgICAgICAgICBpZiAocHRyWzFdID09ICdeJykgewog
ICAgICAgICAgICAgICAgICAgICBuZWdhdGVfY2xhc3MgPSB0cnVlOwogICAgICAgICAgICAgICAg
ICAgICArK3B0cjsKQEAgLTg5Myw3ICs4OTUsNyBAQCBjb21waWxlX2JyYW5jaChpbnQgb3B0aW9u
cywgaW50KiBicmFja2V0cywgdXNjaGFyKiogY29kZXB0ciwKICAgICAgICAgICAgICAgICAgdGhy
b3VnaCB0aGUgcmVnZXggY2hlY2tlZCB0aGUgb3ZlcmFsbCBzeW50YXgsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gYmUgdmVyeQogICAgICAgICAgICAgICAgICBzdHJpY3QgaGVyZS4gQXQgdGhlIHN0YXJ0
IG9mIHRoZSBsb29wLCBjIGNvbnRhaW5zIHRoZSBmaXJzdCBieXRlIG9mIHRoZQogICAgICAgICAg
ICAgICAgICBjaGFyYWN0ZXIuICovCi0gICAgICAgICAgICAgICAgd2hpbGUgKChjID0gKigrK3B0
cikpICE9ICddJykgeworICAgICAgICAgICAgICAgIHdoaWxlICgoKytwdHIgPCBwYXR0ZXJuRW5k
KSAmJiAoKGMgPSAqcHRyKSAhPSAnXScpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjID4g
MTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGdldENoYXJBbmRBZHZhbmNlSWZTdXJy
b2dhdGUocHRyKTsKICAgICAgICAgICAgICAgICAgICAgCkBAIC05NjYsNyArOTY4LDcgQEAgY29t
cGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hhcioqIGNvZGVwdHIs
CiAgICAgICAgICAgICAgICAgICAgICBQZXJsIGRvZXMgbm90IHBlcm1pdCAnXScgdG8gYmUgdGhl
IGVuZCBvZiB0aGUgcmFuZ2UuIEEgJy0nIGNoYXJhY3RlcgogICAgICAgICAgICAgICAgICAgICAg
aGVyZSBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbC4gKi8KICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIGlmIChwdHJbMV0gPT0gJy0nICYmIHB0clsyXSAhPSAnXScpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAyIDwgcGF0dGVybkVuZCkgJiYgcHRyWzFd
ID09ICctJyAmJiBwdHJbMl0gIT0gJ10nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdHIg
Kz0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
aW50IGQgPSBnZXRDaGFyQW5kQWR2YW5jZUlmU3Vycm9nYXRlKHB0cik7CkBAIC0xMDkwLDExICsx
MDkyLDggQEAgY29tcGlsZV9icmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVzY2hh
cioqIGNvZGVwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0Zjhk
YXRhICs9IF9wY3JlX29yZDJ1dGY4KG90aGVyY2FzZSwgY2xhc3NfdXRmOGRhdGEpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSGFuZGxlIGEgc2luZ2xlLWJ5dGUg
Y2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBhIHNpbmdsZS1ieXRl
IGNoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2MvOF0gfD0g
KDEgPDwgKGMmNykpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBJZ25v
cmVDYXNlT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGZsaXBDYXNl
KGMpOwpAQCAtMjIzOCw5ICsyMjM3LDkgQEAgc3RhdGljIGludCBjYWxjdWxhdGVDb21waWxlZFBh
dHRlcm5MZW5ndGhBbmRGbGFncyhjb25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHQKICAgICB3
aGlsZSAoKytwdHIgPCBwYXR0ZXJuRW5kKSB7CiAgICAgICAgIGludCBtaW5SZXBlYXRzID0gMCwg
bWF4UmVwZWF0cyA9IDA7CiAgICAgICAgIGludCBjID0gKnB0cjsKLSAgICAgICAgCisKICAgICAg
ICAgaXRlbV9jb3VudCsrOyAgICAvKiBJcyB6ZXJvIGZvciB0aGUgZmlyc3Qgbm9uLWNvbW1lbnQg
aXRlbSAqLwotICAgICAgICAKKwogICAgICAgICBzd2l0Y2goYykgewogICAgICAgICAgICAgICAg
IC8qIEEgYmFja3NsYXNoZWQgaXRlbSBtYXkgYmUgYW4gZXNjYXBlZCBkYXRhIGNoYXJhY3RlciBv
ciBpdCBtYXkgYmUgYQogICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgdHlwZS4gKi8KQEAgLTIy
ODAsOCArMjI3OSw4IEBAIHN0YXRpYyBpbnQgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3Ro
QW5kRmxhZ3MoY29uc3QgVUNoYXIqIHBhdHRlcm4sIGludCBwYXR0CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZWZudW0gPiBjb21waWxlX2Jsb2NrLnRvcF9iYWNrcmVmKQogICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcGlsZV9ibG9jay50b3BfYmFja3JlZiA9IHJlZm51bTsKICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoICs9IDI7ICAgLyogRm9yIHNpbmdsZSBiYWNrIHJlZmVyZW5jZSAq
LwotICAgICAgICAgICAgICAgICAgICBpZiAocHRyWzFdID09ICd7JyAmJiBpc19jb3VudGVkX3Jl
cGVhdChwdHIrMiwgcGF0dGVybkVuZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9
IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMiwgJm1pblJlcGVhdHMsICZtYXhSZXBlYXRzLCAmZXJy
b3Jjb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkg
JiYgcHRyWzFdID09ICd7JyAmJiBpc19jb3VudGVkX3JlcGVhdChwdHIgKyAyLCBwYXR0ZXJuRW5k
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcmVhZF9yZXBlYXRfY291bnRzKHB0
ciArIDIsICZtaW5SZXBlYXRzLCAmbWF4UmVwZWF0cywgJmVycm9yY29kZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZXJyb3Jjb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWluUmVwZWF0cyA9PSAw
ICYmIChtYXhSZXBlYXRzID09IDEgfHwgbWF4UmVwZWF0cyA9PSAtMSkpIHx8CkBAIC0yMjg5LDI5
ICsyMjg4LDI5IEBAIHN0YXRpYyBpbnQgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3RoQW5k
RmxhZ3MoY29uc3QgVUNoYXIqIHBhdHRlcm4sIGludCBwYXR0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoKys7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocHRyWzFdID09ICc/JykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocHRyICsg
MSA8IHBhdHRlcm5FbmQpICYmIHB0clsxXSA9PSAnPycpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHRyKys7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgY2FzZSAnXic6ICAgICAvKiBTaW5nbGUtYnl0ZSBtZXRhY2hhcmFjdGVycyAqLwotICAgICAg
ICAgICAgICAgIGNhc2UgJy4nOgotICAgICAgICAgICAgICAgIGNhc2UgJyQnOgorICAgICAgICAg
ICAgY2FzZSAnXic6ICAgICAvKiBTaW5nbGUtYnl0ZSBtZXRhY2hhcmFjdGVycyAqLworICAgICAg
ICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICBjYXNlICckJzoKICAgICAgICAgICAgICAgICBs
ZW5ndGgrKzsKICAgICAgICAgICAgICAgICBsYXN0aXRlbWxlbmd0aCA9IDE7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY2FzZSAn
Kic6ICAgICAgICAgICAgLyogVGhlc2UgcmVwZWF0cyB3b24ndCBiZSBhZnRlciBicmFja2V0czsg
Ki8KLSAgICAgICAgICAgICAgICBjYXNlICcrJzogICAgICAgICAgICAvKiB0aG9zZSBhcmUgaGFu
ZGxlZCBzZXBhcmF0ZWx5ICovCi0gICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAg
ICBjYXNlICcqJzogICAgICAgICAgICAvKiBUaGVzZSByZXBlYXRzIHdvbid0IGJlIGFmdGVyIGJy
YWNrZXRzOyAqLworICAgICAgICAgICAgY2FzZSAnKyc6ICAgICAgICAgICAgLyogdGhvc2UgYXJl
IGhhbmRsZWQgc2VwYXJhdGVseSAqLworICAgICAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAg
ICAgICAgbGVuZ3RoKys7CiAgICAgICAgICAgICAgICAgZ290byBQT1NFU1NJVkU7ICAgICAgLyog
QSBmZXcgbGluZXMgYmVsb3cgKi8KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAv
KiBUaGlzIGNvdmVycyB0aGUgY2FzZXMgb2YgYnJhY2VkIHJlcGVhdHMgYWZ0ZXIgYSBzaW5nbGUg
Y2hhciwgbWV0YWNoYXIsCiAgICAgICAgICAgICAgICAgIGNsYXNzLCBvciBiYWNrIHJlZmVyZW5j
ZS4gKi8KICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAg
ICAgICAgIGNhc2UgJ3snOgogICAgICAgICAgICAgICAgIGlmICghaXNfY291bnRlZF9yZXBlYXQo
cHRyKzEsIHBhdHRlcm5FbmQpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIE5PUk1BTF9DSEFS
OwogICAgICAgICAgICAgICAgIHB0ciA9IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMSwgJm1pblJl
cGVhdHMsICZtYXhSZXBlYXRzLCAmZXJyb3Jjb2RlKTsKQEAgLTIzMzUsMTEgKzIzMzQsMTEgQEAg
c3RhdGljIGludCBjYWxjdWxhdGVDb21waWxlZFBhdHRlcm5MZW5ndGhBbmRGbGFncyhjb25zdCBV
Q2hhciogcGF0dGVybiwgaW50IHBhdHQKICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IGxh
c3RpdGVtbGVuZ3RoICsgKChtYXhSZXBlYXRzID4gMCk/IDMgOiAxKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHB0clsxXSA9PSAnPycp
CisgICAgICAgICAgICAgICAgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkgJiYgcHRyWzFdID09
ICc/JykKICAgICAgICAgICAgICAgICAgICAgcHRyKys7ICAgICAgLyogTmVlZHMgbm8gZXh0cmEg
bGVuZ3RoICovCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBQT1NFU1NJVkU6ICAgICAg
ICAgICAgICAgICAgICAgLyogVGVzdCBmb3IgcG9zc2Vzc2l2ZSBxdWFudGlmaWVyICovCi0gICAg
ICAgICAgICAgICAgaWYgKHB0clsxXSA9PSAnKycpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHB0
ciArIDEgPCBwYXR0ZXJuRW5kKSAmJiBwdHJbMV0gPT0gJysnKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHB0cisrOwogICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gMiArIDIgKiBMSU5LX1NJ
WkU7ICAgLyogQWxsb3cgZm9yIGF0b21pYyBicmFja2V0cyAqLwogICAgICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NjkzMGMyLi4yZjg0Y2Y5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTEt
MzAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGVzdCBjYXNlIGZvcjoKKyAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjcKKworICAgICAg
ICAqIGZhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2pzL3JlZ2V4cC1jb21waWxlLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDA3
LTExLTI5ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPGhvbGdlci5mcmV5dGhlckB0cm9s
bHRlY2guY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZWdleHAtY29tcGlsZS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmOTQ2ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWNvbXBpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1BBU1MgISEvXClbO3NdKy8gaXMgdHJ1ZQorUEFTUyAvWy8gdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgL1thLyB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAvWy0vIHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTICEhLyhhKQEvIGlzIHRydWUKK1BBU1Mg
ISEvKGEpAXsxLDN9LyBpcyB0cnVlCitQQVNTIE5vIGNyYXNoZXMsIHlheSEKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1jb21waWxlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2pzL3JlZ2V4cC1jb21waWxlLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZDA1YzYwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
anMvcmVnZXhwLWNvbXBpbGUtY3Jhc2guaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICBzaG91bGRCZVRydWUoJyEhL1xcKVs7XHNdKy8nKTsK
KyAgc2hvdWxkVGhyb3coJy9bLycpOworICBzaG91bGRUaHJvdygnL1thLycpOworICBzaG91bGRU
aHJvdygnL1stLycpOworICBzaG91bGRCZVRydWUoJyEhLyhhKVwxLycpOworICBzaG91bGRCZVRy
dWUoJyEhLyhhKVwxezEsM30vJyk7CisgIAorICB0ZXN0UGFzc2VkKCJObyBjcmFzaGVzLCB5YXkh
IikKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="7575"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>