HaxeFoundation / HaxeFoundation/hxcpp

Invalid cast succeeds and leads to crash

Abierto
#751 25 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.