grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] util/resolve.c: Bail with error if moddep lst file line is t


From: Glenn Washburn
Subject: [PATCH 2/2] util/resolve.c: Bail with error if moddep lst file line is too long
Date: Wed, 12 Jan 2022 20:55:01 -0600

The code reads each line into a buffer of size 1024 and does not check if
the line is longer. So a line longer than 1024 will be read as a valid line
followed by an invalid line. Then an error confusing to the user is sent
with the test "invalid line format". But the line format is prefectly fine,
the problem is in GRUB's parser. Check if we've hit a line longer than the
size of the buffer, and if so send a more correct and reasonable error.

Signed-off-by: Glenn Washburn <development@efficientek.com>
---
 util/resolve.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/util/resolve.c b/util/resolve.c
index 5e9afa10c..b0f2661f7 100644
--- a/util/resolve.c
+++ b/util/resolve.c
@@ -127,6 +127,9 @@ read_dep_list (FILE *fp)
          mod->next = dep->list;
          dep->list = mod;
        }
+
+       if ((p - buf) == sizeof (buf))
+         grub_util_error (_("line too long, length greater than %lu: module 
%s"), sizeof (buf), dep->name);
     }
 
   return dep_list;
-- 
2.27.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]