Yes, the CC had been initialized by setsockopt, after that, it was intialized again in function tcp_init_transfer() because of setting icsk_ca_initialized to 0. Regards, On Tue, Jun 29, 2021, 01:20 Neal Cardwell wrote: > ) > > On Mon, Jun 28, 2021 at 1:15 PM Phi Nguyen wrote: > > > > On 6/29/2021 12:24 AM, Neal Cardwell wrote: > > > > > Thanks. > > > > > > Can you also please provide a summary of the event sequence that > > > triggers the bug? Based on your Reported-by tag, I guess this is based > > > on the syzbot reproducer: > > > > > > > https://groups.google.com/g/syzkaller-bugs/c/VbHoSsBz0hk/m/cOxOoTgPCAAJ > > > > > > but perhaps you can give a summary of the event sequence that causes > > > the bug? Is it that the call: > > > > > > setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0xd, > > > &(0x7f0000000000)='cdg\x00', 0x4) > > > > > > initializes the CC and happens before the connection is established, > > > and then when the connection is established, the line that sets: > > > icsk->icsk_ca_initialized = 0; > > > is incorrect, causing the CC to be initialized again without first > > > calling the cleanup code that deallocates the CDG-allocated memory? > > > > > > thanks, > > > neal > > > > > > > Hi Neal, > > > > The gdb stack trace that lead to init_transfer_input() is as bellow, the > > current sock state is TCP_SYN_RECV. > > Thanks. That makes sense as a snapshot of time for > tcp_init_transfer(), but I think what would be more useful would be a > description of the sequence of events, including when the CC was > initialized previous to that point (as noted above, was it that the > setsockopt(TCP_CONGESTION) completed before that point?). > > thanks, > neal >