diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-131/semmle/NoSpaceForZeroTerminator/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-131/semmle/NoSpaceForZeroTerminator/test.cpp index b0db8dea6ef..2946c6af4a4 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-131/semmle/NoSpaceForZeroTerminator/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-131/semmle/NoSpaceForZeroTerminator/test.cpp @@ -107,3 +107,19 @@ void bad9(wchar_t *wstr) { wcscpy(wbuffer, wstr); delete wbuffer; } + +void good3(char *str) { + // GOOD -- zero-termination not required for this printf + char *buffer = (char *)malloc(strlen(str)); + decode(buffer, str); + wprintf(L"%p", buffer); + free(buffer); +} + +void good4(char *str) { + // GOOD -- zero-termination not required for this printf + char *buffer = (char *)malloc(strlen(str)); + decode(buffer, str); + wprintf(L"%.*s", strlen(str), buffer); + free(buffer); +}