Fix Coverity 1503218: negative loop bound

OPENSSL_sk_num returns an integer which can theoretically be negative.
Assigning this to a size_t and using it as a loop bound isn't ideal.

Rather than adding checked for NULL or negative returns, changing the loop
index and end to int is simpler.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17954)
diff --git a/crypto/encode_decode/decoder_pkey.c b/crypto/encode_decode/decoder_pkey.c
index 873b514..8cb320a 100644
--- a/crypto/encode_decode/decoder_pkey.c
+++ b/crypto/encode_decode/decoder_pkey.c
@@ -260,7 +260,7 @@
 {
     struct collect_data_st *data = arg;
     STACK_OF(EVP_KEYMGMT) *keymgmts = data->keymgmts;
-    size_t i, end_i;
+    int i, end_i;
     EVP_KEYMGMT *keymgmt;
     const OSSL_PROVIDER *prov;
     void *provctx;