rem: p-str_type.s,str_type.s);
add: (int)(p-str_type.s), str_type.s);
context: int check_content_type(struct sip_msg *msg){	static unsigned int appl[16] = {		0x6c707061/*appl*/,0x6c707041/*Appl*/,0x6c705061/*aPpl*/,		0x6c705041/*APpl*/,0x6c507061/*apPl*/,0x6c507041/*ApPl*/,		0x6c505061/*aPPl*/,0x6c505041/*APPl*/,0x4c707061/*appL*/,		0x4c707041/*AppL*/,0x4c705061/*aPpL*/,0x4c705041/*APpL*/,		0x4c507061/*apPL*/,0x4c507041/*ApPL*/,0x4c505061/*aPPL*/,		0x4c505041/*APPL*/};	static unsigned int icat[16] = {		0x74616369/*icat*/,0x74616349/*Icat*/,0x74614369/*iCat*/,		0x74614349/*ICat*/,0x74416369/*icAt*/,0x74416349/*IcAt*/,		0x74414369/*iCAt*/,0x74414349/*ICAt*/,0x54616369/*icaT*/,		0x54616349/*IcaT*/,0x54614369/*iCaT*/,0x54614349/*ICaT*/,		0x54416369/*icAT*/,0x54416349/*IcAT*/,0x54414369/*iCAT*/,		0x54414349/*ICAT*/};	static unsigned int ion_[8] = {		0x006e6f69/*ion_*/,0x006e6f49/*Ion_*/,0x006e4f69/*iOn_*/,		0x006e4f49/*IOn_*/,0x004e6f69/*ioN_*/,0x004e6f49/*IoN_*/,		0x004e4f69/*iON_*/,0x004e4f49/*ION_*/};	static unsigned int sdp_[8] = {		0x00706473/*sdp_*/,0x00706453/*Sdp_*/,0x00704473/*sDp_*/,		0x00704453/*SDp_*/,0x00506473/*sdP_*/,0x00506453/*SdP_*/,		0x00504473/*sDP_*/,0x00504453/*SDP_*/};	str           str_type;	unsigned int  x;	char          *p;	if (!msg->content_type)	{		LOG(L_WARN,"WARNING: get_body_len: Content-TYPE header absent!"			"let's assume the content is text/plain ;-)\n");		return 1;	}	trim_len(str_type.len,str_type.s,msg->content_type->body);	p = str_type.s;	advance(p,4,str_type,error_1);	x = READ(p-4);	if (!one_of_16(x,appl))		goto other;	advance(p,4,str_type,error_1);	x = READ(p-4);	if (!one_of_16(x,icat))		goto other;	advance(p,3,str_type,error_1);	x = READ(p-3) & 0x00ffffff;	if (!one_of_8(x,ion_))		goto other;	/* skip spaces and tabs if any */	while (*p==' ' || *p=='\t')		advance(p,1,str_type,error_1);	if (*p!='/')	{		LOG(L_ERR, "ERROR:check_content_type: parse error:"			"no / found after primary type\n");		goto error;	}	advance(p,1,str_type,error_1);	while ((*p==' ' || *p=='\t') && p+1<str_type.s+str_type.len)		advance(p,1,str_type,error_1);	advance(p,3,str_type,error_1);	x = READ(p-3) & 0x00ffffff;	if (!one_of_8(x,sdp_))		goto other;	if (*p==';'||*p==' '||*p=='\t'||*p=='\n'||*p=='\r'||*p==0) {		DBG("DEBUG:check_content_type: type <%.*s> found valid\n",			p-str_type.s,str_type.s);		return 1;	} else {		LOG(L_ERR,"ERROR:check_content_type: bad end for type!\n");		return -1;	}error_1:	LOG(L_ERR,"ERROR:check_content_type: parse error: body ended :-(!\n");error:	return -1;other:	LOG(L_ERR,"ERROR:check_content_type: invlaid type for a message\n");	return -1;}