diff options
-rw-r--r-- | sway/config.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c index b8c874e6..2c051146 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -561,12 +561,17 @@ static char *expand_line(const char *block, const char *line, bool add_brace) { | |||
561 | bool read_config(FILE *file, struct sway_config *config) { | 561 | bool read_config(FILE *file, struct sway_config *config) { |
562 | bool reading_main_config = false; | 562 | bool reading_main_config = false; |
563 | char *this_config = NULL; | 563 | char *this_config = NULL; |
564 | unsigned long config_size = 0; | 564 | size_t config_size = 0; |
565 | if (config->current_config == NULL) { | 565 | if (config->current_config == NULL) { |
566 | reading_main_config = true; | 566 | reading_main_config = true; |
567 | 567 | ||
568 | fseek(file, 0, SEEK_END); | 568 | int ret_seek = fseek(file, 0, SEEK_END); |
569 | config_size = ftell(file); | 569 | long ret_tell = ftell(file); |
570 | if (ret_seek == -1 || ret_tell == -1) { | ||
571 | wlr_log(WLR_ERROR, "Unable to get size of config file"); | ||
572 | return false; | ||
573 | } | ||
574 | config_size = ret_tell; | ||
570 | rewind(file); | 575 | rewind(file); |
571 | 576 | ||
572 | config->current_config = this_config = calloc(1, config_size + 1); | 577 | config->current_config = this_config = calloc(1, config_size + 1); |