Re: [PATCH] DCCP: Initialize ireq6->pktopts before used it | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
Gerrit Renker wrote:
I think I should add dccp_v6_reqsk_init() do to the init work since dccp_reqsk_init may be fail too.I think this is not necessary, it can be done like this req = inet6_reqsk_alloc(&dccp6_request_sock_ops); if (req == NULL) goto drop; ireq6 = inet6_rsk(req); ireq6->pktopts = NULL; if (dccp_reqsk_init(req, dccp_sk(sk), skb)) goto drop_and_free; This is since dccp_reqsk_init() only initialises the inet_sk and dccp_sk parts, and does not do IPv6-specific initialisation. Irrespective of the oops, this is an error and will be fixed in the testtree today.With regard to the oops, the log pointed to the dccp_v6_reqsk_destructorand so it would make sense, since the pktopts was not initialised to NULL and since kfree_skb() calls skb->destructor().As before, thanks a lot for testing this code and for reporting this.
Yes, You are right. The patch is valid after changed as you said. Signed-off-by: Wei Yongjun <yjwei@xxxxxxxxxxxxxx> --- a/net/dccp/ipv6.c 2008-05-29 22:27:55.000000000 -0400 +++ b/net/dccp/ipv6.c 2008-06-05 07:02:08.000000000 -0400 @@ -410,6 +410,9 @@ static int dccp_v6_conn_request(struct s if (req == NULL) goto drop; + ireq6 = inet6_rsk(req); + ireq6->pktopts = NULL; + if (dccp_reqsk_init(req, dccp_sk(sk), skb)) goto drop_and_free; @@ -420,10 +423,8 @@ static int dccp_v6_conn_request(struct s if (security_inet_conn_request(sk, skb, req)) goto drop_and_free; - ireq6 = inet6_rsk(req); ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr); ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr); - ireq6->pktopts = NULL; if (ipv6_opt_accepted(sk, skb) || np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo || -- To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Kernel List] [Site Home] [IETF DCCP] [Linux Networking] [Git] [Security] [Linux Assembly] [Bugtraq] [Rubini] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Linux SCSI] [DDR & Rambus] [Linux Resources]
![]() |