:: commit 8a060839fb0c5f599772ad21f6a96059c756645d

mintsuki <mintsuki@protonmail.com> — 2022-07-02 10:05

parents: 6d973a0e00

config: Fix issue with configs without trailing newline

diff --git a/common/lib/config.c b/common/lib/config.c
index 10d1fcb8..33751738 100644
--- a/common/lib/config.c
+++ b/common/lib/config.c
@@ -28,7 +28,7 @@ int init_config_disk(struct volume *part) {
         return -1;
     }
 
-    size_t config_size = f->size + 1;
+    size_t config_size = f->size + 2;
     config_addr = ext_mem_alloc(config_size);
 
     fread(f, config_addr, 0, f->size);
@@ -45,7 +45,7 @@ int init_config_pxe(void) {
         return -1;
     }
 
-    size_t config_size = f.size + 1;
+    size_t config_size = f.size + 2;
     config_addr = ext_mem_alloc(config_size);
 
     fread(&f, config_addr, 0, f.size);
@@ -147,6 +147,9 @@ struct macro {
 static struct macro *macros = NULL;
 
 int init_config(size_t config_size) {
+    // add trailing newline if not present
+    config_addr[config_size - 2] = '\n';
+
     // remove windows carriage returns and spaces at the start of lines, if any
     for (size_t i = 0; i < config_size; i++) {
         size_t skip = 0;
tab: 248 wrap: offon