Re: [BK PATCH] LSM setup changes for 2.5.26

From: Greg KH (gregat_private)
Date: Wed Jul 17 2002 - 11:23:51 PDT

  • Next message: Stephen Smalley: "Re: [patch] LSM base + task/binprm changes (Was: Re: Submitting LSM)"

    # This is a BitKeeper generated patch for the following project:
    # Project Name: Linux kernel tree
    # This patch format is intended for GNU patch command version 2.5 or higher.
    # This patch includes the following deltas:
    #	           ChangeSet	1.639.1.1 -> 1.639.1.2
    #	           ipc/sem.c	1.9     -> 1.10   
    #	           ipc/shm.c	1.11    -> 1.12   
    #	 include/linux/shm.h	1.2     -> 1.3    
    #
    # The following is the BitKeeper ChangeSet Log
    # --------------------------------------------
    # 02/07/15	gregat_private	1.639.1.2
    # LSM: move struct shmid_kernel out of ipc/shm.c to include/linux/shm.h
    # 
    # Also move where we set sma->sem_perm.mode and .key to before ipc_addid() gets called.
    # --------------------------------------------
    #
    diff -Nru a/include/linux/shm.h b/include/linux/shm.h
    --- a/include/linux/shm.h	Wed Jul 17 11:08:09 2002
    +++ b/include/linux/shm.h	Wed Jul 17 11:08:09 2002
    @@ -71,6 +71,19 @@
     };
     
     #ifdef __KERNEL__
    +struct shmid_kernel /* private to the kernel */
    +{	
    +	struct kern_ipc_perm	shm_perm;
    +	struct file *		shm_file;
    +	int			id;
    +	unsigned long		shm_nattch;
    +	unsigned long		shm_segsz;
    +	time_t			shm_atim;
    +	time_t			shm_dtim;
    +	time_t			shm_ctim;
    +	pid_t			shm_cprid;
    +	pid_t			shm_lprid;
    +};
     
     /* shm_mode upper byte flags */
     #define	SHM_DEST	01000	/* segment will be destroyed on last detach */
    diff -Nru a/ipc/sem.c b/ipc/sem.c
    --- a/ipc/sem.c	Wed Jul 17 11:08:09 2002
    +++ b/ipc/sem.c	Wed Jul 17 11:08:09 2002
    @@ -129,15 +129,16 @@
     		return -ENOMEM;
     	}
     	memset (sma, 0, size);
    +
    +	sma->sem_perm.mode = (semflg & S_IRWXUGO);
    +	sma->sem_perm.key = key;
    +
     	id = ipc_addid(&sem_ids, &sma->sem_perm, sc_semmni);
     	if(id == -1) {
     		ipc_free(sma, size);
     		return -ENOSPC;
     	}
     	used_sems += nsems;
    -
    -	sma->sem_perm.mode = (semflg & S_IRWXUGO);
    -	sma->sem_perm.key = key;
     
     	sma->sem_base = (struct sem *) &sma[1];
     	/* sma->sem_pending = NULL; */
    diff -Nru a/ipc/shm.c b/ipc/shm.c
    --- a/ipc/shm.c	Wed Jul 17 11:08:09 2002
    +++ b/ipc/shm.c	Wed Jul 17 11:08:09 2002
    @@ -28,20 +28,6 @@
     
     #include "util.h"
     
    -struct shmid_kernel /* private to the kernel */
    -{	
    -	struct kern_ipc_perm	shm_perm;
    -	struct file *		shm_file;
    -	int			id;
    -	unsigned long		shm_nattch;
    -	unsigned long		shm_segsz;
    -	time_t			shm_atim;
    -	time_t			shm_dtim;
    -	time_t			shm_ctim;
    -	pid_t			shm_cprid;
    -	pid_t			shm_lprid;
    -};
    -
     #define shm_flags	shm_perm.mode
     
     static struct file_operations shm_file_operations;
    @@ -193,6 +179,10 @@
     	shp = (struct shmid_kernel *) kmalloc (sizeof (*shp), GFP_USER);
     	if (!shp)
     		return -ENOMEM;
    +
    +	shp->shm_perm.key = key;
    +	shp->shm_flags = (shmflg & S_IRWXUGO);
    +
     	sprintf (name, "SYSV%08x", key);
     	file = shmem_file_setup(name, size);
     	error = PTR_ERR(file);
    @@ -203,8 +193,7 @@
     	id = shm_addid(shp);
     	if(id == -1) 
     		goto no_id;
    -	shp->shm_perm.key = key;
    -	shp->shm_flags = (shmflg & S_IRWXUGO);
    +
     	shp->shm_cprid = current->pid;
     	shp->shm_lprid = 0;
     	shp->shm_atim = shp->shm_dtim = 0;
    _______________________________________________
    linux-security-module mailing list
    linux-security-moduleat_private
    http://mail.wirex.com/mailman/listinfo/linux-security-module
    



    This archive was generated by hypermail 2b30 : Wed Jul 17 2002 - 11:27:01 PDT