<?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>184823</bug_id>
          
          <creation_ts>2018-04-20 09:30:53 -0700</creation_ts>
          <short_desc>REGRESSION(r230812): [WPE][GTK] WebKitWebViewSessionState.cpp throws away encoded BackForwardList identifier</short_desc>
          <delta_ts>2018-04-27 01:41:04 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1416284</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-20 09:30:53 -0700</bug_when>
    <thetext>Since r230812, decodeBackForwardListItemState in WebKitWebViewSessionState.cpp no longer reads the encoded BackForwardList identifier.

First, we should figure out if this is bad. Does the BackForwardList still get deserialized properly? It&apos;s not clear to me.

If it&apos;s not bad, we should at least stop encoding the identifier, since it&apos;s silly to encode something that&apos;s never decoded. To avoid the need to change the serialization format, we could just start encoding 0, for example, with a comment to indicate that it should be dropped if we ever need to bump the serialization format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416655</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-21 00:01:38 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; Since r230812, decodeBackForwardListItemState in
&gt; WebKitWebViewSessionState.cpp no longer reads the encoded BackForwardList
&gt; identifier.

Right.

&gt; First, we should figure out if this is bad. Does the BackForwardList still
&gt; get deserialized properly? It&apos;s not clear to me.

Nah, it&apos;s not bad because WebBackForwardList::restoreFromState() assigns a new identifier to the item without checking the saved one. This was done before as well, so I think we were saving the identifier in the state for nothing. Brady, correct me if I&apos;m wrong.

&gt; If it&apos;s not bad, we should at least stop encoding the identifier, since it&apos;s
&gt; silly to encode something that&apos;s never decoded. To avoid the need to change
&gt; the serialization format, we could just start encoding 0, for example, with
&gt; a comment to indicate that it should be dropped if we ever need to bump the
&gt; serialization format.

It should be easy to handle this change, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418013</commentid>
    <comment_count>2</comment_count>
      <attachid>338868</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-26 03:54:04 -0700</bug_when>
    <thetext>Created attachment 338868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418014</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-26 03:55:54 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418068</commentid>
    <comment_count>4</comment_count>
      <attachid>338868</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-26 09:36:57 -0700</bug_when>
    <thetext>Comment on attachment 338868
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:394
&gt; +    GRefPtr&lt;GVariant&gt; variant;
&gt; +    for (unsigned i = 0; sessionStateTypeStringVersions[i]; ++i) {
&gt; +        sessionStateTypeString = sessionStateTypeStringVersions[i];
&gt; +        variant = g_variant_new_from_bytes(G_VARIANT_TYPE(sessionStateTypeString), data, FALSE);
&gt; +        if (g_variant_is_normal_form(variant.get()))
&gt; +            break;
&gt; +        variant = nullptr;
&gt; +    }

You&apos;ve tested this to ensure it doesn&apos;t emit a bunch of warnings or criticals when the type doesn&apos;t match?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418438</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-26 23:37:03 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; Comment on attachment 338868 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338868&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:394
&gt; &gt; +    GRefPtr&lt;GVariant&gt; variant;
&gt; &gt; +    for (unsigned i = 0; sessionStateTypeStringVersions[i]; ++i) {
&gt; &gt; +        sessionStateTypeString = sessionStateTypeStringVersions[i];
&gt; &gt; +        variant = g_variant_new_from_bytes(G_VARIANT_TYPE(sessionStateTypeString), data, FALSE);
&gt; &gt; +        if (g_variant_is_normal_form(variant.get()))
&gt; &gt; +            break;
&gt; &gt; +        variant = nullptr;
&gt; &gt; +    }
&gt; 
&gt; You&apos;ve tested this to ensure it doesn&apos;t emit a bunch of warnings or
&gt; criticals when the type doesn&apos;t match?

