<?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>240200</bug_id>
          
          <creation_ts>2022-05-06 19:08:33 -0700</creation_ts>
          <short_desc>[SOUP2] Compute number of header bytes whe using soup 2</short_desc>
          <delta_ts>2022-05-16 15:27:11 -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>WPE WebKit</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>dpino</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867422</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2022-05-06 19:08:33 -0700</bug_when>
    <thetext>[SOUP2] Compute number of header bytes whe using soup 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867424</commentid>
    <comment_count>1</comment_count>
      <attachid>458986</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2022-05-06 19:12:35 -0700</bug_when>
    <thetext>Created attachment 458986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867454</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-05-07 01:05:39 -0700</bug_when>
    <thetext>Why not using soup3 instead? I&apos;m not sure we want to add new features to soup2 code path at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867536</commentid>
    <comment_count>3</comment_count>
      <attachid>458986</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-05-08 14:23:34 -0700</bug_when>
    <thetext>Comment on attachment 458986
Patch

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

&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1277
&gt; +            int requestHeadersSize = 0;

Seems like this should be uint64_t, not int. Unlikely we will overrun 32 bits, but why mix types unnecessarily? Since requestHeaderBytesSent is uint64_t, and strlen returns size_t there is no reason to involve int.

Of course we also have to make addHeaderSizes use the same type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867541</commentid>
    <comment_count>4</comment_count>
      <attachid>458986</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-05-08 16:39:40 -0700</bug_when>
    <thetext>Comment on attachment 458986
Patch

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

Doesn&apos;t seem like a very large amount of code to maintain compared to the rest of the soup2 code, though. I&apos;m sure they&apos;ll switch to soup3 after upgrading to Ubuntu 22.04. In the meantime, even GNOME hasn&apos;t managed to switch WebKit over yet.

&gt; Source/WebKit/ChangeLog:3
&gt; +        [SOUP2] Compute number of header bytes whe using soup 2

when

&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1224
&gt; +    int* size = static_cast&lt;int*&gt;(pointer);

I would use unsigned here instead of int. Also, you can use GPOINTER_TO_UINT, which is a little self-documenting.

&gt;&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1277
&gt;&gt; +            int requestHeadersSize = 0;
&gt; 
&gt; Seems like this should be uint64_t, not int. Unlikely we will overrun 32 bits, but why mix types unnecessarily? Since requestHeaderBytesSent is uint64_t, and strlen returns size_t there is no reason to involve int.
&gt; 
&gt; Of course we also have to make addHeaderSizes use the same type.

Hm, very good catch, Darin! But since gpointer may be 32 bytes, you really cannot use uint64_t here without more changes. unsigned int would work, though.

I think you could use uint64_t if you switch from soup_message_headers_foreach() to SoupMessageHeadersIter. The code won&apos;t be as nice, but seems worth it to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867542</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-05-08 16:43:57 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; since gpointer may be 32 bytes

Um, of course I mean 4 bytes, 32 bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867583</commentid>
    <comment_count>6</comment_count>
      <attachid>458986</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-05-09 00:05:29 -0700</bug_when>
    <thetext>Comment on attachment 458986
Patch

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

&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1225
&gt; +    *size += strlen(name) + strlen(value) + 4;

Where does the “4” come from? Knowing how HTTP works and how Soup formats
requests, I personally know that it&apos;s one byte for the colon, one byte for
the space after it, and two more bytes for the CRLF sequence at the end of
the line; but having a comment here explaining this would help other people
reading the code ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867624</commentid>
    <comment_count>7</comment_count>
      <attachid>458986</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-05-09 07:32:37 -0700</bug_when>
    <thetext>Comment on attachment 458986
Patch

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

&gt;&gt;&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1277
&gt;&gt;&gt; +            int requestHeadersSize = 0;
&gt;&gt; 
&gt;&gt; Seems like this should be uint64_t, not int. Unlikely we will overrun 32 bits, but why mix types unnecessarily? Since requestHeaderBytesSent is uint64_t, and strlen returns size_t there is no reason to involve int.
&gt;&gt; 
&gt;&gt; Of course we also have to make addHeaderSizes use the same type.
&gt; 
&gt; Hm, very good catch, Darin! But since gpointer may be 32 bytes, you really cannot use uint64_t here without more changes. unsigned int would work, though.
&gt; 
&gt; I think you could use uint64_t if you switch from soup_message_headers_foreach() to SoupMessageHeadersIter. The code won&apos;t be as nice, but seems worth it to me.

