memcpy(tmpbuf, skb->data + ap->crypt->extra_prefix_len, 
memcpy(tmpbuf, skb->data + ap->crypt->extra_mpdu_prefix_len, 
static char * ap_auth_make_challenge(struct ap_data *ap){	char *tmpbuf;	struct sk_buff *skb;	if (ap->crypt == NULL) {		ap_crypt_init(ap);		if (ap->crypt == NULL)			return NULL;	}	tmpbuf = (char *) kmalloc(WLAN_AUTH_CHALLENGE_LEN, GFP_ATOMIC);	if (tmpbuf == NULL) {		PDEBUG(DEBUG_AP, "AP: kmalloc failed for challenge\n");		return NULL;	}	skb = dev_alloc_skb(WLAN_AUTH_CHALLENGE_LEN +			    ap->crypt->extra_prefix_len +			    ap->crypt->extra_postfix_len);	if (skb == NULL) {		kfree(tmpbuf);		return NULL;	}	skb_reserve(skb, ap->crypt->extra_prefix_len);	memset(skb_put(skb, WLAN_AUTH_CHALLENGE_LEN), 0,	       WLAN_AUTH_CHALLENGE_LEN);	if (ap->crypt->encrypt_mpdu(skb, 0, ap->crypt_priv)) {		dev_kfree_skb(skb);		kfree(tmpbuf);		return NULL;	}	memcpy(tmpbuf, skb->data + ap->crypt->extra_prefix_len,	       WLAN_AUTH_CHALLENGE_LEN);	dev_kfree_skb(skb);	return tmpbuf;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5bfc819b53ed67c76f33f969ab627070e85d87c1/hostap_ap.c/buggy/drivers/net/wireless/hostap/hostap_ap.c