File tree Expand file tree Collapse file tree
cpp/ql/test/query-tests/Security/CWE/CWE-131/semmle/NoSpaceForZeroTerminator Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44typedef unsigned long size_t ;
55
66void *malloc (size_t size);
7+ void *realloc (void *ptr, size_t size);
8+ void *calloc (size_t nmemb, size_t size);
79void free (void *ptr);
810size_t strlen (const char *s);
11+ size_t wcslen (const wchar_t *s);
12+ char *strcpy (char *s1, const char *s2);
13+ wchar_t *wcscpy (wchar_t *s1, const wchar_t *s2);
914
1015namespace std
1116{
@@ -47,4 +52,23 @@ void good1(char *str) {
4752 free (buffer);
4853}
4954
55+ void bad2 (wchar_t *str) {
56+ // BAD -- Not allocating space for '\0' terminator [NOT DETECTED]
57+ wchar_t *buffer = (wchar_t *)calloc (wcslen (str), sizeof (wchar_t ));
58+ wcscpy (buffer, str);
59+ free (buffer);
60+ }
61+
62+ void bad3 (wchar_t *str) {
63+ // BAD -- Not allocating space for '\0' terminator [NOT DETECTED]
64+ wchar_t *buffer = (wchar_t *)calloc (sizeof (wchar_t ), wcslen (str));
65+ wcscpy (buffer, str);
66+ free (buffer);
67+ }
5068
69+ void bad4 (char *str) {
70+ // BAD -- Not allocating space for '\0' terminator [NOT DETECTED]
71+ char *buffer = (char *)realloc (0 , strlen (str));
72+ strcpy (buffer, str);
73+ free (buffer);
74+ }
You can’t perform that action at this time.
0 commit comments