github / github/codeql

cpp: how to use macro argument as dataflow sink

Abierto
#21,824 3 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.