Huw Davies (@huw) commented about dlls/riched20/wrap.c:
run->clusters = heap_alloc( run->max_clusters * sizeof(WORD) ); }
- if (!(char_prop = heap_alloc( run->len * sizeof( *char_prop ) )))
return E_OUTOFMEMORY;
- if (!(glyph_prop = heap_alloc( run->len * sizeof( *glyph_prop ) )))
This needs to be `max_glyphs` long.
However it should be allocated in `get_run_glyph_buffers()` instead of `run->vis_attr`. The code that uses `run->vis_attr` should then be changed to use the glpyh props instead. It may help to reduce the patch size by making this simple change first.