Hi James, On 9/7/21 4:14 PM, James Prestwood wrote: > There were two places where SAE returned a fatal error code rather > than silently drop the frame as the spec requires. These two cases > return -EAGAIN which ultimately drops the frame in netdev. > --- > src/sae.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/sae.c b/src/sae.c > index 62fd6c88..fbd0298d 100644 > --- a/src/sae.c > +++ b/src/sae.c > @@ -678,7 +678,7 @@ static int sae_process_commit(struct sae_sm *sm, const uint8_t *from, > if (l_ecc_scalars_are_equal(sm->p_scalar, sm->scalar) || > l_ecc_points_are_equal(sm->p_element, sm->element)) { > l_warn("peer scalar or element matched own, discarding frame"); > - return -ENOMSG; > + return -EAGAIN; Hmm, this one seems like it should remain unchanged? > } > > sm->sc++; > @@ -1185,7 +1185,7 @@ static int sae_verify_accepted(struct sae_sm *sm, uint16_t trans, > /* spec does not specify what to do here, so print and discard */ > if (trans != SAE_STATE_CONFIRMED) { > l_error("received transaction %u in accepted state", trans); > - return -EBADMSG; > + return -EAGAIN; I guess you probably just want 'return 0' here and a quote from 12.4.8.6.1? > } > > if (sm->sync > SAE_SYNC_MAX) > Regards, -Denis