/*
         * Update/check the PFS.
         *
         * For the responder, go with what ever was negotiated.  For
         * the initiator, check what was negotiated against what was
         * sent.
         */
        const struct oakley_group_desc *accepted_dh = 
proto_info->attrs.transattrs.ta_dh;
        switch (st->st_sa_role) {
        case SA_INITIATOR:
                pexpect(expect_accepted);
                if (accepted_dh != NULL && accepted_dh != st->st_pfs_group) {
                        loglog(RC_LOG_SERIOUS,
                               "expecting %s but remote's accepted proposal 
includes %s",
                               st->st_pfs_group == NULL ? "no DH" : 
st->st_pfs_group->common.fqn,
                               accepted_dh == NULL ? "no DH" : 
accepted_dh->common.fqn);
                        return STF_FAIL + v2N_NO_PROPOSAL_CHOSEN;
                }
                st->st_pfs_group = accepted_dh;
                break;

coverity noticed that
                               accepted_dh == NULL ? "no DH" : 
accepted_dh->common.fqn);
was silly because we know that accepted_dh is not NULL (the preceding if 
checks).

I'm wondering, whether the test is correct.  Should it be || instead of &&?  
It's not clear to me.
_______________________________________________
Swan-dev mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan-dev

Reply via email to