shithub: rgbds

Download patch

ref: d08bcc455d372662ec687897ef46c1a3a299e5e9
parent: aaa92659ea2bb5d645392fa9c86fe82e020042b7
author: Jakub Kądziołka <kuba@kadziolka.net>
date: Tue Mar 30 19:24:15 EDT 2021

Handle errors when opening source file

Before this commit, opening a file for which the user didn't have
permission resulted in a "Bad file descriptor" error.

--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -473,6 +473,11 @@
 	state->path = path;
 	state->isFile = true;
 	state->fd = isStdin ? STDIN_FILENO : open(path, O_RDONLY);
+	if (state->fd < 0) {
+		error("Failed to open file \"%s\": %s\n", path, strerror(errno));
+		free(state);
+		return NULL;
+	}
 	state->isMmapped = false; /* By default, assume it won't be mmap()ed */
 	if (!isStdin && fileInfo.st_size > 0) {
 		/* Try using `mmap` for better performance */