Beispiel #1
0
void write_string_map_ok(std::map<int, std::string> map) {
  int source = __infer_taint_source();
  map[source] = "string";
}
Beispiel #2
0
int read_map_ok(std::map<int, int> map) {
  int source = __infer_taint_source();
  return map[source];
}
Beispiel #3
0
int read_vector_bad(std::vector<int> vec) {
  int source = __infer_taint_source();
  return vec[source];
}
Beispiel #4
0
// don't care about map accesses
void write_map_ok(std::map<int, int> map) {
  int source = __infer_taint_source();
  map[source] = 2;
}
Beispiel #5
0
void write_vector_bad(std::vector<int> vec) {
  int source = __infer_taint_source();
  vec[source] = 2;
}
Beispiel #6
0
void propagateBad() {
  void* source = __infer_taint_source();
  void* launderedSource = id(source);
  callSink(launderedSource);
}
Beispiel #7
0
void sourceThenCallSinkBad() {
  void* source = __infer_taint_source();
  callSink(source);
}
Beispiel #8
0
void sourceToSinkDirectBad() {
  void* source = __infer_taint_source();
  __infer_taint_sink(source);
}
Beispiel #9
0
void* returnSource() { return __infer_taint_source(); }