Re: enc(4) free sizes
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 : > > 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.c8 Jul 2018 16:41:12 -1.73 > +++ net/if_enc.c10 Jun 2019 16:38:00 - > @@ -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); > } >
Re: enc(4) free sizes
On 10/06/19(Mon) 13:53, Martin Pieuchot wrote: > ok? And now with all of them! 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.c8 Jul 2018 16:41:12 - 1.73 +++ net/if_enc.c10 Jun 2019 16:55:23 - @@ -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; @@ -116,7 +115,7 @@ enc_clone_create(struct if_clone *ifc, i if (error != 0) { NET_UNLOCK(); if_detach(ifp); - free(sc, M_DEVBUF, 0); + free(sc, M_DEVBUF, sizeof(*sc)); return (error); } @@ -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); } @@ -280,7 +280,8 @@ enc_setif(struct ifnet *ifp, u_int rdoma if (enc_ifps != NULL) { memcpy(new, enc_ifps, sizeof(struct ifnet *) * (enc_max_rdomain + 1)); - free(enc_ifps, M_DEVBUF, 0); + free(enc_ifps, M_DEVBUF, + sizeof(struct ifnet *) * (enc_max_rdomain + 1)); } enc_ifps = new; enc_max_rdomain = rdomain;
enc(4) free sizes
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.c8 Jul 2018 16:41:12 - 1.73 +++ net/if_enc.c10 Jun 2019 16:38:00 - @@ -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); }