aboutsummaryrefslogtreecommitdiffstats
path: root/config/kernel-show-options.m4
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2012-07-19 18:37:56 -0400
committerBrian Behlendorf <[email protected]>2012-07-20 12:31:45 -0700
commited3fc80048f1d11f0b77382f5c378bb4c11787fd (patch)
tree363089eb1cec91423e29cf2076185b36b391afbd /config/kernel-show-options.m4
parentfc173c85892841c283aac4e5174d6d8762463062 (diff)
Fix NULL pointer dereference on PaX/GRSecurity patched Linux 3.3 and later kernels
Support for PaX/GRSecurity patched kernels was developed against Linux 3.2. Unfortunately, an autotools check introduced for a Linux 3.3 API fails on PaX/GRSecurity patched kernels. This causes the module to be built against the Linux 3.2 ABI, which results in a NULL pointer dereference at runtime. Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Richard Yao <[email protected]> Closes #794 Closes #809
Diffstat (limited to 'config/kernel-show-options.m4')
-rw-r--r--config/kernel-show-options.m49
1 files changed, 5 insertions, 4 deletions
diff --git a/config/kernel-show-options.m4 b/config/kernel-show-options.m4
index 1bddb0a7a..67d683c55 100644
--- a/config/kernel-show-options.m4
+++ b/config/kernel-show-options.m4
@@ -6,11 +6,12 @@ AC_DEFUN([ZFS_AC_KERNEL_SHOW_OPTIONS], [
ZFS_LINUX_TRY_COMPILE([
#include <linux/fs.h>
- ],[
- int (*show_options) (struct seq_file *, struct dentry *) = NULL;
- struct super_operations sops __attribute__ ((unused));
- sops.show_options = show_options;
+ int show_options (struct seq_file * x, struct dentry * y) { return 0; };
+ static struct super_operations sops __attribute__ ((unused)) = {
+ .show_options = show_options,
+ };
+ ],[
],[
AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_SHOW_OPTIONS_WITH_DENTRY, 1,