Skip to content

ptrcall no longer call destructor on return value buffer before using it

Created by: touilleMan

fix #34264

ptrcall always overwrite the return value buffer with it own return value data. Hence a non initialized buffer should be provided to ptrcall.

I've tested this with code like this:

godot_string __ret;
memset(&__ret, 0xff, sizeof(__ret));
gdapi10.godot_method_bind_ptrcall(
    __methbind__Object__get_class,
    my_obj_ptr,
    NULL,
    &__ret
)

without the fix this endup in a segfault, with this fix it works fine

I guess we should be double careful before merging this given ptrcall is a strange beast and my knowledge is limited on it ;-)

Merge request reports

Loading