add missing psa_cipher_abort( operation )
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 56f3e1d..a85b168 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -1356,7 +1356,8 @@
                 mode = MBEDTLS_PADDING_NONE;
                 break;
             default:
-                return ( PSA_ERROR_INVALID_ARGUMENT );
+                psa_cipher_abort( operation );
+                return( PSA_ERROR_INVALID_ARGUMENT );
         }
         ret = mbedtls_cipher_set_padding_mode( &operation->ctx.cipher, mode );
         if( ret != 0 )
@@ -1430,10 +1431,8 @@
         return( PSA_ERROR_BAD_STATE );
     if( iv_length != operation->iv_size )
     {
-        if( ( ( operation->alg ) & PSA_ALG_ARC4 ) == PSA_ALG_ARC4 )
-            return( PSA_ERROR_BAD_STATE );
-        else
-            return( PSA_ERROR_INVALID_ARGUMENT );
+        psa_cipher_abort( operation );
+        return( PSA_ERROR_INVALID_ARGUMENT );
     }
     ret =  mbedtls_cipher_set_iv( &operation->ctx.cipher, iv, iv_length );
     if( ret != 0 )