[gnutls-dev] [PATCH] Fixing OpenPGP keyring import (again)
Ludovic Courtès
ludovic.courtes at laas.fr
Tue May 22 13:31:38 CEST 2007
Hi,
Timo Schulz <twoaday at gmx.net> writes:
> Ludovic Courtes wrote:
>> err = cdk_stream_tmp_from_mem (data->data, data->size, &input);
>> if (!err)
>> err = cdk_stream_set_armor_flag (input, 0);
>> if (!err)
>> err = cdk_keydb_new_from_stream (&keyring->db, 0, input);
>> if (err)
>> {
>> cdk_stream_close (input);
>> gnutls_assert ();
>> }
>>
>> That won't work if `cdk_stream_tmp_from_mem ()' returns an error.
>
> Why? input is set to NULL in the function and thus cdk_stream_close
> does nothing because the param is NULL.
`cdk_keydb_new_from_stream ()' does not always initialize INPUT to NULL
on error, at least not in the OpenCDK currently available in HEAD:
cdk_error_t
cdk_keydb_new_from_stream (cdk_keydb_hd_t *r_hd, int secret,
cdk_stream_t in)
{
cdk_keydb_hd_t hd;
if (!r_hd)
return CDK_Inv_Value;
And `cdk_stream_close ()' returns an error if STREAM is NULL:
cdk_error_t
cdk_stream_close (cdk_stream_t s)
{
struct stream_filter_s *f, *f2;
cdk_error_t rc;
if (!s)
return CDK_Inv_Value;
Well, we don't check its return value...
> IMHO the ChangeLog entries are generated from the CVS commit logs.
It turns out that they are not automatically generated.
Thanks,
Ludovic.
More information about the Gnutls-dev
mailing list