improce memory handling

This commit is contained in:
Karl-Heinz Zimmer 2001-12-13 15:13:09 +00:00
parent 9f84291722
commit cfcac3496a

View File

@ -966,11 +966,12 @@ bool decryptMessage( const char* ciphertext,
const char** cleartext,
const char* certificate )
{
GpgmeCtx ctx;
GpgmeData gCiphertext, gPlaintext;
size_t rCLen;
char* rCiph = 0;
bool bOk = false;
GpgmeCtx ctx;
GpgmeError err;
GpgmeData gCiphertext, gPlaintext;
size_t rCLen = 0;
char* rCiph = 0;
bool bOk = false;
@ -984,6 +985,19 @@ bool decryptMessage( const char* ciphertext,
struct passphrase_cb_info_s info;
if( !ciphertext )
return false;
err = gpgme_new (&ctx);
gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL);
/*
temporary code!!
@ -999,28 +1013,28 @@ bool decryptMessage( const char* ciphertext,
gpgme_new( &ctx );
gpgme_data_new_from_mem( &gCiphertext, ciphertext,
1+strlen( ciphertext ), 1 );
gpgme_data_new( &gPlaintext );
gpgme_op_decrypt( ctx, gCiphertext, gPlaintext );
gpgme_data_release( gCiphertext );
gpgme_data_new_from_mem( &gCiphertext, ciphertext,
1+strlen( ciphertext ), 1 );
gpgme_data_new( &gPlaintext );
rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen );
gpgme_op_decrypt( ctx, gCiphertext, gPlaintext );
gpgme_data_release( gCiphertext );
*cleartext = malloc( rCLen + 1 );
if( *cleartext ) {
if( rCLen ) {
bOk = true;
strncpy((char*)*cleartext, rCiph, rCLen );
}
((char*)(*cleartext))[rCLen] = 0;
}
rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen );
free( rCiph );
gpgme_release( ctx );
return bOk;
*cleartext = malloc( rCLen + 1 );
if( *cleartext ) {
if( rCLen ) {
bOk = true;
strncpy((char*)*cleartext, rCiph, rCLen );
}
((char*)(*cleartext))[rCLen] = 0;
}
free( rCiph );
gpgme_release( ctx );
return bOk;
}
bool decryptAndCheckMessage( const char* ciphertext,