4.3 Process ACLs attaching int do_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size) { int retval; ..... if (copy_mm(clone_flags, p)) goto bad_fork_cleanup_sighand; if(copy_lids_sys_acl(p)) goto bad_fork_cleanup_lids; ..... static inline int copy_lids_sys_acl(struct task_struct * tsk) { ......... if(parent->lids_sys_acl) { struct lids_acl *p_acl,*this_acl; ........ /* 1 . copy lids_acl */ for(p_acl=parent->lids_sys_acl->lids_acl;p_acl;) { this_acl = kmalloc(sizeof(struct lids_acl),GFP_KERNEL); if(!this_acl) return -1; memcpy(this_acl,p_acl,sizeof(struct lids_acl)); this_acl->next = tsk->lids_sys_acl->lids_acl; tsk->lids_sys_acl->lids_acl = this_acl; p_acl = p_acl->next; } /* 2. copy lids_domain */ for(p_acl=parent->lids_sys_acl->lids_domain;p_acl;) { .....