if (count < 0 || count > PAGE_SIZE) { 
if (count > PAGE_SIZE) { 
static ssize_t sel_read_bool(struct file *filep, char __user *buf,			     size_t count, loff_t *ppos){	char *page = NULL;	ssize_t length;	ssize_t end;	ssize_t ret;	int cur_enforcing;	struct inode *inode;	down(&sel_sem);	ret = -EFAULT;	/* check to see if this file has been deleted */	if (!filep->f_op)		goto out;	if (count < 0 || count > PAGE_SIZE) {		ret = -EINVAL;		goto out;	}	if (!(page = (char*)get_zeroed_page(GFP_KERNEL))) {		ret = -ENOMEM;		goto out;	}	inode = filep->f_dentry->d_inode;	cur_enforcing = security_get_bool_value(inode->i_ino - BOOL_INO_OFFSET);	if (cur_enforcing < 0) {		ret = cur_enforcing;		goto out;	}	length = scnprintf(page, PAGE_SIZE, "%d %d", cur_enforcing,			  bool_pending_values[inode->i_ino - BOOL_INO_OFFSET]);	if (length < 0) {		ret = length;		goto out;	}	if (*ppos >= length) {		ret = 0;		goto out;	}	if (count + *ppos > length)		count = length - *ppos;	end = count + *ppos;	if (copy_to_user(buf, (char *) page + *ppos, count)) {		ret = -EFAULT;		goto out;	}	*ppos = end;	ret = count;out:	up(&sel_sem);	if (page)		free_page((unsigned long)page);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/bfd51626cbf61cb23f787d8ff972ef0d5ddacc0b/selinuxfs.c/clean/security/selinux/selinuxfs.c