diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c
index efa70ad44906aac3204cd90e76b35c3159caa2ac..32e78924e246bb7f89ad8a7b7a722e04fd879d0e 100644
--- a/net/ipv4/fou.c
+++ b/net/ipv4/fou.c
@@ -87,6 +87,9 @@ static int gue_udp_recv(struct sock *sk, struct sk_buff *skb)
 	if (!pskb_may_pull(skb, len))
 		goto drop;
 
+	uh = udp_hdr(skb);
+	guehdr = (struct guehdr *)&uh[1];
+
 	if (guehdr->version != 0)
 		goto drop;