if (p != NULL) for (i = 0; i < skb->dev->hard_header_len; i++) printk("%02x", p[i]); 
if (p != NULL) { for (i = 0; i < len; i++) printk("%02x%s", p[i], i == len - 1 ? "" : ":"); } 
ip6t_log_packet(unsigned int hooknum,		const struct sk_buff *skb,		const struct net_device *in,		const struct net_device *out,		const struct ip6t_log_info *loginfo,		const char *level_string,		const char *prefix){	spin_lock_bh(&log_lock);	printk(level_string);	printk("%sIN=%s OUT=%s ",		prefix == NULL ? loginfo->prefix : prefix,		in ? in->name : "",		out ? out->name : "");	if (in && !out) {		/* MAC logging for input chain only. */		printk("MAC=");		if (skb->dev && skb->dev->hard_header_len &&		    skb->mac.raw != skb->nh.raw) {			unsigned char *p = skb->mac.raw;			int i;			if (skb->dev->type == ARPHRD_SIT &&			    (p -= ETH_HLEN) < skb->head)				p = NULL;			if (p != NULL)				for (i = 0; i < skb->dev->hard_header_len; i++)					printk("%02x", p[i]);			printk(" ");			if (skb->dev->type == ARPHRD_SIT) {				struct iphdr *iph = (struct iphdr *)skb->mac.raw;				printk("TUNNEL=%u.%u.%u.%u->%u.%u.%u.%u ",				       NIPQUAD(iph->saddr),				       NIPQUAD(iph->daddr));			}		} else			printk(" ");	}	dump_packet(loginfo, skb, (u8*)skb->nh.ipv6h - skb->data, 1);	printk("\n");	spin_unlock_bh(&log_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d3984a6b6abac6203868f0e9095c0ed9e33ece03/ip6t_LOG.c/buggy/net/ipv6/netfilter/ip6t_LOG.c