<?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>77086</bug_id>
          
          <creation_ts>2012-01-26 02:57:32 -0800</creation_ts>
          <short_desc>[GStreamer] 0.11 webkitwebsrc</short_desc>
          <delta_ts>2012-02-01 01:37:31 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>77005</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>slomo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>543009</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-26 02:57:32 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543016</commentid>
    <comment_count>1</comment_count>
      <attachid>124090</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-26 03:08:07 -0800</bug_when>
    <thetext>Created attachment 124090
0.11 webkitwebsrc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544962</commentid>
    <comment_count>2</comment_count>
      <attachid>124090</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-01-30 02:29:34 -0800</bug_when>
    <thetext>Comment on attachment 124090
0.11 webkitwebsrc

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:590
&gt; +        g_set_error(error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI, &quot;Invalid URI &apos;%s&apos;&quot;, uri);

error can be NULL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544963</commentid>
    <comment_count>3</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-01-30 02:29:55 -0800</bug_when>
    <thetext>Looks good other than that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545039</commentid>
    <comment_count>4</comment_count>
      <attachid>124090</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-30 05:28:59 -0800</bug_when>
    <thetext>Comment on attachment 124090
0.11 webkitwebsrc

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

Thanks Sebastian for the review! A couple nits + the error fix and this is good to land.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:509
&gt;      case GST_QUERY_DURATION:
&gt; -    {
&gt; -        GstFormat format;
&gt; +        {
&gt; +            GstFormat format;

It&apos;s usual for these braces to be in the same line as the case statement, and close on the same column as the c in case.

case BLA: {
    codegoeshere;
}

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:558
&gt; +    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };

static_cast&lt;&gt;, I&apos;d say let&apos;s not use the gchar defines unless it&apos;s necessary =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545079</commentid>
    <comment_count>5</comment_count>
      <attachid>124090</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-30 07:17:41 -0800</bug_when>
    <thetext>Comment on attachment 124090
0.11 webkitwebsrc

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:127
&gt; +static void webKitWebSrcNeedDataCb(GstAppSrc*, guint, gpointer);
&gt; +static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer);
&gt; +static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64, gpointer);
&gt;  
&gt; -static void webKitWebSrcStop(WebKitWebSrc* src, bool seeking);
&gt; -static gboolean webKitWebSrcSetUri(GstURIHandler*, const gchar*);
&gt; -static const gchar* webKitWebSrcGetUri(GstURIHandler*);
&gt; +static void webKitWebSrcStop(WebKitWebSrc*, bool);

You should actually continue include the variable name here for generic types like guint64 and gpointer.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:556
&gt; +const gchar * const * webKitWebSrcGetProtocols(GType)

The spacing of the asterisks is off here.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:558
&gt;&gt; +    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };
&gt; 
&gt; static_cast&lt;&gt;, I&apos;d say let&apos;s not use the gchar defines unless it&apos;s necessary =)

I think you can avoid the casts entirely if you make this something like

static const char* protocols[] = {&quot;http&quot;, &quot;https&quot;, 0};

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:568
&gt; +    WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
&gt; +    WebKitWebSrcPrivate* priv = src-&gt;priv;
&gt; +
&gt; +    return g_strdup(priv-&gt;uri);

Just make this one line: return g_strdrup(WEBKIT_WEB_SRC(handler)-&gt;priv-&gt;uri));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546116</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-31 08:56:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 124090 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124090&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:590
&gt; &gt; +        g_set_error(error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI, &quot;Invalid URI &apos;%s&apos;&quot;, uri);
&gt; 
&gt; error can be NULL

Hum but g_set_error accepts NULL error, not sure I understand the issue here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546859</commentid>
    <comment_count>7</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-02-01 00:28:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 124090 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124090&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:590
&gt; &gt; &gt; +        g_set_error(error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI, &quot;Invalid URI &apos;%s&apos;&quot;, uri);
&gt; &gt; 
&gt; &gt; error can be NULL
&gt; 
&gt; Hum but g_set_error accepts NULL error, not sure I understand the issue here.

Yes, I forgot that g_set_error() accepts NULL. Sorry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546902</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-01 01:37:31 -0800</bug_when>
    <thetext>Committed r106446: &lt;http://trac.webkit.org/changeset/106446&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124090</attachid>
            <date>2012-01-26 03:08:07 -0800</date>
            <delta_ts>2012-01-30 07:17:41 -0800</delta_ts>
            <desc>0.11 webkitwebsrc</desc>
            <filename>011-webkitwebsrc.patch</filename>
            <type>text/plain</type>
            <size>12349</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlYjQ4NjViODNiNDBmYjJhMGZiNjVhNGZkM2VjN2U5ZGJjYTI0YjBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI2IEphbiAyMDEyIDEyOjA2OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MC4xMSB3ZWJraXR3ZWJzcmMKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAgICAgICAgICB8ICAxNzAgKysrKysrKysrKysrKysrKy0tLS0KIDIgZmls
ZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBhYTQyM2FkLi5hYjM1OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTIt
MDEtMjYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHU3RyZWFtZXJdIDAuMTEgd2Via2l0d2Vic3JjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4NgorCisgICAgICAgIFBvcnQgdGhlIHdlYmtpdHdl
YnNyYyBlbGVtZW50IHRvIEdTdHJlYW1lciAwLjExIEFQSXMuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleGlzdGluZyBodHRw
IG1lZGlhIGxheW91dCB0ZXN0cyBzaG91bGQgY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAod2Via2l0X3dlYl9zcmNfY2xhc3NfaW5pdCk6CisKIDIwMTItMDEtMjUgIFlvbmcgTGkg
IDx5b2xpQHJpbS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkNWU5NzcuLmJjMTZhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xOCw2ICsxOCw3IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCIKKwogI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zMSw5
ICszMiw5IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4K
ICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNzaW5nLXBsdWdpbnMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMDksMTkg
KzExMCwyMSBAQCBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDKHdlYmtpdF93ZWJfc3JjX2RlYnVn
KTsKIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1VyaUhhbmRsZXJJbml0KGdwb2ludGVyIGdJZmFj
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg
aWZhY2VEYXRhKTsKIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRmluYWxpemUoR09iamVjdCog
b2JqZWN0KTsKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1NldFByb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3Bl
Yyk7Ci1zdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BJRCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpOwotc3RhdGlj
IEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQq
IGVsZW1lbnQsIEdzdFN0YXRlQ2hhbmdlIHRyYW5zaXRpb24pOwotc3RhdGljIGdib29sZWFuIHdl
YktpdFdlYlNyY1F1ZXJ5KEdzdFBhZCogcGFkLCBHc3RRdWVyeSogcXVlcnkpOworc3RhdGljIHZv
aWQgd2ViS2l0V2ViU3JjRmluYWxpemUoR09iamVjdCopOworc3RhdGljIHZvaWQgd2ViS2l0V2Vi
U3JjU2V0UHJvcGVydHkoR09iamVjdCosIGd1aW50LCBjb25zdCBHVmFsdWUqLCBHUGFyYW1TcGVj
Kik7CitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNHZXRQcm9wZXJ0eShHT2JqZWN0KiwgZ3VpbnQs
IEdWYWx1ZSosIEdQYXJhbVNwZWMqKTsKK3N0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJL
aXRXZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiwgR3N0U3RhdGVDaGFuZ2UpOworCitzdGF0
aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFyZW50KEdzdFBhZCosIEdzdE9iamVj
dCosIEdzdFF1ZXJ5Kik7CisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCitzdGF0aWMgZ2Jvb2xl
YW4gd2ViS2l0V2ViU3JjUXVlcnkoR3N0UGFkKiwgR3N0UXVlcnkqKTsKKyNlbmRpZgogCi1zdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNOZWVkRGF0YUNiKEdzdEFwcFNyYyogYXBwc3JjLCBndWludCBs
ZW5ndGgsIGdwb2ludGVyIHVzZXJEYXRhKTsKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3Vn
aERhdGFDYihHc3RBcHBTcmMqIGFwcHNyYywgZ3BvaW50ZXIgdXNlckRhdGEpOwotc3RhdGljIGdi
b29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBwU3JjKiBhcHBzcmMsIGd1aW50NjQg
b2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0YSk7CitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNOZWVk
RGF0YUNiKEdzdEFwcFNyYyosIGd1aW50LCBncG9pbnRlcik7CitzdGF0aWMgdm9pZCB3ZWJLaXRX
ZWJTcmNFbm91Z2hEYXRhQ2IoR3N0QXBwU3JjKiwgZ3BvaW50ZXIpOworc3RhdGljIGdib29sZWFu
IHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBwU3JjKiwgZ3VpbnQ2NCwgZ3BvaW50ZXIpOwog
Ci1zdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNyYyogc3JjLCBib29sIHNl
ZWtpbmcpOwotc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVy
KiwgY29uc3QgZ2NoYXIqKTsKLXN0YXRpYyBjb25zdCBnY2hhciogd2ViS2l0V2ViU3JjR2V0VXJp
KEdzdFVSSUhhbmRsZXIqKTsKK3N0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0b3AoV2ViS2l0V2Vi
U3JjKiwgYm9vbCk7CiAKIHN0YXRpYyBHc3RBcHBTcmNDYWxsYmFja3MgYXBwc3JjQ2FsbGJhY2tz
ID0gewogICAgIHdlYktpdFdlYlNyY05lZWREYXRhQ2IsCkBAIC0xNDgsNyArMTUxLDExIEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2NsYXNzX2luaXQoV2ViS2l0V2ViU3JjQ2xhc3MqIGts
YXNzKQogCiAgICAgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZShla2xhc3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3Rfc3RhdGljX3BhZF90ZW1w
bGF0ZV9nZXQoJnNyY1RlbXBsYXRlKSk7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBn
c3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEoZWtsYXNzLAorI2Vsc2UKICAgICBnc3RfZWxl
bWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoZWtsYXNzLAorI2VuZGlmCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJXZWJLaXQgV2ViIHNvdXJj
ZSBlbGVtZW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdj
aGFyKikgIlNvdXJjZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnY2hhciopICJIYW5kbGVzIEhUVFAvSFRUUFMgdXJpcyIsCkBAIC0yMzUsNyArMjQyLDEzIEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2luaXQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAg
cHJpdi0+c3JjcGFkID0gZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSgic3JjIiwgdGFy
Z2V0UGFkLmdldCgpLCBwYWRUZW1wbGF0ZS5nZXQoKSk7CiAKICAgICBnc3RfZWxlbWVudF9hZGRf
cGFkKEdTVF9FTEVNRU5UKHNyYyksIHByaXYtPnNyY3BhZCk7CisKKyNpZmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQorICAgIEdTVF9PQkpFQ1RfRkxBR19TRVQocHJpdi0+c3JjcGFkLCBHU1RfUEFEX0ZM
QUdfTkVFRF9QQVJFTlQpOworICAgIGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKHByaXYtPnNy
Y3BhZCwgd2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFyZW50KTsKKyNlbHNlCiAgICAgZ3N0X3BhZF9z
ZXRfcXVlcnlfZnVuY3Rpb24ocHJpdi0+c3JjcGFkLCB3ZWJLaXRXZWJTcmNRdWVyeSk7CisjZW5k
aWYKIAogICAgIGdzdF9hcHBfc3JjX3NldF9jYWxsYmFja3MocHJpdi0+YXBwc3JjLCAmYXBwc3Jj
Q2FsbGJhY2tzLCBzcmMsIDApOwogICAgIGdzdF9hcHBfc3JjX3NldF9lbWl0X3NpZ25hbHMocHJp
di0+YXBwc3JjLCBGQUxTRSk7CkBAIC0yODYsNyArMjk5LDExIEBAIHN0YXRpYyB2b2lkIHdlYktp
dFdlYlNyY1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElELCBjb25zdCBH
VmFsdWUqCiAgICAgICAgIHByaXYtPmlyYWRpb01vZGUgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZh
bHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0xPQ0FUSU9OOgotICAgICAgICB3
ZWJLaXRXZWJTcmNTZXRVcmkocmVpbnRlcnByZXRfY2FzdDxHc3RVUklIYW5kbGVyKj4oc3JjKSwg
Z192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAg
ICAgICAgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkocmVpbnRlcnByZXRfY2FzdDxHc3RVUklIYW5k
bGVyKj4oc3JjKSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSwgMCk7CisjZWxzZQorICAgICAg
ICBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaShyZWludGVycHJldF9jYXN0PEdzdFVSSUhhbmRsZXIq
PihzcmMpLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKTsKKyNlbmRpZgogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKQEAgLTMxNiw3ICszMzMsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRXZWJTcmNHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJRCwg
R1ZhbHVlKiB2YWx1ZQogICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYtPmly
YWRpb1RpdGxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0xPQ0FUSU9OOgotICAg
ICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYktpdFdlYlNyY0dldFVyaShyZWludGVy
cHJldF9jYXN0PEdzdFVSSUhhbmRsZXIqPihzcmMpKSk7CisgICAgICAgIGdfdmFsdWVfc2V0X3N0
cmluZyh2YWx1ZSwgcHJpdi0+dXJpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElELCBw
c3BlYyk7CkBAIC00ODEsNDQgKzQ5OCwxMDQgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJu
IHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXQKICAg
ICByZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnkoR3N0
UGFkKiBwYWQsIEdzdFF1ZXJ5KiBxdWVyeSkKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNR
dWVyeVdpdGhQYXJlbnQoR3N0UGFkKiBwYWQsIEdzdE9iamVjdCogcGFyZW50LCBHc3RRdWVyeSog
cXVlcnkpCiB7Ci0gICAgR1JlZlB0cjxHc3RFbGVtZW50PiBzcmMgPSBhZG9wdEdSZWYoZ3N0X3Bh
ZF9nZXRfcGFyZW50X2VsZW1lbnQocGFkKSk7Ci0gICAgV2ViS2l0V2ViU3JjKiB3ZWJraXRTcmMg
PSBXRUJLSVRfV0VCX1NSQyhzcmMuZ2V0KCkpOworICAgIFdlYktpdFdlYlNyYyogd2Via2l0U3Jj
ID0gV0VCS0lUX1dFQl9TUkMoR1NUX0VMRU1FTlQocGFyZW50KSk7CiAgICAgZ2Jvb2xlYW4gcmVz
dWx0ID0gRkFMU0U7CiAKICAgICBzd2l0Y2ggKEdTVF9RVUVSWV9UWVBFKHF1ZXJ5KSkgewogICAg
IGNhc2UgR1NUX1FVRVJZX0RVUkFUSU9OOgotICAgIHsKLSAgICAgICAgR3N0Rm9ybWF0IGZvcm1h
dDsKKyAgICAgICAgeworICAgICAgICAgICAgR3N0Rm9ybWF0IGZvcm1hdDsKIAotICAgICAgICBn
c3RfcXVlcnlfcGFyc2VfZHVyYXRpb24ocXVlcnksICZmb3JtYXQsIE5VTEwpOworICAgICAgICAg
ICAgZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKHF1ZXJ5LCAmZm9ybWF0LCBOVUxMKTsKIAotICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHdlYmtpdFNyYywgImR1cmF0aW9uIHF1ZXJ5IGluIGZvcm1h
dCAlcyIsIGdzdF9mb3JtYXRfZ2V0X25hbWUoZm9ybWF0KSk7Ci0gICAgICAgIGlmICgoZm9ybWF0
ID09IEdTVF9GT1JNQVRfQllURVMpICYmICh3ZWJraXRTcmMtPnByaXYtPnNpemUgPiAwKSkgewot
ICAgICAgICAgICAgZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbihxdWVyeSwgZm9ybWF0LCB3ZWJraXRT
cmMtPnByaXYtPnNpemUpOwotICAgICAgICAgICAgcmVzdWx0ID0gVFJVRTsKKyAgICAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1Qod2Via2l0U3JjLCAiZHVyYXRpb24gcXVlcnkgaW4gZm9ybWF0ICVz
IiwgZ3N0X2Zvcm1hdF9nZXRfbmFtZShmb3JtYXQpKTsKKyAgICAgICAgICAgIGlmICgoZm9ybWF0
ID09IEdTVF9GT1JNQVRfQllURVMpICYmICh3ZWJraXRTcmMtPnByaXYtPnNpemUgPiAwKSkgewor
ICAgICAgICAgICAgICAgIGdzdF9xdWVyeV9zZXRfZHVyYXRpb24ocXVlcnksIGZvcm1hdCwgd2Vi
a2l0U3JjLT5wcml2LT5zaXplKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUUlVFOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7
Ci0gICAgfQogICAgIGNhc2UgR1NUX1FVRVJZX1VSSToKLSAgICB7Ci0gICAgICAgIGdzdF9xdWVy
eV9zZXRfdXJpKHF1ZXJ5LCB3ZWJraXRTcmMtPnByaXYtPnVyaSk7Ci0gICAgICAgIHJlc3VsdCA9
IFRSVUU7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgZ3N0
X3F1ZXJ5X3NldF91cmkocXVlcnksIHdlYmtpdFNyYy0+cHJpdi0+dXJpKTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IFRSVUU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgR1JlZlB0
cjxHc3RQYWQ+IHRhcmdldCA9IGFkb3B0R1JlZihnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQoR1NU
X0dIT1NUX1BBRF9DQVNUKHBhZCkpKTsKIAotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXN1
bHQgPSBnc3RfcGFkX3F1ZXJ5X2RlZmF1bHQocGFkLCBxdWVyeSk7CisgICAgICAgICAgICAvLyBG
b3J3YXJkIHRoZSBxdWVyeSB0byB0aGUgcHJveHkgdGFyZ2V0IHBhZC4KKyAgICAgICAgICAgIGlm
ICh0YXJnZXQpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ3N0X3BhZF9xdWVyeSh0YXJnZXQu
Z2V0KCksIHF1ZXJ5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorc3RhdGlj
IGdib29sZWFuIHdlYktpdFdlYlNyY1F1ZXJ5KEdzdFBhZCogcGFkLCBHc3RRdWVyeSogcXVlcnkp
Cit7CisgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBzcmMgPSBhZG9wdEdSZWYoZ3N0X3BhZF9nZXRf
cGFyZW50X2VsZW1lbnQocGFkKSk7CisgICAgcmV0dXJuIHdlYktpdFdlYlNyY1F1ZXJ5V2l0aFBh
cmVudChwYWQsIEdTVF9PQkpFQ1Qoc3JjLmdldCgpKSwgcXVlcnkpOworfQorI2VuZGlmCisKIC8v
IHVyaSBoYW5kbGVyIGludGVyZmFjZQogCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKK3N0YXRp
YyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdldFR5cGUoR1R5cGUpCit7CisgICAgcmV0dXJu
IEdTVF9VUklfU1JDOworfQorCitjb25zdCBnY2hhciAqIGNvbnN0ICogd2ViS2l0V2ViU3JjR2V0
UHJvdG9jb2xzKEdUeXBlKQoreworICAgIHN0YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7KGdj
aGFyKikgImh0dHAiLCAoZ2NoYXIqKSAiaHR0cHMiLCAwIH07CisKKyAgICByZXR1cm4gcHJvdG9j
b2xzOworfQorCitzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RVUklIYW5kbGVy
KiBoYW5kbGVyKQoreworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMoaGFu
ZGxlcik7CisgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKKworICAg
IHJldHVybiBnX3N0cmR1cChwcml2LT51cmkpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0
V2ViU3JjU2V0VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1cmksIEdF
cnJvcioqIGVycm9yKQoreworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMo
aGFuZGxlcik7CisgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKKwor
ICAgIGlmIChHU1RfU1RBVEUoc3JjKSA+PSBHU1RfU1RBVEVfUEFVU0VEKSB7CisgICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1Qoc3JjLCAiVVJJIGNhbiBvbmx5IGJlIHNldCBpbiBzdGF0ZXMgPCBQQVVT
RUQiKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIGdfZnJlZShwcml2LT51
cmkpOworICAgIHByaXYtPnVyaSA9IDA7CisKKyAgICBpZiAoIXVyaSkKKyAgICAgICAgcmV0dXJu
IFRSVUU7CisKKyAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CisKKyAgICBpZiAoIXVybC5pc1Zh
bGlkKCkgfHwgIXVybC5wcm90b2NvbEluSFRUUEZhbWlseSgpKSB7CisgICAgICAgIGdfc2V0X2Vy
cm9yKGVycm9yLCBHU1RfVVJJX0VSUk9SLCBHU1RfVVJJX0VSUk9SX0JBRF9VUkksICJJbnZhbGlk
IFVSSSAnJXMnIiwgdXJpKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIHBy
aXYtPnVyaSA9IGdfc3RyZHVwKHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1
cm4gVFJVRTsKK30KKworI2Vsc2UKIHN0YXRpYyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdl
dFR5cGUodm9pZCkKIHsKICAgICByZXR1cm4gR1NUX1VSSV9TUkM7CkBAIC01NjUsNiArNjQyLDcg
QEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVyKiBoYW5k
bGVyLCBjb25zdCBnY2hhciogdXJpKQogICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICByZXR1cm4gVFJVRTsKIH0KKyNlbmRpZgogCiBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5pdChncG9pbnRlciBnSWZhY2UsIGdwb2lu
dGVyIGlmYWNlRGF0YSkKIHsKQEAgLTcxMyw3ICs3OTEsMTMgQEAgdm9pZCBTdHJlYW1pbmdDbGll
bnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UKICAgICAgICAgbGVuZ3RoICs9IHByaXYtPnJlcXVlc3RlZE9mZnNldDsKICAgICAgICAg
Z3N0X2FwcF9zcmNfc2V0X3NpemUocHJpdi0+YXBwc3JjLCBsZW5ndGgpOwogICAgICAgICBpZiAo
IXByaXYtPmhhdmVBcHBTcmMyNykgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAg
ICAgICBHc3RTZWdtZW50KiBzZWdtZW50ID0gJkdTVF9CQVNFX1NSQyhwcml2LT5hcHBzcmMpLT5z
ZWdtZW50OworICAgICAgICAgICAgc2VnbWVudC0+ZHVyYXRpb24gPSBsZW5ndGg7CisgICAgICAg
ICAgICBzZWdtZW50LT5mb3JtYXQgPSBHU1RfRk9STUFUX0JZVEVTOworI2Vsc2UKICAgICAgICAg
ICAgIGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbigmR1NUX0JBU0VfU1JDKHByaXYtPmFwcHNyYykt
PnNlZ21lbnQsIEdTVF9GT1JNQVRfQllURVMsIGxlbmd0aCk7CisjZW5kaWYKICAgICAgICAgICAg
IGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShHU1RfRUxFTUVOVChwcml2LT5hcHBzcmMpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9tZXNzYWdlX25ld19kdXJhdGlv
bihHU1RfT0JKRUNUKHByaXYtPmFwcHNyYyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTVF9GT1JNQVRfQllURVMsIGxlbmd0
aCkpOwpAQCAtNzM2LDcgKzgyMCwxMSBAQCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZQogICAgICAg
ICB9CiAgICAgfQogCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RUYWdMaXN0KiB0
YWdzID0gZ3N0X3RhZ19saXN0X25ld19lbXB0eSgpOworI2Vsc2UKICAgICBHc3RUYWdMaXN0KiB0
YWdzID0gZ3N0X3RhZ19saXN0X25ldygpOworI2VuZGlmCiAgICAgdmFsdWUgPSByZXNwb25zZS5o
dHRwSGVhZGVyRmllbGQoImljeS1uYW1lIik7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpIHsK
ICAgICAgICAgZ19mcmVlKHByaXYtPmlyYWRpb05hbWUpOwpAQCAtNzY5LDcgKzg1NywxMSBAQCB2
b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZQogICAgIGlmIChnc3RfdGFnX2xpc3RfaXNfZW1wdHkodGFn
cykpCiAgICAgICAgIGdzdF90YWdfbGlzdF9mcmVlKHRhZ3MpOwogICAgIGVsc2UKKyNpZmRlZiBH
U1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBnc3RfcGFkX3B1c2hfZXZlbnQoR1NUX1BBRF9DQVNU
KG1fc3JjLT5wcml2LT5zcmNwYWQpLCBnc3RfZXZlbnRfbmV3X3RhZyh0YWdzKSk7CisjZWxzZQog
ICAgICAgICBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoR1NUX0VMRU1FTlQobV9zcmMp
LCBtX3NyYy0+cHJpdi0+c3JjcGFkLCB0YWdzKTsKKyNlbmRpZgogfQogCiB2b2lkIFN0cmVhbWlu
Z0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQpAQCAtNzg1LDEzICs4
NzcsMjEgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGkKIAogICAgIEdzdEJ1ZmZlciogYnVmZmVy
ID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKGxlbmd0aCk7CiAKKyNpZmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQorICAgIGdzdF9idWZmZXJfZmlsbChidWZmZXIsIDAsIGRhdGEsIGxlbmd0aCk7Cisj
ZWxzZQogICAgIG1lbWNweShHU1RfQlVGRkVSX0RBVEEoYnVmZmVyKSwgZGF0YSwgbGVuZ3RoKTsK
KyNlbmRpZgogICAgIEdTVF9CVUZGRVJfT0ZGU0VUKGJ1ZmZlcikgPSBwcml2LT5vZmZzZXQ7CiAg
ICAgcHJpdi0+b2Zmc2V0ICs9IGxlbmd0aDsKICAgICBHU1RfQlVGRkVSX09GRlNFVF9FTkQoYnVm
ZmVyKSA9IHByaXYtPm9mZnNldDsKIAogICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0gZ3N0X2FwcF9z
cmNfcHVzaF9idWZmZXIocHJpdi0+YXBwc3JjLCBidWZmZXIpOworI2lmZGVmIEdTVF9BUElfVkVS
U0lPTl8xCisgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSyAmJiByZXQgIT0gR1NUX0ZMT1dfRU9T
KQorI2Vsc2UKICAgICBpZiAocmV0ICE9IEdTVF9GTE9XX09LICYmIHJldCAhPSBHU1RfRkxPV19V
TkVYUEVDVEVEKQorI2VuZGlmCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBDT1JF
LCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotLSAKMS43LjguMw==
</data>
<flag name="review"
          id="125264"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>