if (hctx == NULL) return 0; 
BUG_ON(hctx == NULL); 
static int ccid3_hc_tx_parse_options(struct sock *sk, unsigned char option,				     unsigned char len, u16 idx,				     unsigned char *value){	int rc = 0;	const struct dccp_sock *dp = dccp_sk(sk);	struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk);	struct ccid3_options_received *opt_recv;	if (hctx == NULL)		return 0;	opt_recv = &hctx->ccid3hctx_options_received;	if (opt_recv->ccid3or_seqno != dp->dccps_gsr) {		opt_recv->ccid3or_seqno		     = dp->dccps_gsr;		opt_recv->ccid3or_loss_event_rate    = ~0;		opt_recv->ccid3or_loss_intervals_idx = 0;		opt_recv->ccid3or_loss_intervals_len = 0;		opt_recv->ccid3or_receive_rate	     = 0;	}	switch (option) {	case TFRC_OPT_LOSS_EVENT_RATE:		if (len != 4) {			ccid3_pr_debug("%s, sk=%p, invalid len for "				       "TFRC_OPT_LOSS_EVENT_RATE\n",				       dccp_role(sk), sk);			rc = -EINVAL;		} else {			opt_recv->ccid3or_loss_event_rate = ntohl(*(u32 *)value);			ccid3_pr_debug("%s, sk=%p, LOSS_EVENT_RATE=%u\n",				       dccp_role(sk), sk,				       opt_recv->ccid3or_loss_event_rate);		}		break;	case TFRC_OPT_LOSS_INTERVALS:		opt_recv->ccid3or_loss_intervals_idx = idx;		opt_recv->ccid3or_loss_intervals_len = len;		ccid3_pr_debug("%s, sk=%p, LOSS_INTERVALS=(%u, %u)\n",			       dccp_role(sk), sk,			       opt_recv->ccid3or_loss_intervals_idx,			       opt_recv->ccid3or_loss_intervals_len);		break;	case TFRC_OPT_RECEIVE_RATE:		if (len != 4) {			ccid3_pr_debug("%s, sk=%p, invalid len for "				       "TFRC_OPT_RECEIVE_RATE\n",				       dccp_role(sk), sk);			rc = -EINVAL;		} else {			opt_recv->ccid3or_receive_rate = ntohl(*(u32 *)value);			ccid3_pr_debug("%s, sk=%p, RECEIVE_RATE=%u\n",				       dccp_role(sk), sk,				       opt_recv->ccid3or_receive_rate);		}		break;	}	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/59d203f9e989c81defc2cb1c559d678e16dbe684/ccid3.c/clean/net/dccp/ccids/ccid3.c