If the public key decoding failed the command ended up
decoding and failing the same public key for ever.
pk = silc_argument_get_next_arg(pkargs, &type, &pk_len);
while (pk) {
pk = silc_argument_get_next_arg(pkargs, &type, &pk_len);
while (pk) {
- if (!silc_public_key_payload_decode(pk, pk_len, &public_key))
+ if (!silc_public_key_payload_decode(pk, pk_len, &public_key)) {
+ pk = silc_argument_get_next_arg(pkargs, &type, &pk_len);
if (type == 0x03)
type = 0x00;
if (type == 0x03)
type = 0x00;