Merge branch 't/oggdec_cleanups'
[paraslash.git] / gcrypt.c
index c6365470c736ada796f037403cb3bf837203c996..f825f6c6a3de6388959d7b900f31ef9d48e6397b 100644 (file)
--- a/gcrypt.c
+++ b/gcrypt.c
@@ -763,7 +763,9 @@ static int decode_rsa(gcry_sexp_t sexp, int key_size, unsigned char *outbuf,
        PARA_DEBUG_LOG("decrypted buffer before unpad (%d bytes):\n",
                key_size);
        dump_buffer("non-unpadded decrypted buffer", oaep_buf, key_size);;
        PARA_DEBUG_LOG("decrypted buffer before unpad (%d bytes):\n",
                key_size);
        dump_buffer("non-unpadded decrypted buffer", oaep_buf, key_size);;
-       unpad_oaep(oaep_buf, key_size, outbuf, nbytes);
+       ret = unpad_oaep(oaep_buf, key_size, outbuf, nbytes);
+       if (ret < 0)
+               goto out_mpi_release;
        PARA_DEBUG_LOG("decrypted buffer after unpad (%zu bytes):\n",
                *nbytes);
        dump_buffer("unpadded decrypted buffer", outbuf, *nbytes);;
        PARA_DEBUG_LOG("decrypted buffer after unpad (%zu bytes):\n",
                *nbytes);
        dump_buffer("unpadded decrypted buffer", outbuf, *nbytes);;