Skip to content

Commit d06eb3e

Browse files
committed
std.cfg: Added support for strcat_s() (since C11).
1 parent 99bb0d9 commit d06eb3e

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

cfg/std.cfg

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4689,6 +4689,26 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
46894689
<valid>0:</valid>
46904690
</arg>
46914691
</function>
4692+
<!-- errno_t strcat_s(char *restrict dest, rsize_t destsz, const char *restrict src); // since C11-->
4693+
<function name="strcat_s">
4694+
<returnValue type="errno_t"/>
4695+
<noreturn>false</noreturn>
4696+
<leak-ignore/>
4697+
<arg nr="1">
4698+
<not-null/>
4699+
<not-uninit/>
4700+
<strz/>
4701+
<minsize type="argvalue" arg="2"/>
4702+
</arg>
4703+
<arg nr="2">
4704+
<not-uninit/>
4705+
<valid>0:</valid>
4706+
</arg>
4707+
<arg nr="3">
4708+
<not-null/>
4709+
<not-uninit/>
4710+
</arg>
4711+
</function>
46924712
<!-- errno_t strncat_s(char *restrict dest, rsize_t destsz, const char *restrict src, rsize_t count); // since C11 -->
46934713
<function name="strncat_s">
46944714
<noreturn>false</noreturn>

test/cfg/std.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3026,6 +3026,24 @@ void uninitvar_strncat(char *Ct, char *S, size_t N)
30263026
(void)strncat(Ct,S,N);
30273027
}
30283028

3029+
void uninitvar_strcat_s(char *Ct, size_t N, char *S)
3030+
{
3031+
char *ct;
3032+
char *s;
3033+
size_t n;
3034+
// cppcheck-suppress uninitvar
3035+
(void)strcat_s(ct,n,s);
3036+
// cppcheck-suppress uninitvar
3037+
(void)strcat_s(ct,N,S);
3038+
// cppcheck-suppress uninitvar
3039+
(void)strcat_s(Ct,N,s);
3040+
// cppcheck-suppress uninitvar
3041+
(void)strcat_s(Ct,n,S);
3042+
3043+
// no warning is expected for
3044+
(void)strcat_s(Ct,N,S);
3045+
}
3046+
30293047
void uninitvar_strncat_s(char *Ct, size_t N1, char *S, size_t N2)
30303048
{
30313049
char *ct;

0 commit comments

Comments
 (0)