aboutsummaryrefslogtreecommitdiffstats
path: root/net/decnet/dn_nsp_in.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/decnet/dn_nsp_in.c')
-rw-r--r--net/decnet/dn_nsp_in.c7
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)