CBMC
|
Class representing a filter for class file loading. More...
#include <java_class_loader_limit.h>
Public Member Functions | |
java_class_loader_limitt (message_handlert &message_handler, const std::string &java_cp_include_files) | |
bool | load_class_file (const std::string &class_file_name) |
Use the class load limiter to decide whether a class file should be loaded or not. More... | |
Private Member Functions | |
void | setup_class_load_limit (const std::string &) |
Initializes class with either regex matcher or match set. More... | |
Private Attributes | |
messaget | log |
bool | use_regex_match |
Whether to use regex_matcher instead of set_matcher. More... | |
std::regex | regex_matcher |
std::set< std::string > | set_matcher |
Class representing a filter for class file loading.
Definition at line 21 of file java_class_loader_limit.h.
|
inlineexplicit |
Definition at line 33 of file java_class_loader_limit.h.
bool java_class_loader_limitt::load_class_file | ( | const std::string & | file_name | ) |
Use the class load limiter to decide whether a class file should be loaded or not.
file_name | the name of the class file to load |
Definition at line 89 of file java_class_loader_limit.cpp.
|
private |
Initializes class with either regex matcher or match set.
If the string starts with an @
it is treated as a path to a JSON file. Otherwise, it is treated as a regex.
The regex case describes which class files should be loaded in the form of a regular expression used with regex_match
.
The match set is a list of files to load in JSON format, the argument is the name of the JSON file, prefixed with @
. The file contains one section to list the .jar files to load and one section to list the .class files to load from the .jar.
for example a file called load.json
with the following content: { "jar": [ "A.jar", "B.jar" ], "classFiles": [ "jarfile3$A.class", "jarfile3.class" ] } would be specified via --java-cp-include-files @load.json
and would instruct the driver to load A.jar
and B.jar
and the two .class files jarfile3$A.class
and jarfile3.class
. All the rest of the .jar files is ignored.
java_cp_include_files | parameter from java-cp-include-files in the format as described above |
Definition at line 50 of file java_class_loader_limit.cpp.
|
private |
Definition at line 23 of file java_class_loader_limit.h.
|
private |
Definition at line 27 of file java_class_loader_limit.h.
|
private |
Definition at line 28 of file java_class_loader_limit.h.
|
private |
Whether to use regex_matcher instead of set_matcher.
Definition at line 26 of file java_class_loader_limit.h.