HaxeFoundation / HaxeFoundation/hxcpp
Invalid cast succeeds and leads to crash
- Lenguaje dominante
- C++
- Estrellas
- 330
- Forks
- 227
- Merge medio
- 2 d 16 h
- PR fusionados (30 d)
- 18
Descripción
Here is a simple class to reproduce the issue:
```
class HxcppBug
{
public static function main()
{
var s : String = "";
var c = try cast(s, Interface) catch (e : Dynamic) null;
if ((c == null) || c.foo) {
trace("Impossible");
}
}
}
private interface Interface
{
var foo(get, null) : Bool;
}
```
This program crashes. c should be evaluated to null, but is instead just assigned from s. Then the call to the get_foo() function crashes since there is no such function on String.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza con el reproductor Haxe proporcionado y ejecútalo mediante el backend de C++ para confirmar que el cast no válido devuelve String en lugar de null y se bloquea durante el acceso a foo. Rastrea las rutas de cast en tiempo de ejecución y de despacho de interfaces en los archivos del runtime de C++ del repositorio; se considera terminado cuando el reproductor evalúa el cast como null y deja de bloquearse.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100