if (!MAY_PTRACE(task) || !may_ptrace_attach(task)) 
if (!MAY_PTRACE(task) || !ptrace_may_attach(task)) 
static ssize_t mem_read(struct file * file, char __user * buf,			size_t count, loff_t *ppos){	struct task_struct *task = proc_task(file->f_dentry->d_inode);	char *page;	unsigned long src = *ppos;	int ret = -ESRCH;	struct mm_struct *mm;	if (!MAY_PTRACE(task) || !may_ptrace_attach(task))		goto out;	ret = -ENOMEM;	page = (char *)__get_free_page(GFP_USER);	if (!page)		goto out;	ret = 0; 	mm = get_task_mm(task);	if (!mm)		goto out_free;	ret = -EIO; 	if (file->private_data != (void*)((long)current->self_exec_id))		goto out_put;	ret = 0; 	while (count > 0) {		int this_len, retval;		this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count;		retval = access_process_vm(task, src, page, this_len, 0);		if (!retval || !MAY_PTRACE(task) || !may_ptrace_attach(task)) {			if (!ret)				ret = -EIO;			break;		}		if (copy_to_user(buf, page, retval)) {			ret = -EFAULT;			break;		} 		ret += retval;		src += retval;		buf += retval;		count -= retval;	}	*ppos = src;out_put:	mmput(mm);out_free:	free_page((unsigned long) page);out:	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ab8d11beb46f0bd0617e04205c01f5c1fe845b61/base.c/clean/fs/proc/base.c