That’s not quite right. The gpointer here is a *pointer* to the int, the one I suggested changing to uint64_t, not the int *converted* to a pointer, so the size of gpointer is not a concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867634</commentid>
    <comment_count>8</comment_count>
      <attachid>458986</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-05-09 07:47:30 -0700</bug_when>
    <thetext>Comment on attachment 458986
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1277
&gt;&gt;&gt;&gt; +            int requestHeadersSize = 0;
&gt;&gt;&gt; 
&gt;&gt;&gt; Seems like this should be uint64_t, not int. Unlikely we will overrun 32 bits, but why mix types unnecessarily? Since requestHeaderBytesSent is uint64_t, and strlen returns size_t there is no reason to involve int.
&gt;&gt;&gt; 
&gt;&gt;&gt; Of course we also have to make addHeaderSizes use the same type.
&gt;&gt; 
&gt;&gt; Hm, very good catch, Darin! But since gpointer may be 32 bytes, you really cannot use uint64_t here without more changes. unsigned int would work, though.
&gt;&gt; 
&gt;&gt; I think you could use uint64_t if you switch from soup_message_headers_foreach() to SoupMessageHeadersIter. The code won&apos;t be as nice, but seems worth it to me.
&gt; 
&gt; That’s not quite right. The gpointer here is a *pointer* to the int, the one I suggested changing to uint64_t, not the int *converted* to a pointer, so the size of gpointer is not a concern.

Um... yes. Wow, everything that I wrote was wrong. So better ignore my entire previous comment, and just switch to uint64_t like Darin suggests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867737</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2022-05-09 12:42:36 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; Why not using soup3 instead? I&apos;m not sure we want to add new features to
&gt; soup2 code path at this point.

