quick-mode: Make sure we have a proposal before determining lifetimes
[strongswan.git] / src / libcharon / sa / ikev1 / tasks / quick_mode.c
index f494e48..50c280f 100644 (file)
@@ -1147,9 +1147,6 @@ METHOD(task_t, process_r, status_t,
                                                                                                                   flags);
                        list->destroy_offset(list, offsetof(proposal_t, destroy));
 
-                       get_lifetimes(this);
-                       apply_lifetimes(this, sa_payload);
-
                        if (!this->proposal)
                        {
                                DBG1(DBG_IKE, "no matching proposal found, sending %N",
@@ -1158,6 +1155,9 @@ METHOD(task_t, process_r, status_t,
                        }
                        this->spi_i = this->proposal->get_spi(this->proposal);
 
+                       get_lifetimes(this);
+                       apply_lifetimes(this, sa_payload);
+
                        if (!get_nonce(this, &this->nonce_i, message))
                        {
                                return send_notify(this, INVALID_PAYLOAD_TYPE);