if (copy_to_user((void *)arg, p_ca_message, sizeof (struct ca_msg)) ) 
if (copy_to_user(arg, p_ca_message, sizeof (struct ca_msg)) ) 
static int ca_get_message(struct dst_state *state, struct ca_msg *p_ca_message, void *arg){	u8 i = 0;	u32 command = 0;	if (copy_from_user(p_ca_message, (void *)arg, sizeof (struct ca_msg)))		return -EFAULT;	if (p_ca_message->msg) {		dprintk(verbose, DST_CA_NOTICE, 1, " Message = [%02x %02x %02x]", p_ca_message->msg[0], p_ca_message->msg[1], p_ca_message->msg[2]);		for (i = 0; i < 3; i++) {			command = command | p_ca_message->msg[i];			if (i < 2)				command = command << 8;		}		dprintk(verbose, DST_CA_NOTICE, 1, " Command=[0x%x]", command);		switch (command) {		case CA_APP_INFO:			memcpy(p_ca_message->msg, state->messages, 128);			if (copy_to_user((void *)arg, p_ca_message, sizeof (struct ca_msg)) )				return -EFAULT;			break;		}	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/174f80dfcba45677f12ba57479d03750dd9cad7b/dst_ca.c/clean/drivers/media/dvb/bt8xx/dst_ca.c