Ubuntu 20.04 LTS comes with libsoup2 only and this is where most of our linux users are and as far as I understand (https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy) it&apos;s going to be supported by WebKit for one more year. We might be able to switch to soup3 if the new flatpak based packaging works (https://bugs.webkit.org/show_bug.cgi?id=237107) and we bundle libsoup along with the browser binaries but for now we depend on the host libraries.

(In reply to Adrian Perez from comment #6)
&gt; Comment on attachment 458986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458986&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1225
&gt; &gt; +    *size += strlen(name) + strlen(value) + 4;
&gt; 
&gt; Where does the “4” come from? Knowing how HTTP works and how Soup formats
&gt; requests, I personally know that it&apos;s one byte for the colon, one byte for
&gt; the space after it, and two more bytes for the CRLF sequence at the end of
&gt; the line; but having a comment here explaining this would help other people
&gt; reading the code ;-)

Added a comment explaining the format.


(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 458986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458986&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:1277
&gt; &gt; +            int requestHeadersSize = 0;
&gt; 
&gt; Seems like this should be uint64_t, not int. Unlikely we will overrun 32
&gt; bits, but why mix types unnecessarily? Since requestHeaderBytesSent is
&gt; uint64_t, and strlen returns size_t there is no reason to involve int.
&gt; 
&gt; Of course we also have to make addHeaderSizes use the same type.

Changed the code to use uint64_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867738</commentid>
    <comment_count>10</comment_count>
      <attachid>459069</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2022-05-09 12:43:08 -0700</bug_when>
    <thetext>Created attachment 459069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869339</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2022-05-16 11:35:19 -0700</bug_when>
    <thetext>Carlos, Michael, what is the conclusion on this change given all the considerations about soup 2 support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869380</commentid>
    <comment_count>12</comment_count>
      <attachid>459069</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-05-16 12:52:55 -0700</bug_when>
    <thetext>Comment on attachment 459069
Patch

It&apos;s not very much code. Let&apos;s just do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869384</commentid>
    <comment_count>13</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-05-16 13:24:31 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)
&gt; Comment on attachment 459069 [details]
&gt; Patch
&gt; 
&gt; It&apos;s not very much code. Let&apos;s just do it.

FWIW, I agree, it&apos;ll be good to have this patch applied :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869449</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 15:27:06 -0700</bug_when>
    <thetext>Committed r294268 (250616@main): &lt;https://commits.webkit.org/250616@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459069.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458986</attachid>
            <date>2022-05-06 19:12:35 -0700</date>
            <delta_ts>2022-05-09 12:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240200-20220506191234.patch</filename>
            <type>text/plain</type>
            <size>3063</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZTdmNWY5NjQ1YWUyYjg2
MWQ5Y2UwOTVjNTc0MmM4YjRlMDZjOTIuLjc3NTUzZDVlYzQ0OGZkMmE1NDA5NjBmNGEwOWMzYjZj
N2JlMmJiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDUtMDYgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NPVVAyXSBDb21wdXRl
IG51bWJlciBvZiBoZWFkZXIgYnl0ZXMgd2hlIHVzaW5nIHNvdXAgMgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjAwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU09VUCAyIGxhY2tzIG1ldGhvZHMgdGhh
dCBhbGxvdyB0byBnZXQgY29tcHV0ZWQgaGVhZCBzaXplcyAob25seSBwcmVzZW50IGluIHYzKSwK
KyAgICAgICAgY2FsY3VsYXRlIHRoZSBzaXplcyBtYW51YWxseSB3aGVuIGxpYnNvdXAgMiBpcyB1
c2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsuaHRtbAorICAg
ICAgICB3aGVuIGNvbXBpbGVkIHdpdGggU09VUCAyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkSGVh
ZGVyU2l6ZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRI
ZWFkZXJzKToKKwogMjAyMi0wNS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIEluaXRpYWxpemUgZW1wdHkgYW5kIG51bGwgQXRvbVN0cmluZyBh
dCBjb21waWxlIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCBkZWEwOWJiYzViNThlZjFkNDEx
M2NkNjNhZjJjOTc2YWRlNTg4YjA2Li5kMzU3M2U2NDcyNzA0OGRlNTI1OTk4N2RhMGJkZmRlODFl
NjkwODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC0xMjE4LDYgKzEyMTgsMTQgQEAgV2ViQ29y
ZTo6QWRkaXRpb25hbE5ldHdvcmtMb2FkTWV0cmljc0ZvcldlYkluc3BlY3RvciYgTmV0d29ya0Rh
dGFUYXNrU291cDo6YWRkaXQKICAgICByZXR1cm4gKm1fbmV0d29ya0xvYWRNZXRyaWNzLmFkZGl0
aW9uYWxOZXR3b3JrTG9hZE1ldHJpY3NGb3JXZWJJbnNwZWN0b3I7CiB9CiAKKyNpZiBVU0UoU09V
UDIpCitzdGF0aWMgdm9pZCBhZGRIZWFkZXJTaXplcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj
aGFyICp2YWx1ZSwgZ3BvaW50ZXIgcG9pbnRlcikKK3sKKyAgICBpbnQqIHNpemUgPSBzdGF0aWNf
Y2FzdDxpbnQqPihwb2ludGVyKTsKKyAgICAqc2l6ZSArPSBzdHJsZW4obmFtZSkgKyBzdHJsZW4o
dmFsdWUpICsgNDsKK30KKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdl
dEhlYWRlcnMoKQogewogICAgIC8vIFdlIGFyZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRo
IHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwgc3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3Jl
LApAQCAtMTI2Myw2ICsxMjcxLDIwIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0
SGVhZGVycygpCiAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLnRsc1Byb3RvY29sID0gdGxzUHJv
dG9jb2xWZXJzaW9uVG9TdHJpbmcoc291cF9tZXNzYWdlX2dldF90bHNfcHJvdG9jb2xfdmVyc2lv
bihtX3NvdXBNZXNzYWdlLmdldCgpKSk7CiAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLnRsc0Np
cGhlciA9IFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF90bHNfY2lwaGVyc3VpdGVf
bmFtZShtX3NvdXBNZXNzYWdlLmdldCgpKSk7CiAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLnJl
c3BvbnNlSGVhZGVyQnl0ZXNSZWNlaXZlZCA9IHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9yZXNw
b25zZV9oZWFkZXJfYnl0ZXNfcmVjZWl2ZWQobWV0cmljcyk7CisjZWxzZQorICAgICAgICB7Cisg
ICAgICAgICAgICBhdXRvKiByZXF1ZXN0SGVhZGVycyA9IHNvdXBfbWVzc2FnZV9nZXRfcmVxdWVz
dF9oZWFkZXJzKG1fc291cE1lc3NhZ2UuZ2V0KCkpOworICAgICAgICAgICAgaW50IHJlcXVlc3RI
ZWFkZXJzU2l6ZSA9IDA7CisgICAgICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19mb3JlYWNo
KHJlcXVlc3RIZWFkZXJzLCBhZGRIZWFkZXJTaXplcywgJnJlcXVlc3RIZWFkZXJzU2l6ZSk7Cisg
ICAgICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5yZXF1ZXN0SGVhZGVyQnl0ZXNTZW50ID0gcmVx
dWVzdEhlYWRlcnNTaXplOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byogcmVzcG9uc2VIZWFkZXJzID0gc291cF9tZXNzYWdlX2dldF9yZXNwb25zZV9oZWFkZXJzKG1f
c291cE1lc3NhZ2UuZ2V0KCkpOworICAgICAgICAgICAgaW50IHJlc3BvbnNlSGVhZGVyc1NpemUg
PSAwOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfZm9yZWFjaChyZXNwb25zZUhl
YWRlcnMsIGFkZEhlYWRlclNpemVzLCAmcmVzcG9uc2VIZWFkZXJzU2l6ZSk7CisgICAgICAgICAg
ICBhZGRpdGlvbmFsTWV0cmljcy5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25z
ZUhlYWRlcnNTaXplOworICAgICAgICB9CiAjZW5kaWYKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459069</attachid>
            <date>2022-05-09 12:43:08 -0700</date>
            <delta_ts>2022-05-16 15:27:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240200-20220509124307.patch</filename>
            <type>text/plain</type>
            <size>3141</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZTdmNWY5NjQ1YWUyYjg2
MWQ5Y2UwOTVjNTc0MmM4YjRlMDZjOTIuLjc3NTUzZDVlYzQ0OGZkMmE1NDA5NjBmNGEwOWMzYjZj
N2JlMmJiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDUtMDYgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NPVVAyXSBDb21wdXRl
IG51bWJlciBvZiBoZWFkZXIgYnl0ZXMgd2hlIHVzaW5nIHNvdXAgMgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjAwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU09VUCAyIGxhY2tzIG1ldGhvZHMgdGhh
dCBhbGxvdyB0byBnZXQgY29tcHV0ZWQgaGVhZCBzaXplcyAob25seSBwcmVzZW50IGluIHYzKSwK
KyAgICAgICAgY2FsY3VsYXRlIHRoZSBzaXplcyBtYW51YWxseSB3aGVuIGxpYnNvdXAgMiBpcyB1
c2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsuaHRtbAorICAg
ICAgICB3aGVuIGNvbXBpbGVkIHdpdGggU09VUCAyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkSGVh
ZGVyU2l6ZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRI
ZWFkZXJzKToKKwogMjAyMi0wNS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIEluaXRpYWxpemUgZW1wdHkgYW5kIG51bGwgQXRvbVN0cmluZyBh
dCBjb21waWxlIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCBkZWEwOWJiYzViNThlZjFkNDEx
M2NkNjNhZjJjOTc2YWRlNTg4YjA2Li4wMzAxODVhNzkxMDEzOTRjMzg4MTNkYmFiZjA5NWIzZmFl
ZmJiODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC0xMjE4LDYgKzEyMTgsMTUgQEAgV2ViQ29y
ZTo6QWRkaXRpb25hbE5ldHdvcmtMb2FkTWV0cmljc0ZvcldlYkluc3BlY3RvciYgTmV0d29ya0Rh
dGFUYXNrU291cDo6YWRkaXQKICAgICByZXR1cm4gKm1fbmV0d29ya0xvYWRNZXRyaWNzLmFkZGl0
aW9uYWxOZXR3b3JrTG9hZE1ldHJpY3NGb3JXZWJJbnNwZWN0b3I7CiB9CiAKKyNpZiBVU0UoU09V
UDIpCitzdGF0aWMgdm9pZCBhZGRIZWFkZXJTaXplcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj
aGFyICp2YWx1ZSwgZ3BvaW50ZXIgcG9pbnRlcikKK3sKKyAgICB1aW50NjRfdCogc2l6ZSA9IHN0
YXRpY19jYXN0PHVpbnQ2NF90Kj4ocG9pbnRlcik7CisgICAgLy8gRWFjaCBoZWFkZXIgaXMgZm9y
bWF0dGVkIGFzICI8bmFtZT46IDx2YWx1ZT5cclxuIgorICAgICpzaXplICs9IHN0cmxlbihuYW1l
KSArIHN0cmxlbih2YWx1ZSkgKyA0OworfQorI2VuZGlmCisKIHZvaWQgTmV0d29ya0RhdGFUYXNr
U291cDo6ZGlkR2V0SGVhZGVycygpCiB7CiAgICAgLy8gV2UgYXJlIGEgYml0IG1vcmUgY29uc2Vy
dmF0aXZlIHdpdGggdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBzdG9yYWdlIHRoYW4gdGhlIHNl
c3Npb24gc3RvcmUsCkBAIC0xMjYzLDYgKzEyNzIsMjAgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tT
b3VwOjpkaWRHZXRIZWFkZXJzKCkKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MudGxzUHJvdG9j
b2wgPSB0bHNQcm90b2NvbFZlcnNpb25Ub1N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3Rsc19wcm90
b2NvbF92ZXJzaW9uKG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKICAgICAgICAgYWRkaXRpb25hbE1l
dHJpY3MudGxzQ2lwaGVyID0gU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3Rsc19j
aXBoZXJzdWl0ZV9uYW1lKG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gc291cF9tZXNzYWdlX21ldHJp
Y3NfZ2V0X3Jlc3BvbnNlX2hlYWRlcl9ieXRlc19yZWNlaXZlZChtZXRyaWNzKTsKKyNlbHNlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8qIHJlcXVlc3RIZWFkZXJzID0gc291cF9tZXNzYWdl
X2dldF9yZXF1ZXN0X2hlYWRlcnMobV9zb3VwTWVzc2FnZS5nZXQoKSk7CisgICAgICAgICAgICB1
aW50NjRfdCByZXF1ZXN0SGVhZGVyc1NpemUgPSAwOworICAgICAgICAgICAgc291cF9tZXNzYWdl
X2hlYWRlcnNfZm9yZWFjaChyZXF1ZXN0SGVhZGVycywgYWRkSGVhZGVyU2l6ZXMsICZyZXF1ZXN0
SGVhZGVyc1NpemUpOworICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVzdEhlYWRl
ckJ5dGVzU2VudCA9IHJlcXVlc3RIZWFkZXJzU2l6ZTsKKyAgICAgICAgfQorCisgICAgICAgIHsK
KyAgICAgICAgICAgIGF1dG8qIHJlc3BvbnNlSGVhZGVycyA9IHNvdXBfbWVzc2FnZV9nZXRfcmVz
cG9uc2VfaGVhZGVycyhtX3NvdXBNZXNzYWdlLmdldCgpKTsKKyAgICAgICAgICAgIHVpbnQ2NF90
IHJlc3BvbnNlSGVhZGVyc1NpemUgPSAwOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRl
cnNfZm9yZWFjaChyZXNwb25zZUhlYWRlcnMsIGFkZEhlYWRlclNpemVzLCAmcmVzcG9uc2VIZWFk
ZXJzU2l6ZSk7CisgICAgICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5yZXNwb25zZUhlYWRlckJ5
dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlcnNTaXplOworICAgICAgICB9CiAjZW5kaWYKICAg
ICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>