diff -rc2P linux-2.4.17ctx-6/Makefile linux-2.4.17ctx-7/Makefile *** linux-2.4.17ctx-6/Makefile Tue Jan 29 22:54:52 2002 --- linux-2.4.17ctx-7/Makefile Tue Jan 29 23:13:09 2002 *************** *** 2,6 **** PATCHLEVEL = 4 SUBLEVEL = 17 ! EXTRAVERSION =ctx-6 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) --- 2,6 ---- PATCHLEVEL = 4 SUBLEVEL = 17 ! EXTRAVERSION =ctx-7 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -rc2P linux-2.4.17ctx-6/fs/devpts/root.c linux-2.4.17ctx-7/fs/devpts/root.c *** linux-2.4.17ctx-6/fs/devpts/root.c Sun Jan 27 00:34:20 2002 --- linux-2.4.17ctx-7/fs/devpts/root.c Wed Feb 6 12:10:10 2002 *************** *** 68,72 **** struct inode *inode = sbi->inodes[ptynr]; if ( inode != NULL ! && inode->u.devpts_i.s_context == current->s_context ) { genptsname(numbuf, ptynr); if ( filldir(dirent, numbuf, strlen(numbuf), nr, nr, DT_CHR) < 0 ) --- 68,73 ---- struct inode *inode = sbi->inodes[ptynr]; if ( inode != NULL ! && (current->s_context == 1 ! || inode->u.devpts_i.s_context == current->s_context)) { genptsname(numbuf, ptynr); if ( filldir(dirent, numbuf, strlen(numbuf), nr, nr, DT_CHR) < 0 ) diff -rc2P linux-2.4.17ctx-6/fs/namei.c linux-2.4.17ctx-7/fs/namei.c *** linux-2.4.17ctx-6/fs/namei.c Wed Jan 23 22:41:06 2002 --- linux-2.4.17ctx-7/fs/namei.c Mon Feb 4 15:22:04 2002 *************** *** 158,162 **** you fix the "escape from chroot" bug. */ ! if ((mode & 0777) == 0 && current->s_context != 0) return -EACCES; if (mask & MAY_WRITE) { /* --- 158,164 ---- you fix the "escape from chroot" bug. */ ! if ((mode & 0777) == 0 ! && S_ISDIR(mode) ! && current->s_context != 0) return -EACCES; if (mask & MAY_WRITE) { /* diff -rc2P linux-2.4.17ctx-6/fs/proc/array.c linux-2.4.17ctx-7/fs/proc/array.c *** linux-2.4.17ctx-6/fs/proc/array.c Sun Jan 27 15:23:51 2002 --- linux-2.4.17ctx-7/fs/proc/array.c Wed Feb 6 12:33:49 2002 *************** *** 151,155 **** read_lock(&tasklist_lock); ppid = p->p_opptr->pid; ! if (current->s_info != NULL && current->s_info->initpid == ppid) ppid = 1; buffer += sprintf(buffer, --- 151,156 ---- read_lock(&tasklist_lock); ppid = p->p_opptr->pid; ! if (ppid != 0 ! && current->s_info != NULL && current->s_info->initpid == ppid) ppid = 1; buffer += sprintf(buffer, diff -rc2P linux-2.4.17ctx-6/fs/proc/base.c linux-2.4.17ctx-7/fs/proc/base.c *** linux-2.4.17ctx-6/fs/proc/base.c Sun Jan 27 15:01:44 2002 --- linux-2.4.17ctx-7/fs/proc/base.c Wed Feb 6 12:02:23 2002 *************** *** 970,973 **** --- 970,974 ---- && current->s_context != 1 && task->s_context != current->s_context){ + free_task_struct(task); goto out; } diff -rc2P linux-2.4.17ctx-6/kernel/timer.c linux-2.4.17ctx-7/kernel/timer.c *** linux-2.4.17ctx-6/kernel/timer.c Sun Jan 27 14:49:24 2002 --- linux-2.4.17ctx-7/kernel/timer.c Wed Feb 6 12:16:30 2002 *************** *** 776,780 **** break; } ! if (current->s_info != NULL && current->s_info->initpid == pid){ /* We are faking process 1 for this security context */ --- 776,781 ---- break; } ! if (pid != 0 ! && current->s_info != NULL && current->s_info->initpid == pid){ /* We are faking process 1 for this security context */ diff -rc2P linux-2.4.17ctx-6/net/ipv4/devinet.c linux-2.4.17ctx-7/net/ipv4/devinet.c *** linux-2.4.17ctx-6/net/ipv4/devinet.c Thu Jan 24 12:06:09 2002 --- linux-2.4.17ctx-7/net/ipv4/devinet.c Thu Jan 31 14:37:27 2002 *************** *** 560,563 **** --- 560,564 ---- } if (ifa != NULL + && current->s_context != 0 && current->ipv4root != 0 && current->ipv4root != ifa->ifa_local){ *************** *** 698,702 **** for ( ; ifa; ifa = ifa->ifa_next) { // We do not show other IP devices to vservers ! if (current->ipv4root != 0 && current->ipv4root != ifa->ifa_local) continue; if (!buf) { --- 699,704 ---- for ( ; ifa; ifa = ifa->ifa_next) { // We do not show other IP devices to vservers ! if (current->s_context != 0 ! && current->ipv4root != 0 && current->ipv4root != ifa->ifa_local) continue; if (!buf) {