Getting SSL_connect segmentation fault in Linux application

Viewed 682

I am preparing a sample C application to stream file from one remote(FTP) location to another remote location(HTTP). In the application I want to download file using curl API & uploading the downloaded content using ssl API. I am getting segmentation-fault in SSL_connect(), Here is the init code,

SSL* ssl = NULL;//Global variable
SSL_CTX* ssl_ctx = NULL;//Global variable
/* initialize OpenSSL first */
SSL_library_init();
SSL_load_error_strings();

do
{
    ssl_ctx = SSL_CTX_new(SSLv23_client_method());
    if (!ssl_ctx)
    {
        fprintf(stderr, "Failed to SSL_CTX_new\n");
        break;
    }
    SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL);
    ssl = SSL_new(ssl_ctx);
    if (!ssl)
    {
        fprintf(stderr, "Failed to SSL_new\n");
        break;
    }
    if (SSL_set_fd(ssl, sock) != 1)
    {
        fprintf(stderr, "Failed to SSL_set_fd\n");
        break;
    }
    int err = SSL_connect(ssl);
    if (err != 1)
    {
        fprintf(stderr, "Failed to SSL_connect\n");
        break;
    }

    return_code = 0;
} while(0);

Here 'sock' is open socket connected with remote opened before this call. I verified pointers passing & type-casting, Looks good to me. Can anyone suggest any break-through? Thanks in advance.

1 Answers
Related