Skip to content

Commit b0f345a

Browse files
committed
C++: Add a test for 'RegGetValueA'.
1 parent 7bd322a commit b0f345a

3 files changed

Lines changed: 37 additions & 24 deletions

File tree

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -343,12 +343,12 @@ edges
343343
| windows.cpp:936:70:936:78 | HttpReceiveClientCertificate output argument | windows.cpp:937:15:937:48 | *& ... | provenance | Src:MaD:6 |
344344
| windows.cpp:936:70:936:78 | HttpReceiveClientCertificate output argument | windows.cpp:941:10:941:31 | * ... | provenance | Src:MaD:6 |
345345
| windows.cpp:937:15:937:48 | *& ... | windows.cpp:939:10:939:11 | * ... | provenance | |
346-
| windows.cpp:989:35:989:38 | RegQueryValueA output argument | windows.cpp:991:10:991:14 | * ... | provenance | Src:MaD:21 |
347-
| windows.cpp:996:36:996:39 | RegQueryValueW output argument | windows.cpp:998:10:998:14 | * ... | provenance | Src:MaD:24 |
348-
| windows.cpp:1004:53:1004:56 | RegQueryValueExA output argument | windows.cpp:1006:10:1006:14 | * ... | provenance | Src:MaD:22 |
349-
| windows.cpp:1012:54:1012:57 | RegQueryValueExW output argument | windows.cpp:1014:10:1014:14 | * ... | provenance | Src:MaD:23 |
350-
| windows.cpp:1020:46:1020:49 | RegQueryMultipleValuesA output argument | windows.cpp:1022:10:1022:14 | * ... | provenance | Src:MaD:19 |
351-
| windows.cpp:1028:46:1028:49 | RegQueryMultipleValuesW output argument | windows.cpp:1030:10:1030:14 | * ... | provenance | Src:MaD:20 |
346+
| windows.cpp:994:35:994:38 | RegQueryValueA output argument | windows.cpp:996:10:996:14 | * ... | provenance | Src:MaD:21 |
347+
| windows.cpp:1001:36:1001:39 | RegQueryValueW output argument | windows.cpp:1003:10:1003:14 | * ... | provenance | Src:MaD:24 |
348+
| windows.cpp:1009:53:1009:56 | RegQueryValueExA output argument | windows.cpp:1011:10:1011:14 | * ... | provenance | Src:MaD:22 |
349+
| windows.cpp:1017:54:1017:57 | RegQueryValueExW output argument | windows.cpp:1019:10:1019:14 | * ... | provenance | Src:MaD:23 |
350+
| windows.cpp:1025:46:1025:49 | RegQueryMultipleValuesA output argument | windows.cpp:1027:10:1027:14 | * ... | provenance | Src:MaD:19 |
351+
| windows.cpp:1033:46:1033:49 | RegQueryMultipleValuesW output argument | windows.cpp:1035:10:1035:14 | * ... | provenance | Src:MaD:20 |
352352
nodes
353353
| asio_streams.cpp:87:34:87:44 | read_until output argument | semmle.label | read_until output argument |
354354
| asio_streams.cpp:91:7:91:17 | recv_buffer | semmle.label | recv_buffer |
@@ -665,18 +665,18 @@ nodes
665665
| windows.cpp:937:15:937:48 | *& ... | semmle.label | *& ... |
666666
| windows.cpp:939:10:939:11 | * ... | semmle.label | * ... |
667667
| windows.cpp:941:10:941:31 | * ... | semmle.label | * ... |
668-
| windows.cpp:989:35:989:38 | RegQueryValueA output argument | semmle.label | RegQueryValueA output argument |
669-
| windows.cpp:991:10:991:14 | * ... | semmle.label | * ... |
670-
| windows.cpp:996:36:996:39 | RegQueryValueW output argument | semmle.label | RegQueryValueW output argument |
671-
| windows.cpp:998:10:998:14 | * ... | semmle.label | * ... |
672-
| windows.cpp:1004:53:1004:56 | RegQueryValueExA output argument | semmle.label | RegQueryValueExA output argument |
673-
| windows.cpp:1006:10:1006:14 | * ... | semmle.label | * ... |
674-
| windows.cpp:1012:54:1012:57 | RegQueryValueExW output argument | semmle.label | RegQueryValueExW output argument |
675-
| windows.cpp:1014:10:1014:14 | * ... | semmle.label | * ... |
676-
| windows.cpp:1020:46:1020:49 | RegQueryMultipleValuesA output argument | semmle.label | RegQueryMultipleValuesA output argument |
677-
| windows.cpp:1022:10:1022:14 | * ... | semmle.label | * ... |
678-
| windows.cpp:1028:46:1028:49 | RegQueryMultipleValuesW output argument | semmle.label | RegQueryMultipleValuesW output argument |
679-
| windows.cpp:1030:10:1030:14 | * ... | semmle.label | * ... |
668+
| windows.cpp:994:35:994:38 | RegQueryValueA output argument | semmle.label | RegQueryValueA output argument |
669+
| windows.cpp:996:10:996:14 | * ... | semmle.label | * ... |
670+
| windows.cpp:1001:36:1001:39 | RegQueryValueW output argument | semmle.label | RegQueryValueW output argument |
671+
| windows.cpp:1003:10:1003:14 | * ... | semmle.label | * ... |
672+
| windows.cpp:1009:53:1009:56 | RegQueryValueExA output argument | semmle.label | RegQueryValueExA output argument |
673+
| windows.cpp:1011:10:1011:14 | * ... | semmle.label | * ... |
674+
| windows.cpp:1017:54:1017:57 | RegQueryValueExW output argument | semmle.label | RegQueryValueExW output argument |
675+
| windows.cpp:1019:10:1019:14 | * ... | semmle.label | * ... |
676+
| windows.cpp:1025:46:1025:49 | RegQueryMultipleValuesA output argument | semmle.label | RegQueryMultipleValuesA output argument |
677+
| windows.cpp:1027:10:1027:14 | * ... | semmle.label | * ... |
678+
| windows.cpp:1033:46:1033:49 | RegQueryMultipleValuesW output argument | semmle.label | RegQueryMultipleValuesW output argument |
679+
| windows.cpp:1035:10:1035:14 | * ... | semmle.label | * ... |
680680
subpaths
681681
| test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body |
682682
| test.cpp:172:51:172:51 | x | test.cpp:164:34:164:34 | x | test.cpp:164:7:164:7 | *templateFunction3 | test.cpp:172:13:172:44 | call to templateFunction3 |

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
| windows.cpp:900:64:900:77 | HttpReceiveHttpRequest output argument | remote |
4444
| windows.cpp:929:70:929:75 | HttpReceiveRequestEntityBody output argument | remote |
4545
| windows.cpp:936:70:936:78 | HttpReceiveClientCertificate output argument | remote |
46-
| windows.cpp:989:35:989:38 | RegQueryValueA output argument | local |
47-
| windows.cpp:996:36:996:39 | RegQueryValueW output argument | local |
48-
| windows.cpp:1004:53:1004:56 | RegQueryValueExA output argument | local |
49-
| windows.cpp:1012:54:1012:57 | RegQueryValueExW output argument | local |
50-
| windows.cpp:1020:46:1020:49 | RegQueryMultipleValuesA output argument | local |
51-
| windows.cpp:1028:46:1028:49 | RegQueryMultipleValuesW output argument | local |
46+
| windows.cpp:994:35:994:38 | RegQueryValueA output argument | local |
47+
| windows.cpp:1001:36:1001:39 | RegQueryValueW output argument | local |
48+
| windows.cpp:1009:53:1009:56 | RegQueryValueExA output argument | local |
49+
| windows.cpp:1017:54:1017:57 | RegQueryValueExW output argument | local |
50+
| windows.cpp:1025:46:1025:49 | RegQueryMultipleValuesA output argument | local |
51+
| windows.cpp:1033:46:1033:49 | RegQueryMultipleValuesW output argument | local |

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -974,6 +974,11 @@ LONG RegQueryValueExW(
974974
LPDWORD lpcbData
975975
);
976976

977+
LONG RegGetValueA(
978+
HKEY hKey, LPCSTR lpSubKey, LPCSTR lpValue, DWORD flags, LPDWORD lpType, PVOID lpData,
979+
LPDWORD lpcbData
980+
);
981+
977982
LONG RegQueryMultipleValuesA(
978983
HKEY hKey, PVALENTA valList, DWORD numVals, LPSTR valueBuffer, LPDWORD totalSize
979984
);
@@ -1029,4 +1034,12 @@ void test_registry_queries(HKEY hKey) {
10291034
sink(data); // clean
10301035
sink(*data); // $ ir
10311036
}
1037+
{
1038+
BYTE data[256];
1039+
DWORD dataSize = sizeof(data);
1040+
DWORD type;
1041+
RegGetValueA(hKey, "subkey", "value", 0, &type, data, &dataSize);
1042+
sink(data); // clean
1043+
sink(*data); // $ MISSING: ir
1044+
}
10321045
}

0 commit comments

Comments
 (0)