On Thu, Aug 07, 2025 at 08:02:58PM +0300, Ingvix wrote: > Hi, > > I've been trying to utilise the alloc_pair function in a terminal > multiplexer program to support direct colours. The problem I'm facing is > that alloc_pair never reallocates once allocated pairs, be they freed or > not, causing segfault and/or returning only ERRs, after it can no longer > provide a larger pair index. > > Looking around the ncurses source code and playing around with tracing, > it would appear alloc_pair always successfully finds a new usable index > in the first for loop, as SP_PARM->_pair_alloc seems to grow dynamically > without apparent limit. COLOR_PAIRS equals to 65536, as expected, but > alloc_pair keeps going past it, returning 69949 valid pairs, no errors, > on the latest test run, before causing a segfault. Some earlier test > runs ended up with sequential ERR returns before reaching the breaking > call, assumably until SP_PARM->_recent_pair grew large enough to cause a > segfault, by some means unknown to me. > > In any case, it would appear the function requires some reworking. I was > using ncurses v6.5 on st with a custom st-direct terminfo entry with > RGB, colors, pairs and setaf/b set accordingly, on Void Linux.
https://invisible-island.net/ncurses/ncurses.faq.html#how_to_report https://invisible-island.net/personal/bug-reports.html#what_causes https://invisible-island.net/personal/bug-reports.html A simple test-program demonstrating the problem helps (though of course not a _trivial_ one). -- Thomas E. Dickey <[email protected]> https://invisible-island.net
signature.asc
Description: PGP signature
