fix bogus lazy allocation in ctermid and missing malloc failure check