protolayer_finished_cb cb, void *baton)
{
ssize_t layer_ix = session2_get_protocol(s, protocol);
- if (layer_ix < 0)
- return layer_ix;
+ bool ok = layer_ix >= 0 && layer_ix + 1 < protolayer_grps[s->proto].num_layers;
+ if (kr_fails_assert(ok)) // not found or "last layer"
+ return kr_error(EINVAL);
return session2_submit(s, PROTOLAYER_UNWRAP,
layer_ix + 1, payload, comm, cb, baton);
}
protolayer_finished_cb cb, void *baton)
{
ssize_t layer_ix = session2_get_protocol(s, protocol);
- if (layer_ix < 0)
- return layer_ix;
+ if (kr_fails_assert(layer_ix > 0)) // not found or "last layer"
+ return kr_error(EINVAL);
return session2_submit(s, PROTOLAYER_WRAP, layer_ix - 1,
payload, comm, cb, baton);
}