Is it because x509 is a local variable in 1 function & freed in another?
PK On Thu, Oct 3, 2013 at 5:22 PM, Sanjay Kumar (sanjaku5) <sanja...@cisco.com>wrote: > Hi,**** > > ** ** > > I have below 2 functions**** > > ** ** > > **1. **Received the certificate data is DER format and convert to > X509 format**** > > ** ** > > RetCode convert_der_to_x509(uint8_t *cert_der, uint32_t cert_len)**** > > {**** > > const unsigned char *bptr = NULL;**** > > ** ** > > X509 *x509 = NULL;**** > > bptr = (unsigned char *)cert_der;**** > > x509 = d2i_X509(NULL, &bptr, cert_len); /*x509 structure > is allocated here*/**** > > if (x509 == NULL)**** > > {**** > > syfer_log->ERR("DER to x509 converion failed");**** > > return RET_ERROR;**** > > }**** > > return RET_SUCCESS;**** > > }**** > > ** ** > > **2. **Clean up the X509 structure**** > > ** ** > > Void cleanup_x509()**** > > {**** > > X509_free(x509);**** > > }**** > > ** ** > > Query:**** > > When I call the cleanup_x509 function:**** > > ** ** > > I get the memory crash**** > > ** ** > > Backtrace:**** > > Program terminated with signal 11, Segmentation fault.**** > > #0 0x081e7748 in ASN1_STRING_free ()**** > > #0 0x081e7748 in ASN1_STRING_free ()**** > > #1 0x081e2b90 in ASN1_primitive_free ()**** > > #2 0x081e2b7a in ASN1_primitive_free ()**** > > #3 0x081e2c1a in asn1_item_combine_free ()**** > > #4 0x081e2e5d in ASN1_template_free ()**** > > #5 0x081e2d9e in asn1_item_combine_free ()**** > > #6 0x081e2e5d in ASN1_template_free ()**** > > #7 0x081e2d9e in asn1_item_combine_free ()**** > > #8 0x081e2e93 in ASN1_item_free ()**** > > #9 0x081defd7 in X509_free ()**** > > #10 0x08052673 in CertificateRemote::cleanup_x509 (this=0x9bb55f0) at > syfer/crypto/Certificate.cpp:309**** > > ** ** > > What could be possible reason for the above crash ?**** > > ** ** > > ** ** > > Thanks,**** > > Sanjay**** > > ** ** >