Skip to content

LLVM messing up NCurses-based applications #23355

@llvmbot

Description

@llvmbot
Bugzilla Link 22981
Version 3.5
OS Linux
Reporter LLVM Bugzilla Contributor
CC @chandlerc,@dwblaikie

Extended Description

When trying to use the Clang Python bindings inside bpython, every time I loaded a TranslationUnit from source, bpython segfaulted.

I've found the problem to be in llvm::sys::Process::FileDescriptorHasColors(int). It uses terminfo to check if the file descriptor has colors, but instead of restoring the cur_term variable to its original value, it sets it to NULL. When control returns to the NCurses app (bpython), it crashes because no current terminal is set.

This is the first time I ever deal with LLVM or NCurses code, so I might be wrong. I did a search to see if this had been reported before, but I didn't find anything.

To reproduce, fire up bpython and enter:

import clang.cindex
clang.cindex.TranslationUnit.from_source("path to some C file")

You need the Clang Python bindings installed, of course.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions