using memory after freed in tcp_syncache (syncache_timer())

Don Bowman don at sandvine.com
Sat Jun 28 19:22:22 PDT 2003


From: Don Bowman
 ...
It appears this may also occur in syncache_add():
in this case, syncache_respond() alters the list.

                sc->sc_tp = tp;
                sc->sc_inp_gencnt = tp->t_inpcb->inp_gencnt;
                if (syncache_respond(sc, m) == 0) {
                        s = splnet();
                        TAILQ_REMOVE(&tcp_syncache.timerq[sc->sc_rxtslot],
                            sc, sc_timerq);
                        SYNCACHE_TIMEOUT(sc, sc->sc_rxtslot);
                        splx(s);
                        tcpstat.tcps_sndacks++;
                        tcpstat.tcps_sndtotal++;
                }
                *sop = NULL;


More information about the freebsd-net mailing list