<?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>30313</bug_id>
          
          <creation_ts>2009-10-12 14:20:25 -0700</creation_ts>
          <short_desc>NULL ptr in SVGPathSegList::getPathSegAtLength()</short_desc>
          <delta_ts>2009-12-03 11:34:33 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://skypher.com/SkyLined/Repro/WebKit/Bug%2030313%20-%20NULL%20ptr%20in%20SVGPathSegList..getPathSegAtLength()/repro.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug, HasReduction, InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berend-Jan Wever">skylined</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154161</commentid>
    <comment_count>0</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2009-10-12 14:20:25 -0700</bug_when>
    <thetext>Repro:
&lt;SCRIPT&gt;
  SVGPathElement = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;path&quot;);
  SVGPathElement.pathSegList.initialize();
  SVGPathElement.getPathSegAtLength(2699076708.473027);
&lt;/SCRIPT&gt;

In the below code, &quot;getItem(i, ec).get();&quot; returns NULL, which is not handled properly, so &quot;segment-&gt;pathSegType()&quot; gets called and a NULL ptr read exception is thrown.

unsigned SVGPathSegList::getPathSegAtLength(double)
{
    // FIXME : to be useful this will need to support non-normalized SVGPathSegLists
    ExceptionCode ec = 0;
    int len = numberOfItems();
    // FIXME: Eventually this will likely move to a &quot;path applier&quot;-like model, until then PathTraversalState is less useful as we could just use locals
    PathTraversalState traversalState(PathTraversalState::TraversalSegmentAtLength);
    for (int i = 0; i &lt; len; ++i) {
        SVGPathSeg* segment = getItem(i, ec).get();
        float segmentLength = 0;
        switch (segment-&gt;pathSegType()) {
&lt;snip&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154234</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-10-12 18:51:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/7297519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168313</commentid>
    <comment_count>2</comment_count>
      <attachid>44213</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-03 01:03:27 -0800</bug_when>
    <thetext>Created attachment 44213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168314</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-03 01:08:15 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44213 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168317</commentid>
    <comment_count>4</comment_count>
      <attachid>44213</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-03 01:15:34 -0800</bug_when>
    <thetext>Comment on attachment 44213
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168322</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-03 01:22:56 -0800</bug_when>
    <thetext>Committed r51627</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168404</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-03 07:36:04 -0800</bug_when>
    <thetext>This caused bug 32117.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168486</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-03 11:34:33 -0800</bug_when>
    <thetext>Looks like this should be marked as resolved. Please reopen and explain if it shouldn&apos;t.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44213</attachid>
            <date>2009-12-03 01:03:27 -0800</date>
            <delta_ts>2009-12-03 01:15:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30313-20091203010326.patch</filename>
            <type>text/plain</type>
            <size>11725</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMTI5MTdhLi5jNThiYTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MDMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOVUxMIHB0ciBpbiBTVkdQYXRoU2VnTGlzdDo6
Z2V0UGF0aFNlZ0F0TGVuZ3RoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwMzEzCisKKyAgICAgICAgQWRkIHRlc3RjYXNlcyBmb3IgaW5jb3JyZWN0
IHBhdGhTZWcgdXNhZ2UuCisKKyAgICAgICAgKiBzdmcvZG9tL3N2Z3BhdGgtb3V0LW9mLWJvdW5k
cy1nZXRQYXRoU2VnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9zdmdw
YXRoLW91dC1vZi1ib3VuZHMtZ2V0UGF0aFNlZy5odG1sOiBBZGRlZC4KKwogMjAwOS0xMi0wMiAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3N2Z3BhdGgt
b3V0LW9mLWJvdW5kcy1nZXRQYXRoU2VnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9k
b20vc3ZncGF0aC1vdXQtb2YtYm91bmRzLWdldFBhdGhTZWctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNWMxNTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvZG9tL3N2Z3BhdGgtb3V0LW9mLWJvdW5kcy1nZXRQYXRoU2VnLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0cyB0aGF0IGFuIGV4Y2VwdGlvbiBpcyB0aHJv
d24gaWYgd2UgdHJ5IHRvIGdldCBhIHBhdGhTZWcgZm9yIGEgbGVuZ3RoIG91dCBvZiB0aGUgYm91
bmRzIG9mIHRoZSBwYXRoIGl0c2VsZi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5pbml0aWFsaXplKCk7IHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHBhdGguZ2V0UGF0
aFNlZ0F0TGVuZ3RoKDApIGlzIDAKK1BBU1MgcGF0aC5pbnNlcnRJdGVtQmVmb3JlKG51bGwsIDAp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJlc3VsdCBvZiBleHByZXNzaW9uICdwYXRoLmlu
c2VydEl0ZW1CZWZvcmUnIFt1bmRlZmluZWRdIGlzIG5vdCBhIGZ1bmN0aW9uLi4KK1BBU1MgcGF0
aC5yZXBsYWNlSXRlbShudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSZXN1bHQg
b2YgZXhwcmVzc2lvbiAncGF0aC5yZXBsYWNlSXRlbScgW3VuZGVmaW5lZF0gaXMgbm90IGEgZnVu
Y3Rpb24uLgorUEFTUyBwYXRoLmFwcGVuZEl0ZW0obnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogUmVzdWx0IG9mIGV4cHJlc3Npb24gJ3BhdGguYXBwZW5kSXRlbScgW3VuZGVmaW5lZF0g
aXMgbm90IGEgZnVuY3Rpb24uLgorTGlzdCBjb3JyZWN0bHkgaW5pdGlhbGlzZWQuCitQQVNTIHBh
dGguZ2V0UGF0aFNlZ0F0TGVuZ3RoKDApIGlzIDAKK1BBU1MgcGF0aC5pbnNlcnRJdGVtQmVmb3Jl
KG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJlc3VsdCBvZiBleHByZXNzaW9u
ICdwYXRoLmluc2VydEl0ZW1CZWZvcmUnIFt1bmRlZmluZWRdIGlzIG5vdCBhIGZ1bmN0aW9uLi4K
K1BBU1MgcGF0aC5yZXBsYWNlSXRlbShudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBSZXN1bHQgb2YgZXhwcmVzc2lvbiAncGF0aC5yZXBsYWNlSXRlbScgW3VuZGVmaW5lZF0gaXMg
bm90IGEgZnVuY3Rpb24uLgorUEFTUyBwYXRoLmFwcGVuZEl0ZW0obnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJlc3Npb24gJ3BhdGguYXBwZW5kSXRlbScgW3Vu
ZGVmaW5lZF0gaXMgbm90IGEgZnVuY3Rpb24uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20v
c3ZncGF0aC1vdXQtb2YtYm91bmRzLWdldFBhdGhTZWcuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9k
b20vc3ZncGF0aC1vdXQtb2YtYm91bmRzLWdldFBhdGhTZWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jZjJhYTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9zdmdwYXRoLW91dC1vZi1ib3VuZHMtZ2V0UGF0aFNlZy5odG1sCkBAIC0wLDAg
KzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgYW4gZXhjZXB0aW9uIGlzIHRocm93biBpZiB3ZSB0cnkgdG8gZ2V0IGEgcGF0aFNlZyBmb3Ig
YSBsZW5ndGggb3V0IG9mIHRoZSBib3VuZHMgb2YgdGhlIHBhdGggaXRzZWxmLiIpOworICAgIHBh
dGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiwgInBhdGgiKTsKKyAgICBzaG91bGRUaHJvdygicGF0aC5wYXRoU2VnTGlzdC5pbml0aWFsaXpl
KCk7Iik7CisgICAgc2hvdWxkQmUoInBhdGguZ2V0UGF0aFNlZ0F0TGVuZ3RoKDApIiwgJzAnKTsK
KyAgICBzaG91bGRUaHJvdygicGF0aC5pbnNlcnRJdGVtQmVmb3JlKG51bGwsIDApIik7CisgICAg
c2hvdWxkVGhyb3coInBhdGgucmVwbGFjZUl0ZW0obnVsbCwgMCkiKTsKKyAgICBzaG91bGRUaHJv
dygicGF0aC5hcHBlbmRJdGVtKG51bGwpIik7CisgICAgcGF0aC5wYXRoU2VnTGlzdC5pbml0aWFs
aXplKHBhdGguY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgpKTsKKyAgICBkZWJ1ZygiTGlzdCBj
b3JyZWN0bHkgaW5pdGlhbGlzZWQuIik7CisgICAgc2hvdWxkQmUoInBhdGguZ2V0UGF0aFNlZ0F0
TGVuZ3RoKDApIiwgJzAnKTsKKyAgICBzaG91bGRUaHJvdygicGF0aC5pbnNlcnRJdGVtQmVmb3Jl
KG51bGwsIDApIik7CisgICAgc2hvdWxkVGhyb3coInBhdGgucmVwbGFjZUl0ZW0obnVsbCwgMCki
KTsKKyAgICBzaG91bGRUaHJvdygicGF0aC5hcHBlbmRJdGVtKG51bGwpIik7CisgICAgCisgICAg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGM3MmIzYmUuLmU0OTg0MjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMTItMDMgIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOVUxMIHB0ciBpbiBTVkdQYXRoU2VnTGlzdDo6Z2V0UGF0aFNl
Z0F0TGVuZ3RoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMwMzEzCisKKyAgICAgICAgQWRkIGV4Y2VwdGlvbiBjaGVja3MgdG8gU1ZHUGF0aFNlZ0xp
c3QncyBpbXBsZW1lbnRhdGlvbiB0byBjYXRjaCAoYW5kIHByb3BhZ2F0ZSkgZXhjZXB0aW9ucy4K
KyAgICAgICAgQWRkIG51bGwgY2hlY2tzIHRvIFNWR0xpc3QncyBjb250ZW50IG1hbmlwdWxhdGlv
biBmdW5jdGlvbnMgdG8gcHJldmVudAorICAgICAgICBudWxsIHZhbHVlcyBmcm9tIGVudGVyaW5n
IHRoZSBsaXN0IGluIHRoZSBmaXJzdCBwbGFjZS4KKworICAgICAgICBUZXN0OiBzdmcvZG9tL3N2
Z3BhdGgtb3V0LW9mLWJvdW5kcy1nZXRQYXRoU2VnLmh0bWwKKworICAgICAgICAqIHN2Zy9TVkdM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0Ojppbml0aWFsaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3Q6Omluc2VydEl0ZW1CZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdDo6cmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdDo6YXBwZW5k
SXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhFbGVtZW50OjpnZXRQYXRoU2VnQXRMZW5ndGgpOgorICAgICAgICAqIHN2Zy9T
VkdQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5pZGw6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhT
ZWdMaXN0OjpnZXRQYXRoU2VnQXRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNl
Z0xpc3Q6OnRvUGF0aERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNy
ZWF0ZUFuaW1hdGVkKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKwogMjAwOS0x
Mi0wMiAgWXVzdWtlIFNhdG8gIDx5dXN1a2VzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0xpc3QuaCBi
L1dlYkNvcmUvc3ZnL1NWR0xpc3QuaAppbmRleCBiMWRmYmExLi42YTNlN2FkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N2Zy9TVkdMaXN0LmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHTGlzdC5oCkBAIC01
Niw2ICs1NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSXRlbSBpbml0aWFs
aXplKEl0ZW0gbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbmV3SXRlbSkgeworICAgICAgICAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9F
UlI7CisgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVPcGVyYXRpb25zOjpudWxsSXRlbSgpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgY2xlYXIoZWMpOwogICAgICAgICAgICAgcmV0dXJu
IGFwcGVuZEl0ZW0obmV3SXRlbSwgZWMpOwogICAgICAgICB9CkBAIC05Miw4ICs5NiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4gbV92ZWN0b3JbaW5kZXhdOwog
ICAgICAgICB9CiAKLSAgICAgICAgSXRlbSBpbnNlcnRJdGVtQmVmb3JlKEl0ZW0gbmV3SXRlbSwg
dW5zaWduZWQgaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJikKKyAgICAgICAgSXRlbSBpbnNlcnRJ
dGVtQmVmb3JlKEl0ZW0gbmV3SXRlbSwgdW5zaWduZWQgaW50IGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKCFuZXdJdGVtKSB7CisgICAgICAgICAg
ICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlw
ZU9wZXJhdGlvbnM6Om51bGxJdGVtKCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlm
IChpbmRleCA8IG1fdmVjdG9yLnNpemUoKSkgewogICAgICAgICAgICAgICAgIG1fdmVjdG9yLmlu
c2VydChpbmRleCwgbmV3SXRlbSk7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTA4LDYgKzEx
NywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgZWMgPSBJTkRFWF9T
SVpFX0VSUjsKICAgICAgICAgICAgICAgICByZXR1cm4gVHlwZU9wZXJhdGlvbnM6Om51bGxJdGVt
KCk7CiAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIW5ld0l0ZW0pIHsKKyAg
ICAgICAgICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICAgICAgICAgIHJl
dHVybiBUeXBlT3BlcmF0aW9uczo6bnVsbEl0ZW0oKTsKKyAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgbV92ZWN0b3JbaW5kZXhdID0gbmV3SXRlbTsKICAgICAgICAgICAgIHJldHVybiBuZXdJ
dGVtOwpAQCAtMTI1LDggKzEzOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICByZXR1cm4gaXRlbTsKICAgICAgICAgfQogCi0gICAgICAgIEl0ZW0gYXBwZW5kSXRlbShJdGVt
IG5ld0l0ZW0sIEV4Y2VwdGlvbkNvZGUmKQorICAgICAgICBJdGVtIGFwcGVuZEl0ZW0oSXRlbSBu
ZXdJdGVtLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKCFu
ZXdJdGVtKSB7CisgICAgICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVHlwZU9wZXJhdGlvbnM6Om51bGxJdGVtKCk7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIG1fdmVjdG9yLmFwcGVuZChuZXdJdGVtKTsKICAgICAgICAgICAg
IHJldHVybiBuZXdJdGVtOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggNjUx
MTQ5ZS4uZDUzZmJiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtNjksOSArNjksOSBAQCBG
bG9hdFBvaW50IFNWR1BhdGhFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGxlbmd0aCkK
ICAgICByZXR1cm4gdG9QYXRoRGF0YSgpLnBvaW50QXRMZW5ndGgobGVuZ3RoLCBvayk7CiB9CiAK
LXVuc2lnbmVkIGxvbmcgU1ZHUGF0aEVsZW1lbnQ6OmdldFBhdGhTZWdBdExlbmd0aChmbG9hdCBs
ZW5ndGgpCit1bnNpZ25lZCBsb25nIFNWR1BhdGhFbGVtZW50OjpnZXRQYXRoU2VnQXRMZW5ndGgo
ZmxvYXQgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gcGF0aFNlZ0xp
c3QoKS0+Z2V0UGF0aFNlZ0F0TGVuZ3RoKGxlbmd0aCk7CisgICAgcmV0dXJuIHBhdGhTZWdMaXN0
KCktPmdldFBhdGhTZWdBdExlbmd0aChsZW5ndGgsIGVjKTsKIH0KIAogUGFzc1JlZlB0cjxTVkdQ
YXRoU2VnQ2xvc2VQYXRoPiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0
aCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCA3ZWEwMTBiLi4yNjZiZmRkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVt
ZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0K
ICAgICAgICAgZmxvYXQgZ2V0VG90YWxMZW5ndGgoKTsKICAgICAgICAgRmxvYXRQb2ludCBnZXRQ
b2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBnZXRQ
YXRoU2VnQXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpOworICAgICAgICB1bnNpZ25lZCBsb25nIGdl
dFBhdGhTZWdBdExlbmd0aChmbG9hdCBkaXN0YW5jZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdGhTZWdDbG9zZVBhdGg+IGNyZWF0ZVNWR1BhdGhT
ZWdDbG9zZVBhdGgoKTsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0aFNlZ01vdmV0
b0Ficz4gY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0FicyhmbG9hdCB4LCBmbG9hdCB5KTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmlkbCBiL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmlkbAppbmRleCBkNjZkZjFkLi45YTM4OWM4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aWRsCkBAIC0zNyw3ICszNyw4IEBAIG1vZHVsZSBzdmcgewogCiAgICAgICAgIGZsb2F0IGdldFRv
dGFsTGVuZ3RoKCk7CiAgICAgICAgIFNWR1BvaW50IGdldFBvaW50QXRMZW5ndGgoaW4gZmxvYXQg
ZGlzdGFuY2UpOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdldFBhdGhTZWdBdExlbmd0aChpbiBm
bG9hdCBkaXN0YW5jZSk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2V0UGF0aFNlZ0F0TGVuZ3Ro
KGluIGZsb2F0IGRpc3RhbmNlKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZH
RXhjZXB0aW9uKTsKIAogICAgICAgICBTVkdQYXRoU2VnQ2xvc2VQYXRoIGNyZWF0ZVNWR1BhdGhT
ZWdDbG9zZVBhdGgoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3Qu
Y3BwIGIvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCmluZGV4IDhkNmZkZWYuLjExY2Fk
MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAorKysgYi9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKQEAgLTUxLDE1ICs1MSwxNiBAQCBTVkdQYXRoU2Vn
TGlzdDo6flNWR1BhdGhTZWdMaXN0KCkKIHsKIH0KIAotdW5zaWduZWQgU1ZHUGF0aFNlZ0xpc3Q6
OmdldFBhdGhTZWdBdExlbmd0aChkb3VibGUpCit1bnNpZ25lZCBTVkdQYXRoU2VnTGlzdDo6Z2V0
UGF0aFNlZ0F0TGVuZ3RoKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklY
TUUgOiB0byBiZSB1c2VmdWwgdGhpcyB3aWxsIG5lZWQgdG8gc3VwcG9ydCBub24tbm9ybWFsaXpl
ZCBTVkdQYXRoU2VnTGlzdHMKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpbnQgbGVu
ID0gbnVtYmVyT2ZJdGVtcygpOwogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgd2lsbCBs
aWtlbHkgbW92ZSB0byBhICJwYXRoIGFwcGxpZXIiLWxpa2UgbW9kZWwsIHVudGlsIHRoZW4gUGF0
aFRyYXZlcnNhbFN0YXRlIGlzIGxlc3MgdXNlZnVsIGFzIHdlIGNvdWxkIGp1c3QgdXNlIGxvY2Fs
cwogICAgIFBhdGhUcmF2ZXJzYWxTdGF0ZSB0cmF2ZXJzYWxTdGF0ZShQYXRoVHJhdmVyc2FsU3Rh
dGU6OlRyYXZlcnNhbFNlZ21lbnRBdExlbmd0aCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBs
ZW47ICsraSkgewogICAgICAgICBTVkdQYXRoU2VnKiBzZWdtZW50ID0gZ2V0SXRlbShpLCBlYyku
Z2V0KCk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBm
bG9hdCBzZWdtZW50TGVuZ3RoID0gMDsKICAgICAgICAgc3dpdGNoIChzZWdtZW50LT5wYXRoU2Vn
VHlwZSgpKSB7CiAgICAgICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9fQUJTOgpA
QCAtMTA0LDEwICsxMDUsMTIgQEAgUGF0aCBTVkdQYXRoU2VnTGlzdDo6dG9QYXRoRGF0YSgpCiB7
CiAgICAgLy8gRklYTUUgOiBUaGlzIHNob3VsZCBhbHNvIHN1cHBvcnQgbm9uLW5vcm1hbGl6ZWQg
UGF0aFNlZ0xpc3RzCiAgICAgUGF0aCBwYXRoRGF0YTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKICAgICBpbnQgbGVuID0gbnVtYmVyT2ZJdGVtcygpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgU1ZHUGF0
aFNlZyogc2VnbWVudCA9IGdldEl0ZW0oaSwgZWMpLmdldCgpOworICAgICAgICBpZiAoZWMpCisg
ICAgICAgICAgICByZXR1cm4gUGF0aCgpOwogICAgICAgICBzd2l0Y2ggKHNlZ21lbnQtPnBhdGhT
ZWdUeXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9f
QUJTOgogICAgICAgICAgICAgewpAQCAtMTgyLDEwICsxODUsMTQgQEAgUGFzc1JlZlB0cjxTVkdQ
YXRoU2VnTGlzdD4gU1ZHUGF0aFNlZ0xpc3Q6OmNyZWF0ZUFuaW1hdGVkKGNvbnN0IFNWR1BhdGhT
ZWdMaXN0KgogICAgIGlmICghaXRlbUNvdW50IHx8IGl0ZW1Db3VudCAhPSB0b0xpc3QtPm51bWJl
ck9mSXRlbXMoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgUmVmUHRyPFNWR1BhdGhTZWdMaXN0
PiByZXN1bHQgPSBjcmVhdGUoZnJvbUxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgZm9y
ICh1bnNpZ25lZCBuID0gMDsgbiA8IGl0ZW1Db3VudDsgKytuKSB7CiAgICAgICAgIFNWR1BhdGhT
ZWcqIGZyb20gPSBmcm9tTGlzdC0+Z2V0SXRlbShuLCBlYykuZ2V0KCk7CisgICAgICAgIGlmIChl
YykKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBTVkdQYXRoU2VnKiB0byA9IHRvTGlz
dC0+Z2V0SXRlbShuLCBlYykuZ2V0KCk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICBpZiAoZnJvbS0+cGF0aFNlZ1R5cGUoKSA9PSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX1VOS05PV04gfHwgZnJvbS0+cGF0aFNlZ1R5cGUoKSAhPSB0by0+cGF0aFNlZ1R5cGUo
KSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBSZWZQdHI8U1ZHUGF0aFNlZz4gc2Vn
bWVudCA9IDA7CkBAIC0yNTEsNiArMjU4LDggQEAgUGFzc1JlZlB0cjxTVkdQYXRoU2VnTGlzdD4g
U1ZHUGF0aFNlZ0xpc3Q6OmNyZWF0ZUFuaW1hdGVkKGNvbnN0IFNWR1BhdGhTZWdMaXN0KgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0
LT5hcHBlbmRJdGVtKHNlZ21lbnQsIGVjKTsKKyAgICAgICAgaWYgKGVjKQorICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaCBiL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaXN0LmgKaW5kZXggZDkzMjVjZS4uZDI5OTlmMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpc3QuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGF0aFNlZ0xpc3QoYXR0cmlidXRlTmFtZSkp
OyB9CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdGhTZWdMaXN0KCk7CiAKLSAgICAgICAgdW5zaWdu
ZWQgZ2V0UGF0aFNlZ0F0TGVuZ3RoKGRvdWJsZSk7CisgICAgICAgIHVuc2lnbmVkIGdldFBhdGhT
ZWdBdExlbmd0aChkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgUGF0aCB0b1BhdGhE
YXRhKCk7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYXRoU2VnTGlz
dD4gY3JlYXRlQW5pbWF0ZWQoY29uc3QgU1ZHUGF0aFNlZ0xpc3QqIGZyb21MaXN0LCBjb25zdCBT
VkdQYXRoU2VnTGlzdCogdG9MaXN0LCBmbG9hdCBwcm9ncmVzcyk7Cg==
</data>
<flag name="review"
          id="26013"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>