Skip to content

Commit 406c186

Browse files
committed
C++: Add examples that need taint inheriting content.
1 parent 90226cd commit 406c186

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

cpp/ql/test/library-tests/dataflow/external-models/sources.expected

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@
3232
| windows.cpp:669:70:669:79 | WinHttpQueryHeadersEx output argument | remote |
3333
| windows.cpp:669:82:669:87 | WinHttpQueryHeadersEx output argument | remote |
3434
| windows.cpp:669:105:669:112 | WinHttpQueryHeadersEx output argument | remote |
35-
| windows.cpp:873:64:873:77 | HttpReceiveHttpRequest output argument | remote |
36-
| windows.cpp:881:70:881:75 | HttpReceiveRequestEntityBody output argument | remote |
37-
| windows.cpp:888:70:888:78 | HttpReceiveClientCertificate output argument | remote |
35+
| windows.cpp:897:64:897:77 | HttpReceiveHttpRequest output argument | remote |
36+
| windows.cpp:926:70:926:75 | HttpReceiveRequestEntityBody output argument | remote |
37+
| windows.cpp:933:70:933:78 | HttpReceiveClientCertificate output argument | remote |

cpp/ql/test/library-tests/dataflow/external-models/windows.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,9 @@ ULONG HttpReceiveClientCertificate(
887887
LPOVERLAPPED Overlapped
888888
);
889889

890+
void sink(PCWSTR);
891+
void sink(HANDLE);
892+
890893
void test_http_server_api(HANDLE hRequestQueue) {
891894
{
892895
HTTP_REQUEST requestBuffer;
@@ -895,6 +898,27 @@ void test_http_server_api(HANDLE hRequestQueue) {
895898
char* p = reinterpret_cast<char*>(&requestBuffer);
896899
sink(p);
897900
sink(*p); // $ ir
901+
sink(requestBuffer.pRawUrl);
902+
sink(*requestBuffer.pRawUrl); // $ MISSING: ir
903+
sink(requestBuffer.CookedUrl.pFullUrl);
904+
sink(*requestBuffer.CookedUrl.pFullUrl); // $ MISSING: ir
905+
sink(requestBuffer.Headers.KnownHeaders[0].pRawValue);
906+
sink(*requestBuffer.Headers.KnownHeaders[0].pRawValue); // $ MISSING: ir
907+
sink(requestBuffer.Headers.pUnknownHeaders[0].pRawValue);
908+
sink(*requestBuffer.Headers.pUnknownHeaders[0].pRawValue); // $ MISSING: ir
909+
sink(requestBuffer.pEntityChunks->FromFileHandle.FileHandle); // $ MISSING: ir
910+
sink(requestBuffer.pEntityChunks->FromFragmentCache.pFragmentName);
911+
sink(*requestBuffer.pEntityChunks->FromFragmentCache.pFragmentName); // $ MISSING: ir
912+
sink(requestBuffer.pEntityChunks->FromFragmentCacheEx.pFragmentName);
913+
sink(*requestBuffer.pEntityChunks->FromFragmentCacheEx.pFragmentName); // $ MISSING: ir
914+
sink(requestBuffer.pEntityChunks->FromMemory.pBuffer);
915+
sink(*(char*)requestBuffer.pEntityChunks->FromMemory.pBuffer); // $ MISSING: ir
916+
sink(requestBuffer.pSslInfo->pServerCertIssuer);
917+
sink(*requestBuffer.pSslInfo->pServerCertIssuer); // $ MISSING: ir
918+
sink(requestBuffer.pSslInfo->pServerCertSubject);
919+
sink(*requestBuffer.pSslInfo->pServerCertSubject); // $ MISSING: ir
920+
sink(requestBuffer.pSslInfo->pClientCertInfo->pCertEncoded);
921+
sink(*requestBuffer.pSslInfo->pClientCertInfo->pCertEncoded); // $ MISSING: ir
898922
}
899923
{
900924
char buffer[1024];
@@ -910,5 +934,7 @@ void test_http_server_api(HANDLE hRequestQueue) {
910934
char* p = reinterpret_cast<char*>(&certInfo);
911935
sink(p);
912936
sink(*p); // $ ir
937+
sink(certInfo.pCertEncoded);
938+
sink(*certInfo.pCertEncoded); // $ MISSING: ir
913939
}
914940
}

0 commit comments

Comments
 (0)