diff options
| -rw-r--r-- | target/linux/generic/patches-3.2/340-module_alloc_size_check.patch | 20 | ||||
| -rw-r--r-- | target/linux/generic/patches-3.3/340-module_alloc_size_check.patch | 20 | 
2 files changed, 40 insertions, 0 deletions
| diff --git a/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch new file mode 100644 index 000000000..6c7e50a0b --- /dev/null +++ b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch @@ -0,0 +1,20 @@ +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2286,12 +2286,15 @@ +  + void * __weak module_alloc(unsigned long size) + { +-	return size == 0 ? NULL : vmalloc_exec(size); ++	return vmalloc_exec(size); + } +  + static void *module_alloc_update_bounds(unsigned long size) + { +-	void *ret = module_alloc(size); ++	void *ret = NULL; ++ ++	if (size) ++		ret = module_alloc(size); +  + 	if (ret) { + 		mutex_lock(&module_mutex); diff --git a/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch new file mode 100644 index 000000000..9830bc507 --- /dev/null +++ b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch @@ -0,0 +1,20 @@ +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2322,12 +2322,15 @@ +  + void * __weak module_alloc(unsigned long size) + { +-	return size == 0 ? NULL : vmalloc_exec(size); ++	return vmalloc_exec(size); + } +  + static void *module_alloc_update_bounds(unsigned long size) + { +-	void *ret = module_alloc(size); ++	void *ret = NULL; ++ ++	if (size) ++		ret = module_alloc(size); +  + 	if (ret) { + 		mutex_lock(&module_mutex); | 
