Skip to contentSkip to conversation

__user annotation for shm_shmat hook declaration

PATCH New Chris Wright 1 participant 3 messages Jun 14, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/3 __user annotation for shm_shmat hook declaration

Add proper __user annotation for shm_shmat hook in security.h.

CHECK ipc/shm.c
include/linux/security.h:1831:38: warning: incorrect type in argument 2 (different address spaces)
include/linux/security.h:1831:38: expected char *shmaddr
include/linux/security.h:1831:38: got char [noderef] *shmaddr<asn:1>
CC ipc/shm.o

From: Mika Kukkonen <[email protected]>

===== include/linux/security.h 1.34 vs edited =====

include/linux/security.h +1 -1
@@ -1172,7 +1172,7 @@
 	int (*shm_associate) (struct shmid_kernel * shp, int shmflg);
 	int (*shm_shmctl) (struct shmid_kernel * shp, int cmd);
 	int (*shm_shmat) (struct shmid_kernel * shp, 
-			  char *shmaddr, int shmflg);
+			  char __user *shmaddr, int shmflg);
 
 	int (*sem_alloc_security) (struct sem_array * sma);
 	void (*sem_free_security) (struct sem_array * sma);
#1 lore raw

PATCH 2/3 __user annotation for selinux_shm_shmat

Add proper __user annotation to selinux_shm_shmat.

CHECK security/selinux/hooks.c
security/selinux/hooks.c:4163:17: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
security/selinux/hooks.c:4163:17: expected int ( *shm_shmat )( ... )
security/selinux/hooks.c:4163:17: got int ( static [addressable] [toplevel] *<noident> )( ... )
CC security/selinux/hooks.o

From: Mika Kukkonen <[email protected]>

===== security/selinux/hooks.c 1.41 vs edited =====

security/selinux/hooks.c +1 -1
@@ -3781,7 +3781,7 @@
 }
 
 static int selinux_shm_shmat(struct shmid_kernel *shp,
-			     char *shmaddr, int shmflg)
+			     char __user *shmaddr, int shmflg)
 {
 	u32 perms;
 
#2 lore raw

PATCH 3/3 __user annotation for dummy_shm_shmat

Add proper __user annotation to dummy_shm_shmat.

CHECK security/dummy.c
security/dummy.c:995:2: warning: incorrect type in assignment (incompatible argument 2 (different address spaces))
security/dummy.c:995:2: expected int ( *[addressable] [toplevel] shm_shmat )( ... )
security/dummy.c:995:2: got int ( static [addressable] [toplevel] *<noident> )( ... )
CC security/dummy.o

===== security/dummy.c 1.39 vs edited =====

security/dummy.c +1 -1
@@ -688,7 +688,7 @@
 	return 0;
 }
 
-static int dummy_shm_shmat (struct shmid_kernel *shp, char *shmaddr,
+static int dummy_shm_shmat (struct shmid_kernel *shp, char __user *shmaddr,
 			    int shmflg)
 {
 	return 0;