Structure assignment have to be aligned just like any assignment, and the skb 
could point to anything. So take the safe route and use a memcpy().

Signed-off-by: Pierre Ossman <[EMAIL PROTECTED]>
---

diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 272c69e..a7e2ec9 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -783,7 +783,7 @@ static void icmp_echo(struct sk_buff *skb)
        if (!sysctl_icmp_echo_ignore_all) {
                struct icmp_bxm icmp_param;
 
-               icmp_param.data.icmph      = *icmp_hdr(skb);
+               memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct 
icmphdr));
                icmp_param.data.icmph.type = ICMP_ECHOREPLY;
                icmp_param.skb             = skb;
                icmp_param.offset          = 0;
@@ -819,7 +819,7 @@ static void icmp_timestamp(struct sk_buff *skb)
        icmp_param.data.times[2] = icmp_param.data.times[1];
        if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4))
                BUG();
-       icmp_param.data.icmph      = *icmp_hdr(skb);
+       memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct icmphdr));
        icmp_param.data.icmph.type = ICMP_TIMESTAMPREPLY;
        icmp_param.data.icmph.code = 0;
        icmp_param.skb             = skb;

Attachment: signature.asc
Description: PGP signature

Reply via email to