[LEDE-DEV] [PATCH ubox 3/3] kmodloader: fix possible segfaults

Hans Dedecker dedeckeh at gmail.com
Wed Aug 30 06:25:10 PDT 2017


Signed-off-by: Hans Dedecker <dedeckeh at gmail.com>
---
 kmodloader.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/kmodloader.c b/kmodloader.c
index 2ece0c2..1ddde0d 100644
--- a/kmodloader.c
+++ b/kmodloader.c
@@ -565,6 +565,9 @@ static int insert_module(char *path, const char *options)
 	}
 
 	data = malloc(s.st_size);
+	if (!data)
+		goto out;
+
 	if (read(fd, data, s.st_size) == s.st_size) {
 		ret = syscall(__NR_init_module, data, (unsigned long) s.st_size, options);
 		if (errno == EEXIST)
@@ -573,6 +576,7 @@ static int insert_module(char *path, const char *options)
 	else
 		ULOG_ERR("failed to read full module %s\n", path);
 
+out:
 	close(fd);
 	free(data);
 
@@ -694,6 +698,11 @@ static int main_insmod(int argc, char **argv)
 		len += strlen(argv[i]) + 1;
 
 	options = malloc(len);
+	if (!options) {
+		ret = -1;
+		goto err;
+	}
+
 	options[0] = 0;
 	cur = options;
 	for (i = 2; i < argc; i++) {
@@ -899,6 +908,9 @@ static int main_loader(int argc, char **argv)
 		dir = argv[1];
 
 	path = malloc(strlen(dir) + 2);
+	if (!path)
+		return -1;
+
 	strcpy(path, dir);
 	strcat(path, "*");
 
-- 
1.9.1




More information about the Lede-dev mailing list