<?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>283356</bug_id>
          
          <creation_ts>2024-11-19 05:23:39 -0800</creation_ts>
          <short_desc>wtf/SHA1.cpp fails to build with Clang 18 and -Wunsafe-buffer-usage</short_desc>
          <delta_ts>2024-11-19 10:07:35 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Bentzen">cadubentzen</reporter>
          <assigned_to name="Carlos Bentzen">cadubentzen</assigned_to>
          <cc>ap</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2076105</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2024-11-19 05:23:39 -0800</bug_when>
    <thetext>```
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:111:9: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  111 |         m_buffer[m_cursor++] = std::to_integer&lt;uint8_t&gt;(byte);
      |         ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:124:30: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  124 |         uint32_t hashValue = m_hash[i];
      |                              ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:137:5: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  137 |     m_buffer[m_cursor++] = 0x80;
      |     ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:141:13: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  141 |             m_buffer[m_cursor++] = 0x00;
      |             ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:146:9: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  146 |         m_buffer[i] = 0x00;
      |         ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:151:9: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  151 |         m_buffer[56 + (7 - i)] = bits &amp; 0xFF;
      |         ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:164:17: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  164 |         w[t] = (m_buffer[t * 4] &lt;&lt; 24) | (m_buffer[t * 4 + 1] &lt;&lt; 16) | (m_buffer[t * 4 + 2] &lt;&lt; 8) | m_buffer[t * 4 + 3];
      |                 ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:164:43: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  164 |         w[t] = (m_buffer[t * 4] &lt;&lt; 24) | (m_buffer[t * 4 + 1] &lt;&lt; 16) | (m_buffer[t * 4 + 2] &lt;&lt; 8) | m_buffer[t * 4 + 3];
      |                                           ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:164:73: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  164 |         w[t] = (m_buffer[t * 4] &lt;&lt; 24) | (m_buffer[t * 4 + 1] &lt;&lt; 16) | (m_buffer[t * 4 + 2] &lt;&lt; 8) | m_buffer[t * 4 + 3];
      |                                                                         ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:164:101: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  164 |         w[t] = (m_buffer[t * 4] &lt;&lt; 24) | (m_buffer[t * 4 + 1] &lt;&lt; 16) | (m_buffer[t * 4 + 2] &lt;&lt; 8) | m_buffer[t * 4 + 3];
      |                                                                                                     ^~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:169:18: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  169 |     uint32_t b = m_hash[1];
      |                  ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:170:18: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  170 |     uint32_t c = m_hash[2];
      |                  ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:171:18: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  171 |     uint32_t d = m_hash[3];
      |                  ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:172:18: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  172 |     uint32_t e = m_hash[4];
      |                  ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:184:5: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  184 |     m_hash[1] += b;
      |     ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:185:5: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  185 |     m_hash[2] += c;
      |     ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:186:5: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  186 |     m_hash[3] += d;
      |     ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:187:5: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
  187 |     m_hash[4] += e;
      |     ^~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:162:14: error: &apos;w&apos; is an unsafe buffer that does not perform bounds checks [-Werror,-Wunsafe-buffer-usage]
  162 |     uint32_t w[80] = { 0 };
      |     ~~~~~~~~~^~~~~~~~~~~~~
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:164:9: note: used in buffer access here
  164 |         w[t] = (m_buffer[t * 4] &lt;&lt; 24) | (m_buffer[t * 4 + 1] &lt;&lt; 16) | (m_buffer[t * 4 + 2] &lt;&lt; 8) | m_buffer[t * 4 + 3];
      |         ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:166:64: note: used in buffer access here
  166 |         w[t] = rotateLeft(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);
      |                                                                ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:166:52: note: used in buffer access here
  166 |         w[t] = rotateLeft(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);
      |                                                    ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:166:41: note: used in buffer access here
  166 |         w[t] = rotateLeft(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);
      |                                         ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:166:30: note: used in buffer access here
  166 |         w[t] = rotateLeft(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);
      |                              ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:166:9: note: used in buffer access here
  166 |         w[t] = rotateLeft(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);
      |         ^
/host/home/cadubentzen/Projects/UpstreamWebKit/WebKit/Source/WTF/wtf/SHA1.cpp:175:64: note: used in buffer access here
  175 |         uint32_t temp = rotateLeft(5, a) + f(t, b, c, d) + e + w[t] + k(t);
      |                                                                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
```

(working on a patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076106</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2024-11-19 05:31:46 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/36845</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076137</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-19 07:55:10 -0800</bug_when>
    <thetext>Committed 286802@main (3a08f985baf7): &lt;https://commits.webkit.org/286802@main&gt;

Reviewed commits have been landed. Closing PR #36845 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076138</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-19 07:56:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/140199592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076163</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2024-11-19 10:07:35 -0800</bug_when>
    <thetext>I don&apos;t think that this is Gtk specific, re-titling. Thank you for the fix!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>