diff options
Diffstat (limited to 'net/decnet/dn_nsp_in.c')
-rw-r--r-- | net/decnet/dn_nsp_in.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/decnet/dn_nsp_in.c b/net/decnet/dn_nsp_in.c index 9d20904f6f52..4074a6e5d0de 100644 --- a/net/decnet/dn_nsp_in.c +++ b/net/decnet/dn_nsp_in.c | |||
@@ -362,7 +362,8 @@ static void dn_nsp_conn_conf(struct sock *sk, struct sk_buff *skb) | |||
362 | u16 dlen = *skb->data; | 362 | u16 dlen = *skb->data; |
363 | if ((dlen <= 16) && (dlen <= skb->len)) { | 363 | if ((dlen <= 16) && (dlen <= skb->len)) { |
364 | scp->conndata_in.opt_optl = dn_htons(dlen); | 364 | scp->conndata_in.opt_optl = dn_htons(dlen); |
365 | memcpy(scp->conndata_in.opt_data, skb->data + 1, dlen); | 365 | skb_copy_from_linear_data_offset(skb, 1, |
366 | scp->conndata_in.opt_data, dlen); | ||
366 | } | 367 | } |
367 | } | 368 | } |
368 | dn_nsp_send_link(sk, DN_NOCHANGE, 0); | 369 | dn_nsp_send_link(sk, DN_NOCHANGE, 0); |
@@ -406,7 +407,7 @@ static void dn_nsp_disc_init(struct sock *sk, struct sk_buff *skb) | |||
406 | u16 dlen = *skb->data; | 407 | u16 dlen = *skb->data; |
407 | if ((dlen <= 16) && (dlen <= skb->len)) { | 408 | if ((dlen <= 16) && (dlen <= skb->len)) { |
408 | scp->discdata_in.opt_optl = dn_htons(dlen); | 409 | scp->discdata_in.opt_optl = dn_htons(dlen); |
409 | memcpy(scp->discdata_in.opt_data, skb->data + 1, dlen); | 410 | skb_copy_from_linear_data_offset(skb, 1, scp->discdata_in.opt_data, dlen); |
410 | } | 411 | } |
411 | } | 412 | } |
412 | 413 | ||
@@ -725,7 +726,7 @@ static int dn_nsp_rx_packet(struct sk_buff *skb) | |||
725 | if (!pskb_may_pull(skb, 2)) | 726 | if (!pskb_may_pull(skb, 2)) |
726 | goto free_out; | 727 | goto free_out; |
727 | 728 | ||
728 | skb->h.raw = skb->data; | 729 | skb_reset_transport_header(skb); |
729 | cb->nsp_flags = *ptr++; | 730 | cb->nsp_flags = *ptr++; |
730 | 731 | ||
731 | if (decnet_debug_level & 2) | 732 | if (decnet_debug_level & 2) |