Hi, didn’t you miss a free(sc, M_DEVBUF, 0) in L119 enc_clone_create()?
Otherwise OK reyk > Am 10.06.2019 um 18:53 schrieb Martin Pieuchot <[email protected]>: > > ok? > > Index: net/if_enc.c > =================================================================== > RCS file: /cvs/src/sys/net/if_enc.c,v > retrieving revision 1.73 > diff -u -p -r1.73 if_enc.c > --- net/if_enc.c 8 Jul 2018 16:41:12 -0000 1.73 > +++ net/if_enc.c 10 Jun 2019 16:38:00 -0000 > @@ -77,8 +77,7 @@ enc_clone_create(struct if_clone *ifc, i > if (unit > ENC_MAX_UNITS) > return (EINVAL); > > - if ((sc = malloc(sizeof(struct enc_softc), > - M_DEVBUF, M_NOWAIT|M_ZERO)) == NULL) > + if ((sc = malloc(sizeof(*sc), M_DEVBUF, M_NOWAIT|M_ZERO)) == NULL) > return (ENOBUFS); > > sc->sc_unit = unit; > @@ -131,7 +130,8 @@ enc_clone_create(struct if_clone *ifc, i > if (enc_allifps != NULL) { > memcpy(new, enc_allifps, > sizeof(struct ifnet *) * (enc_max_unit + 1)); > - free(enc_allifps, M_DEVBUF, 0); > + free(enc_allifps, M_DEVBUF, > + sizeof(struct ifnet *) * (enc_max_unit + 1)); > } > enc_allifps = new; > enc_max_unit = unit; > @@ -157,7 +157,7 @@ enc_clone_destroy(struct ifnet *ifp) > NET_UNLOCK(); > > if_detach(ifp); > - free(sc, M_DEVBUF, 0); > + free(sc, M_DEVBUF, sizeof(*sc)); > > return (0); > } >