Yes, of course I tested it. My ephy history was successfully encoded with version 1 (2 is tried first) and decoded with 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418439</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-26 23:37:35 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; (In reply to Michael Catanzaro from comment #4)
&gt; &gt; Comment on attachment 338868 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=338868&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:394
&gt; &gt; &gt; +    GRefPtr&lt;GVariant&gt; variant;
&gt; &gt; &gt; +    for (unsigned i = 0; sessionStateTypeStringVersions[i]; ++i) {
&gt; &gt; &gt; +        sessionStateTypeString = sessionStateTypeStringVersions[i];
&gt; &gt; &gt; +        variant = g_variant_new_from_bytes(G_VARIANT_TYPE(sessionStateTypeString), data, FALSE);
&gt; &gt; &gt; +        if (g_variant_is_normal_form(variant.get()))
&gt; &gt; &gt; +            break;
&gt; &gt; &gt; +        variant = nullptr;
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; You&apos;ve tested this to ensure it doesn&apos;t emit a bunch of warnings or
&gt; &gt; criticals when the type doesn&apos;t match?
&gt; 
&gt; Yes, of course I tested it. My ephy history was successfully encoded with
&gt; version 1 (2 is tried first) and decoded with 2.

Ok, the opposite, decoded with 1 and encoded with 2 ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418449</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-27 01:41:04 -0700</bug_when>
    <thetext>Committed r231090: &lt;https://trac.webkit.org/changeset/231090&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338868</attachid>
            <date>2018-04-26 03:54:04 -0700</date>
            <delta_ts>2018-04-26 09:36:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-session-state-v2.diff</filename>
            <type>text/plain</type>
            <size>9345</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggN2QyMmZkYjUyMTYuLjE5NTEzZWRjZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE4LTA0LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMzA4MTIpOiBbV1BFXVtHVEtdIFdlYktpdFdl
YlZpZXdTZXNzaW9uU3RhdGUuY3BwIHRocm93cyBhd2F5IGVuY29kZWQgQmFja0ZvcndhcmRMaXN0
IGlkZW50aWZpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NDgyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJ1bXAgc2Vzc2lvbiBzYXRlIGZvcm1hdCB2ZXJzaW9uIHRvIDIgYW5kIHN0b3AgZW5jb2Rp
bmcgdGhlIGJhY2tmb3dhcmQgbGlzdCBpdGVtIGlkZW50aWZpZXIsIHNpbmNlIGl0J3MgYWx3YXlz
CisgICAgICAgIHJlZ2VuZXJhdGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAgICAoZW5jb2RlQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlKTogQWx3YXlzIGVuY29kZSB2ZXJzaW9uIDIuCisgICAgICAgIChlbmNvZGVC
YWNrRm9yd2FyZExpc3RTdGF0ZSk6IERpdHRvLgorICAgICAgICAoZW5jb2RlU2Vzc2lvblN0YXRl
KTogRGl0dG8uCisgICAgICAgIChkZWNvZGVCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGVWMSk6IERl
Y29kZSBsaXN0IGl0ZW0gc3RhdGUgZm9yIHZlcnNpb24gMS4KKyAgICAgICAgKGRlY29kZUJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSk6IFJlY2VpdmUgdGhlIHZlcnNpb24gYW5kIGNhbGwgZGVjb2Rl
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlVjEoKSBpZiBpdCdzIDEgb3IKKyAgICAgICAgdXNlIHRo
ZSB2ZXJzaW9uIDIgb3RoZXJ3aXNlLgorICAgICAgICAoZGVjb2RlU2Vzc2lvblN0YXRlKTogTG9h
ZCBkYXRhIGZvciBrbm93biBmb3JtYXRzIGFuZCB1c2UgdGhlIG9uZSB0aGF0IHdvcmtlZCB0byBk
ZWNvZGUgaXQuCisKIDIwMTgtMDQtMjUgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEJ1aWxkIGFuZCBsaW5rIGFnYWluc3QgbGF0ZXN0
IFdQRUJhY2tlbmQgYW5kIFdQRUJhY2tlbmQtZmRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3Bw
CmluZGV4IGI3Y2JmOGJjZGMyLi5jNzliNTY3ODczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0
ZS5jcHAKQEAgLTQwLDcgKzQwLDEwIEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0
ZSB7CiAKIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSwgd2Vi
a2l0X3dlYl92aWV3X3Nlc3Npb25fc3RhdGUsIHdlYmtpdF93ZWJfdmlld19zZXNzaW9uX3N0YXRl
X3JlZiwgd2Via2l0X3dlYl92aWV3X3Nlc3Npb25fc3RhdGVfdW5yZWYpCiAKLXN0YXRpYyBjb25z
dCBndWludDE2IGdfc2Vzc2lvblN0YXRlVmVyc2lvbiA9IDE7CisvLyBWZXJzaW9uIGluZm9ybWF0
aW9uOgorLy8gIC0gVmVyc2lvbiAyOiByZW1vdmVkIGJhY2tmb3J3YXJkIGxpc3QgaXRlbSBpZGVu
dGlmaWVyIHNpbmNlIGl0J3MgYWx3YXlzIHJlZ2VuZXJhdGVkLgorLy8gIC0gVmVyc2lvbiAxOiBp
bml0aWFsIHZlcnNpb24uCitzdGF0aWMgY29uc3QgZ3VpbnQxNiBnX3Nlc3Npb25TdGF0ZVZlcnNp
b24gPSAyOwogI2RlZmluZSBIVFRQX0JPRFlfRUxFTUVOVF9UWVBFX1NUUklOR19WMSAiKHVheXN4
bXhtZHMpIgogI2RlZmluZSBIVFRQX0JPRFlfRUxFTUVOVF9GT1JNQVRfU1RSSU5HX1YxICIodWF5
JnN4bXhtZCZzKSIKICNkZWZpbmUgSFRUUF9CT0RZX1RZUEVfU1RSSU5HX1YxICJtKHNhIiBIVFRQ
X0JPRFlfRUxFTUVOVF9UWVBFX1NUUklOR19WMSAiKSIKQEAgLTQ4LDggKzUxLDExIEBAIHN0YXRp
YyBjb25zdCBndWludDE2IGdfc2Vzc2lvblN0YXRlVmVyc2lvbiA9IDE7CiAjZGVmaW5lIEZSQU1F
X1NUQVRFX1RZUEVfU1RSSU5HX1YxICAiKHNzc3Nhc21heXh4KGlpKWQiIEhUVFBfQk9EWV9UWVBF
X1NUUklOR19WMSAiYXYpIgogI2RlZmluZSBGUkFNRV9TVEFURV9GT1JNQVRfU1RSSU5HX1YxICAi
KCZzJnMmcyZzYXNtYXl4eChpaSlkQCIgSFRUUF9CT0RZX1RZUEVfU1RSSU5HX1YxICJhdikiCiAj
ZGVmaW5lIEJBQ0tfRk9SV0FSRF9MSVNUX0lURU1fVFlQRV9TVFJJTkdfVjEgICIodHMiIEZSQU1F
X1NUQVRFX1RZUEVfU1RSSU5HX1YxICJ1KSIKKyNkZWZpbmUgQkFDS19GT1JXQVJEX0xJU1RfSVRF
TV9UWVBFX1NUUklOR19WMiAgIihzIiBGUkFNRV9TVEFURV9UWVBFX1NUUklOR19WMSAidSkiCiAj
ZGVmaW5lIEJBQ0tfRk9SV0FSRF9MSVNUX0lURU1fRk9STUFUX1NUUklOR19WMSAgIih0JnNAIiBG
UkFNRV9TVEFURV9UWVBFX1NUUklOR19WMSAidSkiCi0jZGVmaW5lIFNFU1NJT05fU1RBVEVfVFlQ
RV9TVFJJTkdfVjEgICIocWEiIEJBQ0tfRk9SV0FSRF9MSVNUX0lURU1fVFlQRV9TVFJJTkdfVjEg
Im11KSIKKyNkZWZpbmUgQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9GT1JNQVRfU1RSSU5HX1YyICAi
KCZzQCIgRlJBTUVfU1RBVEVfVFlQRV9TVFJJTkdfVjEgInUpIgorI2RlZmluZSBTRVNTSU9OX1NU
QVRFX1RZUEVfU1RSSU5HX1YxICIocWEiIEJBQ0tfRk9SV0FSRF9MSVNUX0lURU1fVFlQRV9TVFJJ
TkdfVjEgIm11KSIKKyNkZWZpbmUgU0VTU0lPTl9TVEFURV9UWVBFX1NUUklOR19WMiAiKHFhIiBC
QUNLX0ZPUldBUkRfTElTVF9JVEVNX1RZUEVfU1RSSU5HX1YyICJtdSkiCiAKIC8vIFVzZSBvdXIg
b3duIGVudW0gdHlwZXMgdG8gZW5zdXJlIHRoZSBzZXJpYWxpemVkIGZvcm1hdCBldmVuIGlmIHRo
ZSBjb3JlIGVudW1zIGNoYW5nZS4KIGVudW0gRXh0ZXJuYWxVUkxzUG9saWN5IHsKQEAgLTIwMSwx
NSArMjA3LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbmNvZGVQYWdlU3RhdGUoR1ZhcmlhbnRC
dWlsZGVyKiBzZXNzaW9uQnVpbGRlciwgY29uc3QgUGFnZVN0CiAKIHN0YXRpYyBpbmxpbmUgdm9p
ZCBlbmNvZGVCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUoR1ZhcmlhbnRCdWlsZGVyKiBzZXNzaW9u
QnVpbGRlciwgY29uc3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiBpdGVtKQogewotICAgIGdf
dmFyaWFudF9idWlsZGVyX29wZW4oc2Vzc2lvbkJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKEJBQ0tf
Rk9SV0FSRF9MSVNUX0lURU1fVFlQRV9TVFJJTkdfVjEpKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoc2Vzc2lvbkJ1aWxkZXIsICJ0IiwgaXRlbS5pZGVudGlmaWVyKTsKKyAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9vcGVuKHNlc3Npb25CdWlsZGVyLCBHX1ZBUklBTlRfVFlQRShCQUNLX0ZPUldB
UkRfTElTVF9JVEVNX1RZUEVfU1RSSU5HX1YyKSk7CiAgICAgZW5jb2RlUGFnZVN0YXRlKHNlc3Np
b25CdWlsZGVyLCBpdGVtLnBhZ2VTdGF0ZSk7CiAgICAgZ192YXJpYW50X2J1aWxkZXJfY2xvc2Uo
c2Vzc2lvbkJ1aWxkZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZW5jb2RlQmFja0Zvcndh
cmRMaXN0U3RhdGUoR1ZhcmlhbnRCdWlsZGVyKiBzZXNzaW9uQnVpbGRlciwgY29uc3QgQmFja0Zv
cndhcmRMaXN0U3RhdGUmIGJhY2tGb3J3YXJkTGlzdFN0YXRlKQogewotICAgIGdfdmFyaWFudF9i
dWlsZGVyX29wZW4oc2Vzc2lvbkJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhIiBCQUNLX0ZPUldB
UkRfTElTVF9JVEVNX1RZUEVfU1RSSU5HX1YxKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfb3Bl
bihzZXNzaW9uQnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImEiIEJBQ0tfRk9SV0FSRF9MSVNUX0lU
RU1fVFlQRV9TVFJJTkdfVjIpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBiYWNrRm9y
d2FyZExpc3RTdGF0ZS5pdGVtcykKICAgICAgICAgZW5jb2RlQmFja0ZvcndhcmRMaXN0SXRlbVN0
YXRlKHNlc3Npb25CdWlsZGVyLCBpdGVtKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZShz
ZXNzaW9uQnVpbGRlcik7CkBAIC0yMjMsNyArMjI4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVu
Y29kZUJhY2tGb3J3YXJkTGlzdFN0YXRlKEdWYXJpYW50QnVpbGRlciogc2Vzc2lvbkJ1aWxkZXIs
IGMKIHN0YXRpYyBHQnl0ZXMqIGVuY29kZVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9uU3RhdGUm
IHNlc3Npb25TdGF0ZSkKIHsKICAgICBHVmFyaWFudEJ1aWxkZXIgc2Vzc2lvbkJ1aWxkZXI7Ci0g
ICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmc2Vzc2lvbkJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBF
KFNFU1NJT05fU1RBVEVfVFlQRV9TVFJJTkdfVjEpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9p
bml0KCZzZXNzaW9uQnVpbGRlciwgR19WQVJJQU5UX1RZUEUoU0VTU0lPTl9TVEFURV9UWVBFX1NU
UklOR19WMikpOwogICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmc2Vzc2lvbkJ1aWxkZXIsICJx
IiwgZ19zZXNzaW9uU3RhdGVWZXJzaW9uKTsKICAgICBlbmNvZGVCYWNrRm9yd2FyZExpc3RTdGF0
ZSgmc2Vzc2lvbkJ1aWxkZXIsIHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZSk7CiAg
ICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGdfdmFyaWFudF9idWlsZGVyX2VuZCgmc2Vz
c2lvbkJ1aWxkZXIpOwpAQCAtMzMyLDIwICszMzcsMzggQEAgc3RhdGljIGlubGluZSB2b2lkIGRl
Y29kZUZyYW1lU3RhdGUoR1ZhcmlhbnQqIGZyYW1lU3RhdGVWYXJpYW50LCBGcmFtZVN0YXRlJiBm
cmEKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGUoR1ZhcmlhbnRJdGVyKiBiYWNrRm9yd2FyZExpc3RTdGF0ZUl0ZXIsIEJhY2tGb3J3
YXJkTGlzdFN0YXRlJiBiYWNrRm9yd2FyZExpc3RTdGF0ZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBk
ZWNvZGVCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGVWMShHVmFyaWFudEl0ZXIqIGJhY2tGb3J3YXJk
TGlzdFN0YXRlSXRlciwgQmFja0ZvcndhcmRMaXN0U3RhdGUmIGJhY2tGb3J3YXJkTGlzdFN0YXRl
KQoreworICAgIGd1aW50NjQgaWRlbnRpZmllcjsKKyAgICBjb25zdCBjaGFyKiB0aXRsZTsKKyAg
ICBHVmFyaWFudCogZnJhbWVTdGF0ZVZhcmlhbnQ7CisgICAgdW5zaWduZWQgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTsKKyAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcChiYWNrRm9y
d2FyZExpc3RTdGF0ZUl0ZXIsIEJBQ0tfRk9SV0FSRF9MSVNUX0lURU1fRk9STUFUX1NUUklOR19W
MSwgJmlkZW50aWZpZXIsICZ0aXRsZSwgJmZyYW1lU3RhdGVWYXJpYW50LCAmc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSkpIHsKKyAgICAgICAgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIHN0
YXRlOworICAgICAgICBzdGF0ZS5wYWdlU3RhdGUudGl0bGUgPSBTdHJpbmc6OmZyb21VVEY4KHRp
dGxlKTsKKyAgICAgICAgZGVjb2RlRnJhbWVTdGF0ZShmcmFtZVN0YXRlVmFyaWFudCwgc3RhdGUu
cGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlKTsKKyAgICAgICAgc3RhdGUucGFnZVN0YXRlLnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSB0b1dlYkNvcmVFeHRlcm5hbFVSTHNQb2xpY3koc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgICAgIGJhY2tGb3J3YXJkTGlzdFN0YXRl
Lml0ZW1zLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKHN0YXRlKSk7CisgICAgfQorfQorCitzdGF0
aWMgaW5saW5lIHZvaWQgZGVjb2RlQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKEdWYXJpYW50SXRl
ciogYmFja0ZvcndhcmRMaXN0U3RhdGVJdGVyLCBCYWNrRm9yd2FyZExpc3RTdGF0ZSYgYmFja0Zv
cndhcmRMaXN0U3RhdGUsIGd1aW50MTYgdmVyc2lvbikKIHsKICAgICBnc2l6ZSBiYWNrRm9yd2Fy
ZExpc3RTdGF0ZUxlbmd0aCA9IGdfdmFyaWFudF9pdGVyX25fY2hpbGRyZW4oYmFja0ZvcndhcmRM
aXN0U3RhdGVJdGVyKTsKICAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdFN0YXRlTGVuZ3RoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGJhY2tGb3J3YXJkTGlzdFN0YXRlTGVuZ3RoKTsKLSAgICBndWludDY0IGlk
ZW50aWZpZXI7CisgICAgaWYgKHZlcnNpb24gPT0gMSkgeworICAgICAgICBkZWNvZGVCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGVWMShiYWNrRm9yd2FyZExpc3RTdGF0ZUl0ZXIsIGJhY2tGb3J3YXJk
TGlzdFN0YXRlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNvbnN0IGNoYXIqIHRp
dGxlOwogICAgIEdWYXJpYW50KiBmcmFtZVN0YXRlVmFyaWFudDsKICAgICB1bnNpZ25lZCBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwotICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29w
KGJhY2tGb3J3YXJkTGlzdFN0YXRlSXRlciwgQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9GT1JNQVRf
U1RSSU5HX1YxLCAmaWRlbnRpZmllciwgJnRpdGxlLCAmZnJhbWVTdGF0ZVZhcmlhbnQsICZzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSkgeworICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9s
b29wKGJhY2tGb3J3YXJkTGlzdFN0YXRlSXRlciwgQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9GT1JN
QVRfU1RSSU5HX1YyLCAmdGl0bGUsICZmcmFtZVN0YXRlVmFyaWFudCwgJnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kpKSB7CiAgICAgICAgIEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSBzdGF0
ZTsKLSAgICAgICAgc3RhdGUuaWRlbnRpZmllciA9IHsgV2ViQ29yZTo6UHJvY2Vzczo6aWRlbnRp
ZmllcigpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllcjo6SXRlbUlkZW50aWZpZXJUeXBlPigpIH07CiAgICAgICAgIHN0YXRlLnBhZ2VT
dGF0ZS50aXRsZSA9IFN0cmluZzo6ZnJvbVVURjgodGl0bGUpOwogICAgICAgICBkZWNvZGVGcmFt
ZVN0YXRlKGZyYW1lU3RhdGVWYXJpYW50LCBzdGF0ZS5wYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUp
OwogICAgICAgICBzdGF0ZS5wYWdlU3RhdGUuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9
IHRvV2ViQ29yZUV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKQEAgLTM1NSwxOSArMzc4LDMyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUoR1ZhcmlhbnRJdGVyKiBiYWNrRm9yd2FyZExpc3RTCiAKIHN0YXRp
YyBib29sIGRlY29kZVNlc3Npb25TdGF0ZShHQnl0ZXMqIGRhdGEsIFNlc3Npb25TdGF0ZSYgc2Vz
c2lvblN0YXRlKQogewotICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IHZhcmlhbnQgPSBnX3ZhcmlhbnRf
bmV3X2Zyb21fYnl0ZXMoR19WQVJJQU5UX1RZUEUoU0VTU0lPTl9TVEFURV9UWVBFX1NUUklOR19W
MSksIGRhdGEsIEZBTFNFKTsKLSAgICBpZiAoIWdfdmFyaWFudF9pc19ub3JtYWxfZm9ybSh2YXJp
YW50LmdldCgpKSkKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc2Vzc2lvblN0YXRlVHlwZVN0cmlu
Z1ZlcnNpb25zW10gPSB7CisgICAgICAgIFNFU1NJT05fU1RBVEVfVFlQRV9TVFJJTkdfVjIsCisg
ICAgICAgIFNFU1NJT05fU1RBVEVfVFlQRV9TVFJJTkdfVjEsCisgICAgICAgIG51bGxwdHIKKyAg
ICB9OworICAgIGNvbnN0IGNoYXIqIHNlc3Npb25TdGF0ZVR5cGVTdHJpbmcgPSBudWxscHRyOwor
ICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IHZhcmlhbnQ7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
c2Vzc2lvblN0YXRlVHlwZVN0cmluZ1ZlcnNpb25zW2ldOyArK2kpIHsKKyAgICAgICAgc2Vzc2lv
blN0YXRlVHlwZVN0cmluZyA9IHNlc3Npb25TdGF0ZVR5cGVTdHJpbmdWZXJzaW9uc1tpXTsKKyAg
ICAgICAgdmFyaWFudCA9IGdfdmFyaWFudF9uZXdfZnJvbV9ieXRlcyhHX1ZBUklBTlRfVFlQRShz
ZXNzaW9uU3RhdGVUeXBlU3RyaW5nKSwgZGF0YSwgRkFMU0UpOworICAgICAgICBpZiAoZ192YXJp
YW50X2lzX25vcm1hbF9mb3JtKHZhcmlhbnQuZ2V0KCkpKQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHZhcmlhbnQgPSBudWxscHRyOworICAgIH0KKyAgICBpZiAoIXZhcmlhbnQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGd1aW50MTYgdmVyc2lvbjsKICAgICBHVW5pcXVlT3V0
UHRyPEdWYXJpYW50SXRlcj4gYmFja0ZvcndhcmRMaXN0U3RhdGVJdGVyOwogICAgIGdib29sZWFu
IGhhc0N1cnJlbnRJbmRleDsKICAgICBndWludDMyIGN1cnJlbnRJbmRleDsKLSAgICBnX3Zhcmlh
bnRfZ2V0KHZhcmlhbnQuZ2V0KCksIFNFU1NJT05fU1RBVEVfVFlQRV9TVFJJTkdfVjEsICZ2ZXJz
aW9uLCAmYmFja0ZvcndhcmRMaXN0U3RhdGVJdGVyLm91dFB0cigpLCAmaGFzQ3VycmVudEluZGV4
LCAmY3VycmVudEluZGV4KTsKKyAgICBnX3ZhcmlhbnRfZ2V0KHZhcmlhbnQuZ2V0KCksIHNlc3Np
b25TdGF0ZVR5cGVTdHJpbmcsICZ2ZXJzaW9uLCAmYmFja0ZvcndhcmRMaXN0U3RhdGVJdGVyLm91
dFB0cigpLCAmaGFzQ3VycmVudEluZGV4LCAmY3VycmVudEluZGV4KTsKICAgICBpZiAoIXZlcnNp
b24gfHwgdmVyc2lvbiA+IGdfc2Vzc2lvblN0YXRlVmVyc2lvbikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgZGVjb2RlQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKGJhY2tGb3J3YXJkTGlz
dFN0YXRlSXRlci5nZXQoKSwgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRlKTsKKyAg
ICBkZWNvZGVCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUoYmFja0ZvcndhcmRMaXN0U3RhdGVJdGVy
LmdldCgpLCBzZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0U3RhdGUsIHZlcnNpb24pOwogCiAg
ICAgaWYgKGhhc0N1cnJlbnRJbmRleCkKICAgICAgICAgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJk
TGlzdFN0YXRlLmN1cnJlbnRJbmRleCA9IHN0ZDo6bWluPHVpbnQzMl90PihjdXJyZW50SW5kZXgs
IHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5zaXplKCkgLSAxKTsK
</data>
<flag name="review"
          id="357122"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>