Try calling EVP_CIPHER_CTX_cleanup(&ctx) at the end...

--- Felix Dorner <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> the following code executes once, and does fine.
> Calling the function a
> second time gives a segfault during the call marked
> by "-->"
> 
> unsigned char *encrypt_message(unsigned char
> *message, int inl, int *outl)
> {
>         EVP_CIPHER_CTX ctx;
>         EVP_CIPHER_CTX_init(&ctx);
>         -->EVP_EncryptInit(&ctx, EVP_bf_ecb(), NULL,
> NULL);
>         EVP_CIPHER_CTX_set_key_length(&ctx,
> SHA_DIGEST_LENGTH);
>         EVP_EncryptInit(&ctx, NULL, k, NULL);
>         char *ret;
>         int tmp, ol;
>         ol = 0;
>         ret = (char *)malloc(inl +
> EVP_CIPHER_CTX_block_size(&ctx));
>         EVP_EncryptUpdate(&ctx, &ret[ol], &tmp,
> message, inl);
>         ol = tmp;
>         EVP_EncryptFinal(&ctx, &ret[ol], &tmp);
>         *outl = ol+tmp;
>         return ret;
> }
> 
> 
> Anything obvious that might lead to the segfault?
> 
> Thanks,
> Felix
>
______________________________________________________________________
> OpenSSL Project                                
> http://www.openssl.org
> User Support Mailing List                   
> openssl-users@openssl.org
> Automated List Manager                          
> [EMAIL PROTECTED]
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to