<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/130185>130185</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Can Len - 1 in HeaderMapImpl::getString overflow?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
question
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shafik
</td>
</tr>
</table>
<pre>
A static analysis tool flags `Len - 1` for possible overflow if `Len` has the value `0`:
https://github.com/llvm/llvm-project/blob/27c788de759472316169795fa06d592221ac602e/clang/lib/Lex/HeaderMap.cpp#L161
A naive reading of the code does seem to indeed lead one to believe that `MaxLen` and `Len` could both be zero. I can't really convince myself this can't happen but maybe there is a constraint I am missing that prevents this.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUks-OnDAMxp8mXKwdgTPAcOAwbYW60u6pT-AkBtKGhJJAd_r0VabTba-VkFAs__ns70cx2skz96L-IOpPBe1pDlsfZxrtt0IFc-uvEBMlq4E8uVu0EVIIDkZHUwTRlC_s4Qkq0ZQwhg3WEKNVjiEcvI0u_AA7PtJyykwR0sxwkNs5x0vRlEJeRZm_OaU15hcOAofJpnlXJx0WgYNzx5_f07qFr6yTwEG5oAQO2Or2cjHc1t25RVk1VdO1XT1S2Zi6Q8SKdFMiCxy0Iz_lRjYXvvCbwOEzk-HtldaTXleB8qVqqt-CruDJHgwbk7F-gjDe1etgGEzgCJF5gRTAesNswDEZCJ5zSLGzfDCkmVLe9JXeHkcgb_45iQ67M6BCmkEx_OQtnOAZNHmBbcqTnbuBDv6wXjMst8guq7DxPWemdWUPak-w0E3lkbwx2AiUC2PayPoEz0ALLDbGvMld1brxwT7Fe7tTYXppOtlRwX3VnivsLq1sirm_VJfWGMNo8KxkaWpWpLnSqCS32OnC9lhiXcqyQSxr2ZwqvoyaGzlq2bTNOIpzyQtZd8r-ncI2FTbGnftKltWlLhwpdvEOIeL3nWOywQvEjOTW3z1X-xTFuXQ2pvi3S7LJcf-RPDwwBOvh3c7nZXWZJnmdOH1J293BB5ZCDsW-uf6_kbsLjwKHh_ajx18BAAD__0VPDb8">