mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
C++: Add Boost::Asio models.
This commit is contained in:
26
cpp/ql/lib/ext/Boost.Asio.model.yml
Normal file
26
cpp/ql/lib/ext/Boost.Asio.model.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
extensions:
|
||||
# partial model of the Boost::Asio network library
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/cpp-all
|
||||
extensible: sourceModel
|
||||
data: # namespace, type, subtypes, name, signature, ext, output, kind, provenance
|
||||
- ["boost::asio", "", False, "read", "", "", "Argument[1*]", "remote", "manual"]
|
||||
- ["boost::asio", "", False, "read_at", "", "", "Argument[*2]", "remote", "manual"]
|
||||
- ["boost::asio", "", False, "read_until", "", "", "Argument[*1]", "remote", "manual"]
|
||||
- ["boost::asio", "", False, "async_read", "", "", "Argument[1*]", "remote", "manual"]
|
||||
- ["boost::asio", "", False, "async_read_at", "", "", "Argument[*2]", "remote", "manual"]
|
||||
- ["boost::asio", "", False, "async_read_until", "", "", "Argument[*1]", "remote", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/cpp-all
|
||||
extensible: sinkModel
|
||||
data: # namespace, type, subtypes, name, signature, ext, input, kind, provenance
|
||||
- ["boost::asio", "", False, "write", "", "", "Argument[*1]", "remote-sink", "manual"]
|
||||
- ["boost::asio", "", False, "write_at", "", "", "Argument[*2]", "remote-sink", "manual"]
|
||||
- ["boost::asio", "", False, "async_write", "", "", "Argument[*1]", "remote-sink", "manual"]
|
||||
- ["boost::asio", "", False, "async_write_at", "", "", "Argument[*2]", "remote-sink", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/cpp-all
|
||||
extensible: summaryModel
|
||||
data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance
|
||||
- ["boost::asio", "", False, "buffer", "", "", "Argument[*0]", "ReturnValue", "taint", "manual"]
|
||||
@@ -88,9 +88,9 @@ void test(boost::asio::ip::tcp::socket &socket) {
|
||||
if (error) {
|
||||
// ...
|
||||
}
|
||||
sink(recv_buffer); // $ MISSING: ir
|
||||
sink(recv_buffer); // $ ir
|
||||
|
||||
boost::asio::write(socket, recv_buffer, error); // $ MISSING: ir
|
||||
boost::asio::write(socket, recv_buffer, error); // $ ir
|
||||
|
||||
// ---
|
||||
|
||||
@@ -98,9 +98,9 @@ void test(boost::asio::ip::tcp::socket &socket) {
|
||||
sink(send_str); // $ ir
|
||||
|
||||
boost::asio::mutable_buffer send_buffer = boost::asio::buffer(send_str);
|
||||
sink(send_buffer); // $ MISSING: ir
|
||||
sink(send_buffer); // $ ir
|
||||
|
||||
boost::asio::write(socket, send_buffer, error); // $ MISSING: ir
|
||||
boost::asio::write(socket, send_buffer, error); // $ ir
|
||||
if (error) {
|
||||
// ...
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
| asio_streams.cpp:93:29:93:39 | *recv_buffer | remote-sink |
|
||||
| asio_streams.cpp:103:29:103:39 | *send_buffer | remote-sink |
|
||||
| test.cpp:9:10:9:10 | 0 | test-sink |
|
||||
| test.cpp:11:10:11:10 | x | test-sink |
|
||||
| test.cpp:15:10:15:10 | y | test-sink |
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
| asio_streams.cpp:87:34:87:44 | read_until output argument | remote |
|
||||
| test.cpp:7:10:7:18 | call to ymlSource | local |
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
| asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer |
|
||||
| test.cpp:13:18:13:18 | x | test.cpp:13:10:13:16 | call to ymlStep |
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
| Dubious namespace "" in sink model. |
|
||||
| Dubious namespace "" in source model. |
|
||||
| Dubious namespace "" in summary model. |
|
||||
| Dubious namespace "boost::asio" in sink model. |
|
||||
| Dubious namespace "boost::asio" in source model. |
|
||||
| Dubious namespace "boost::asio" in summary model. |
|
||||
| Dubious type "" in sink model. |
|
||||
| Dubious type "" in source model. |
|
||||
| Dubious type "" in summary model. |
|
||||
|
||||
@@ -75,14 +75,14 @@ void test(boost::asio::ip::tcp::socket &socket) {
|
||||
boost::asio::streambuf recv_buffer;
|
||||
boost::system::error_code error;
|
||||
|
||||
boost::asio::read_until(socket, recv_buffer, '\0', error); // $ MISSING: remote_source
|
||||
boost::asio::read_until(socket, recv_buffer, '\0', error); // $ remote_source
|
||||
if (error) {
|
||||
// ...
|
||||
}
|
||||
|
||||
std::string send_str = std::string("message");
|
||||
boost::asio::mutable_buffer send_buffer = boost::asio::buffer(send_str);
|
||||
boost::asio::write(socket, send_buffer, error); // $ MISSING: remote_sink
|
||||
boost::asio::write(socket, send_buffer, error); // $ remote_sink
|
||||
if (error) {
|
||||
// ...
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user