7 Jul
2025
7 Jul
'25
11:57 a.m.
Rémi Bernon (@rbernon) commented about tools/widl/typetree.c:
if (attr->type == ATTR_ACTIVATABLE || attr->type == ATTR_COMPOSABLE) { const expr_t *value = attr->u.pval; - if (value->type == EXPR_MEMBER) + if (value->type == EXPR_MEMBER && value->u.var->declspec.type->details.iface)
You should check that the type is TYPE_INTERFACE instead of checking details.iface, it is UB to access an union member that wasn't the one written to. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8507#note_108971