<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60246>60246</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Possible false positive "Potential leak of memory" on C union
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sherburne
</td>
</tr>
</table>
<pre>
I'm running into a memory leak report when analyzing the following C code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct s {
union {
const char * const str;
};
};
int main() {
char * str = calloc(5, sizeof(char));
strcpy(str, "test");
struct s foo = {
.str = str
};
struct s * fah = calloc(1, sizeof(struct s));
memcpy(fah, &foo, sizeof(struct s));
free((void *) fah->str);
free(fah);
}
And the analyzer output:
<source>:19:22: warning: Potential leak of memory pointed to by 'str' [unix.Malloc]
struct s * fah = calloc(1, sizeof(struct s));
I think this is a false positive. This code is also running here: [https://godbolt.org/z/bz5vzPa8h](https://godbolt.org/z/bz5vzPa8h)
`clang -v` output:
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: x86_64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Please let me know if you need more information, or have any suggestions. Thanks!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVUGP6jgM_jXhYlG1LpT2wIEHD-kdVprDHPa2SlOXZieNqySFYX79KoV5MMyM9A6LUCHxF_uz_TmV3uuDJVqL5Q-x3M3kGDp2a9-Rq0dnaVZzc17_ErjqwY3WansAbQODhJ56dmcwJF_A0cAuwKkjC9JKc36LwNARtGwMn-JqC4obEvlGpDuRXp8AAAJzbZUZGwKRb31ojK6TTuQ_r5BPds335i88OG0Pd5Ab0Ac3qgAexOrHdXe0mu3d-u6j2PoAqpMOBG6uSx-cyB_AYrW77d0vbjBtA_RSW4GlwOpzvN9RfHAg8h0oaQwrgeVS4Ba8fiNuBZYRJ7CK30cWPjg1nAWWkSJuQSAG8kEgPqI_nbsUpWWeQn9ZjOSdWPT-ffbfe4_JtbL7mFz2Ibl37DcJ9tRfEmxld0mwaJn_1MNHX60jmnpRHlk3kVxsSyu7uch_TgX8HP96ZopefWz4Xbc3tpmUf5kDcsBjGMbwhfAnsfLoFEWp5pusEvkGUeQbOEkXZy3-feJANmhpLqPG7fvkDaxtoAYCQ30GgauJ9grE8sdo9Wvy16XIy91DM_-HjlyevyB02r7EpwftQUIrjScY2Ougj5TAc7TEsZ_MxvPvS6QjF--CSLYLYfCxPLgXuD9wU7MJCbuDwP2bwH39tjy-Pcmyi6lg-edwrO7ZiiJVRtoDzI-iSL_vymYYDMEFeiTn4_WQLZI0SSHOX9yfZ4s0TdIEqwRT_B0HnqU7UPQJr2XxT7GYy-hr3kh30hazpEjSW5znzpFsoOeGTDwSq_Z6Nf-yPkhjqNlpN1UJ95GWVjJotl7g_u9Y1UQOg8D9lm2USNze0ZEMD-QE7p-ZjeqkvuF31MrRhORVhXebwP3oI7rW9r4ST4akJzAUoCd4sXwC3cKZR7BEkbUj0LZl10-UomjYQSePUfhn8OPhQH4iG1Ug7YsXmM2add5UeSVntM6K1WKZFas8nXXrvM4QSVWLOsvaqlYrbEtVLVVTl42qymam15hinmaYY55jliapKlWbosywKtKqqMQipV5qkxhz7KMaZtr7kdZFiotiZmRNxk8vOURLJ5iM8WZc7mZuHc_M6_HgxSI12gd_8xJ0MLR-Yu91behB4PGK_W48BSKwhe3lBTMbnVk_KFeHbqwTxb3AfYx3_ZkPjv8lFQTuJ5axe1MW_wUAAP__BINAAg">