cpp: how to use macro argument as dataflow sink
- Lenguaje dominante
- CodeQL
- Estrellas
- 10.1k
- Forks
- 2.1k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 141
Descripción
I would like to do something like this:
```codeql
predicate isSink(DataFlow::Node sink) {
exists(MacroInvocation m |
sink.asExpr() = m.getArgument(0)
and m.getTarget().getName() = "my_cool_macro"
)
}
```
But `getArgument` is not defined, and `getExpandedArgument` returns a string. Doing `sink.asExpr().toString() = m.getExpandedArgument(0)` returns zero matches.
How do I use macros in dataflow?
Guía de contribución
Línea de trabajo
Empieza con el predicado de CodeQL del issue y lee los puntos de entrada mencionados: MacroInvocation, getArgument y getExpandedArgument. Determina cómo se pueden representar los argumentos de macro como nodos de flujo de datos, o si esto no es compatible, y documenta un ejemplo funcional o la limitación para que la pregunta tenga una respuesta concluyente.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- security
- Tipo de issue
- Documentación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100