amt: add missing regeneration nonce logic in request logic
authorTaehee Yoo <ap420073@gmail.com>
Sun, 17 Jul 2022 16:09:06 +0000 (16:09 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 19 Jul 2022 10:37:02 +0000 (12:37 +0200)
When AMT gateway starts sending a new request message, it should
regenerate the nonce variable.

Fixes: cbc21dc1cfe9 ("amt: add data plane of amt interface")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/amt.c

index 4c5c74d..e0743c2 100644 (file)
@@ -963,9 +963,13 @@ static void amt_event_send_request(struct amt_dev *amt)
                amt->remote_ip = 0;
                amt_update_gw_status(amt, AMT_STATUS_INIT, false);
                amt->req_cnt = 0;
+               amt->nonce = 0;
                goto out;
        }
 
+       if (!amt->req_cnt)
+               get_random_bytes(&amt->nonce, sizeof(__be32));
+
        amt_send_request(amt, false);
        amt_send_request(amt, true);
        amt_update_gw_status(amt, AMT_STATUS_SENT_REQUEST, true);