diff options
fix use after free in font caching algorithm
Current font caching algorithm contains a use after free error. A font
removed from `frc` might be still listed in `wx.specbuf`. It will lead
to a crash inside `XftDrawGlyphFontSpec()`.
Steps to reproduce:
$ st -f 'Misc Tamsyn:scalable=false'
$ curl https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
Of course, result depends on fonts installed on a system and fontconfig.
In my case, I'm getting consistent segfaults with different fonts.
I replaced a fixed array with a simple unbounded buffer with a constant
growth rate. Cache starts with a capacity of 0, gets increments by 16,
and never shrinks. On my machine after `cat UTF-8-demo.txt` buffer
reaches a capacity of 192. During casual use capacity stays at 0.
Diffstat (limited to '%252525252525253fid%252525252525253d4e0135afeca43f5affe13d7269cb98e7ac526074&id2%252525252525253da8cb8e94547d7e31441d2444e8a196415e3e4c1f%2525252525253fid%2525252525253d4e0135afeca43f5affe13d7269cb98e7ac526074&id2%2525252525253da8cb8e94547d7e31441d2444e8a196415e3e4c1f%25252525253fid%25252525253d4e0135afeca43f5affe13d7269cb98e7ac526074%252525253fid%252525253d4e0135afeca43f5affe13d7269cb98e7ac526074%2525253fid%2525253d4e0135afeca43f5affe13d7269cb98e7ac526074%25253fid%25253d4e0135afeca43f5affe13d7269cb98e7ac526074%253fid%253d4e0135afeca43f5affe13d7269cb98e7ac526074%3fid%3d4e0135afeca43f5affe13d7269cb98e7ac526074?id=a8cb8e94547d7e31441d2444e8a196415e3e4c1f')
0 files changed, 0 insertions, 0 deletions
