On June 29, 2021 1:20:19 AM GMT+08:00, Neal Cardwell <ncardwell@xxxxxxxxxx> wrote: >) > >On Mon, Jun 28, 2021 at 1:15 PM Phi Nguyen <phind.uet@xxxxxxxxx> 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 I resend my message because I accidently used html format in last one. I am very sorry for the inconvenience caused. --- Yes, the CC had been initialized by the setsockopt, after that, it was initialized again in function tcp_init_transfer() because of setting isck_ca_initialized to 0. Regards, Phi.