Permission errors are handled in text_load(). To detect these errors, and other open() errors (opening a directory, for example), check the return value of text_load(). This fixes a segmentation fault when opening a directory. Also, opening a file you are not permitted to read, will now give an error, instead of showing the file as empty. --- editor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/editor.c b/editor.c index 7b0c7b2..20ceb38 100644 --- a/editor.c +++ b/editor.c @@ -298,7 +298,9 @@ static VisText *vis_text_new(Editor *ed, const char *filename) { } } - Text *data = text_load(filename && access(filename, F_OK) == 0 ? filename : NULL); + Text *data = text_load(filename); + if (!data) + return NULL; if (filename) text_filename_set(data, filename); -- 2.3.5