On Tue, Feb 06, 2018 at 11:04:51AM +1300, Richard Procter wrote:
> > @@ -657,12 +667,13 @@ ah_input(struct mbuf *m, struct tdb *tdb
> >     m_copyback(m, skip + rplen, ahx->authsize, ipseczeroes, M_NOWAIT);
> >  
> >     /* "Massage" the packet headers for crypto processing. */
> > -   if ((btsx = ah_massage_headers(&m, tdb->tdb_dst.sa.sa_family,
> > -       skip, ahx->type, 0)) != 0) {
> > +   error = ah_massage_headers(&m, tdb->tdb_dst.sa.sa_family, skip,
> > +       ahx->type, 0);
> > +   if (error) {
> >             /* mbuf will be free'd by callee. */
> 
> This pre-existing comment muddled me. ah_massage_headers() has already 
> freed it on error.

Although the code is correct, I also had to read the comment twice
when I first saw it.  I think the tense is wrong.  The callee is
ah_massage_headers, and there free has been called.

Does this clarify it?

bluhm

Index: netinet/ip_ah.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_ah.c,v
retrieving revision 1.135
diff -u -p -r1.135 ip_ah.c
--- netinet/ip_ah.c     6 Feb 2018 14:54:22 -0000       1.135
+++ netinet/ip_ah.c     6 Feb 2018 15:14:29 -0000
@@ -670,7 +670,7 @@ ah_input(struct mbuf *m, struct tdb *tdb
        error = ah_massage_headers(&m, tdb->tdb_dst.sa.sa_family, skip,
            ahx->type, 0);
        if (error) {
-               /* mbuf will be free'd by callee. */
+               /* mbuf has been be free'd by callee. */
                free(tc, M_XDATA, 0);
                crypto_freereq(crp);
                return error;
@@ -1158,7 +1158,7 @@ ah_output(struct mbuf *m, struct tdb *td
        error = ah_massage_headers(&m, tdb->tdb_dst.sa.sa_family, skip,
            ahx->type, 1);
        if (error) {
-               /* mbuf will be free'd by callee. */
+               /* mbuf has been be free'd by callee. */
                free(tc, M_XDATA, 0);
                crypto_freereq(crp);
                return error;

Reply via email to