libkmod: reset was_space on second pass
authorLucas De Marchi <lucas.demarchi@intel.com>
Mon, 20 Jan 2020 19:15:38 +0000 (16:15 -0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 20 Jan 2020 19:15:38 +0000 (16:15 -0300)
The softdep config parser uses a 2-pass approach to use a single
allocation for all the softdep struct. However "was_space" variable
isn't reset between them. This can lead to a buffer overflow.

Reported-by: Jorge Lucangeli Obes <jorgelo@google.com>
Link: https://lore.kernel.org/linux-modules/CAKYuF5QhGCPCazHQjN-=kFc5kHs7Ok8WqmmGLo31CiOEN8TYdA@mail.gmail.com
libkmod/libkmod-config.c

index aaac0a1..7b62367 100644 (file)
@@ -335,6 +335,7 @@ static int kmod_config_add_softdep(struct kmod_config *config,
        n_pre = 0;
        n_post = 0;
        mode = S_NONE;
+       was_space = false;
        for (p = s = line; ; s++) {
                size_t plen;