Even after applying patches to osi_probe.c openafs 1.4.1 did not compile on Linux 2.6.9-34 kernels (and others).

The reason: a NULL is passed to the module_param_array macro which then attempts to take the address of that NULL.

The attached patch defines a correctly typed static zero and passes that one instead.


(Bcc'ed to openafs-bugs)
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985       Fax: +41 22 767 7155
--- openafs/src/afs/LINUX/osi_probe.c.o141      2006-04-27 09:32:32.000000000 
+0200
+++ openafs/src/afs/LINUX/osi_probe.c   2006-04-27 14:53:47.000000000 +0200
@@ -117,8 +117,9 @@
 
 /* Allow the user to specify sys_call_table addresses */
 static unsigned long sys_call_table_addr[4] = { 0,0,0,0 };
+static unsigned int uintZero = 0;
 #ifdef module_param_array
-module_param_array(sys_call_table_addr, long, NULL, 0);
+module_param_array(sys_call_table_addr, long, uintZero, 0);
 #else
 MODULE_PARM(sys_call_table_addr, "1-4l");
 #endif
@@ -135,7 +136,7 @@
 
 static int probe_ignore_syscalls[8] = { -1, -1, -1, -1, -1, -1, -1, -1 };
 #ifdef module_param_array
-module_param_array(probe_ignore_syscalls, int, NULL, 0);
+module_param_array(probe_ignore_syscalls, int, uintZero, 0);
 #else
 MODULE_PARM(probe_ignore_syscalls, "1-8i");
 #endif

Reply via email to