aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/readline.c3
-rw-r--r--sway/config.c3
-rw-r--r--sway/main.c15
3 files changed, 18 insertions, 3 deletions
diff --git a/common/readline.c b/common/readline.c
index 5106172c..cc40a2cc 100644
--- a/common/readline.c
+++ b/common/readline.c
@@ -1,4 +1,5 @@
#include "readline.h"
+#include "log.h"
#include <stdlib.h>
#include <stdio.h>
@@ -7,6 +8,7 @@ char *read_line(FILE *file) {
char *string = malloc(size);
char lastChar = '\0';
if (!string) {
+ sway_log(L_ERROR, "Unable to allocate memory for read_line");
return NULL;
}
while (1) {
@@ -27,6 +29,7 @@ char *read_line(FILE *file) {
char *new_string = realloc(string, size *= 2);
if (!new_string) {
free(string);
+ sway_log(L_ERROR, "Unable to allocate memory for read_line");
return NULL;
}
string = new_string;
diff --git a/sway/config.c b/sway/config.c
index e737f83c..98109937 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -575,6 +575,9 @@ bool read_config(FILE *file, struct sway_config *config) {
char *line;
while (!feof(file)) {
line = read_line(file);
+ if (!line) {
+ continue;
+ }
line_number++;
line = strip_whitespace(line);
if (line[0] == '#') {
diff --git a/sway/main.c b/sway/main.c
index 157c61b3..d41eb292 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -53,7 +53,10 @@ void detect_proprietary() {
return;
}
while (!feof(f)) {
- char *line = read_line(f);
+ char *line;
+ if (!(line = read_line(f))) {
+ break;
+ }
if (strstr(line, "nvidia")) {
fprintf(stderr, "\x1B[1;31mWarning: Proprietary nvidia drivers do NOT support Wayland. Use nouveau.\x1B[0m\n");
fprintf(stderr, "\x1B[1;31mYes, they STILL don't work with the newly announced wayland \"support\".\x1B[0m\n");
@@ -118,7 +121,10 @@ static void log_distro() {
if (f) {
sway_log(L_INFO, "Contents of %s:", paths[i]);
while (!feof(f)) {
- char *line = read_line(f);
+ char *line;
+ if (!(line = read_line(f))) {
+ break;
+ }
if (*line) {
sway_log(L_INFO, "%s", line);
}
@@ -136,7 +142,10 @@ static void log_kernel() {
return;
}
while (!feof(f)) {
- char *line = read_line(f);
+ char *line;
+ if (!(line = read_line(f))) {
+ break;
+ }
if (*line) {
sway_log(L_INFO, "%s", line);
}