mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
gpg: Use usual free semantics for packet structure free functions.
* g10/free-packet.c (free_attributes): Turn function into a nop for a NULL arg. (free_user_id): Ditto. (free_compressed): Ditto. (free_encrypted): Ditto. (free_plaintext): Ditto. (release_public_key_parts): Avoid extra check for NULL. * g10/getkey.c (get_best_pubkey_byname): Ditto. -- This change avoid surprises because it is common that function named like free and taking a pointer also have similar semantics. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
12834e84ac
commit
8ea3b4c410
@ -114,11 +114,8 @@ release_public_key_parts (PKT_public_key *pk)
|
|||||||
xfree (pk->prefs);
|
xfree (pk->prefs);
|
||||||
pk->prefs = NULL;
|
pk->prefs = NULL;
|
||||||
}
|
}
|
||||||
if (pk->user_id)
|
free_user_id (pk->user_id);
|
||||||
{
|
pk->user_id = NULL;
|
||||||
free_user_id (pk->user_id);
|
|
||||||
pk->user_id = NULL;
|
|
||||||
}
|
|
||||||
if (pk->revkey)
|
if (pk->revkey)
|
||||||
{
|
{
|
||||||
xfree(pk->revkey);
|
xfree(pk->revkey);
|
||||||
@ -293,6 +290,9 @@ free_comment( PKT_comment *rem )
|
|||||||
void
|
void
|
||||||
free_attributes(PKT_user_id *uid)
|
free_attributes(PKT_user_id *uid)
|
||||||
{
|
{
|
||||||
|
if (!uid)
|
||||||
|
return;
|
||||||
|
|
||||||
xfree(uid->attribs);
|
xfree(uid->attribs);
|
||||||
xfree(uid->attrib_data);
|
xfree(uid->attrib_data);
|
||||||
|
|
||||||
@ -304,70 +304,94 @@ free_attributes(PKT_user_id *uid)
|
|||||||
void
|
void
|
||||||
free_user_id (PKT_user_id *uid)
|
free_user_id (PKT_user_id *uid)
|
||||||
{
|
{
|
||||||
log_assert (uid->ref > 0);
|
if (!uid)
|
||||||
if (--uid->ref)
|
return;
|
||||||
return;
|
|
||||||
|
|
||||||
free_attributes(uid);
|
log_assert (uid->ref > 0);
|
||||||
xfree (uid->prefs);
|
if (--uid->ref)
|
||||||
xfree (uid->namehash);
|
return;
|
||||||
xfree (uid->mbox);
|
|
||||||
xfree (uid);
|
free_attributes(uid);
|
||||||
|
xfree (uid->prefs);
|
||||||
|
xfree (uid->namehash);
|
||||||
|
xfree (uid->mbox);
|
||||||
|
xfree (uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
free_compressed( PKT_compressed *zd )
|
free_compressed( PKT_compressed *zd )
|
||||||
{
|
{
|
||||||
if( zd->buf ) { /* have to skip some bytes */
|
if (!zd)
|
||||||
/* don't have any information about the length, so
|
return;
|
||||||
* we assume this is the last packet */
|
|
||||||
while( iobuf_read( zd->buf, NULL, 1<<30 ) != -1 )
|
if (zd->buf)
|
||||||
;
|
{
|
||||||
|
/* We need to skip some bytes. Because don't have any
|
||||||
|
* information about the length, so we assume this is the last
|
||||||
|
* packet */
|
||||||
|
while (iobuf_read( zd->buf, NULL, 1<<30 ) != -1)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
xfree(zd);
|
xfree(zd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
free_encrypted( PKT_encrypted *ed )
|
free_encrypted( PKT_encrypted *ed )
|
||||||
{
|
{
|
||||||
if( ed->buf ) { /* have to skip some bytes */
|
if (!ed)
|
||||||
if( ed->is_partial ) {
|
return;
|
||||||
while( iobuf_read( ed->buf, NULL, 1<<30 ) != -1 )
|
|
||||||
;
|
if (ed->buf)
|
||||||
|
{
|
||||||
|
/* We need to skip some bytes. */
|
||||||
|
if (ed->is_partial)
|
||||||
|
{
|
||||||
|
while (iobuf_read( ed->buf, NULL, 1<<30 ) != -1)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
while( ed->len ) { /* skip the packet */
|
{
|
||||||
int n = iobuf_read( ed->buf, NULL, ed->len );
|
while (ed->len)
|
||||||
if( n == -1 )
|
{
|
||||||
ed->len = 0;
|
/* Skip the packet. */
|
||||||
else
|
int n = iobuf_read( ed->buf, NULL, ed->len );
|
||||||
ed->len -= n;
|
if (n == -1)
|
||||||
}
|
ed->len = 0;
|
||||||
|
else
|
||||||
|
ed->len -= n;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xfree(ed);
|
xfree (ed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
free_plaintext( PKT_plaintext *pt )
|
free_plaintext( PKT_plaintext *pt )
|
||||||
{
|
{
|
||||||
if( pt->buf ) { /* have to skip some bytes */
|
if (!pt)
|
||||||
if( pt->is_partial ) {
|
return;
|
||||||
while( iobuf_read( pt->buf, NULL, 1<<30 ) != -1 )
|
|
||||||
;
|
if (pt->buf)
|
||||||
}
|
{ /* We need to skip some bytes. */
|
||||||
else {
|
if (pt->is_partial)
|
||||||
while( pt->len ) { /* skip the packet */
|
{
|
||||||
int n = iobuf_read( pt->buf, NULL, pt->len );
|
while (iobuf_read( pt->buf, NULL, 1<<30 ) != -1)
|
||||||
if( n == -1 )
|
;
|
||||||
pt->len = 0;
|
}
|
||||||
else
|
else
|
||||||
pt->len -= n;
|
{
|
||||||
}
|
while( pt->len )
|
||||||
|
{ /* Skip the packet. */
|
||||||
|
int n = iobuf_read( pt->buf, NULL, pt->len );
|
||||||
|
if (n == -1)
|
||||||
|
pt->len = 0;
|
||||||
|
else
|
||||||
|
pt->len -= n;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xfree(pt);
|
xfree (pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
|
15
g10/getkey.c
15
g10/getkey.c
@ -1602,29 +1602,25 @@ get_best_pubkey_byname (ctrl_t ctrl, GETKEY_CTX *retctx, PKT_public_key *pk,
|
|||||||
{
|
{
|
||||||
/* New key is better. */
|
/* New key is better. */
|
||||||
release_public_key_parts (&best.key);
|
release_public_key_parts (&best.key);
|
||||||
if (best.uid)
|
free_user_id (best.uid);
|
||||||
free_user_id (best.uid);
|
|
||||||
best = new;
|
best = new;
|
||||||
}
|
}
|
||||||
else if (diff > 0)
|
else if (diff > 0)
|
||||||
{
|
{
|
||||||
/* Old key is better. */
|
/* Old key is better. */
|
||||||
release_public_key_parts (&new.key);
|
release_public_key_parts (&new.key);
|
||||||
if (new.uid)
|
free_user_id (new.uid);
|
||||||
free_user_id (new.uid);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* A tie. Keep the old key. */
|
/* A tie. Keep the old key. */
|
||||||
release_public_key_parts (&new.key);
|
release_public_key_parts (&new.key);
|
||||||
if (new.uid)
|
free_user_id (new.uid);
|
||||||
free_user_id (new.uid);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getkey_end (ctx);
|
getkey_end (ctx);
|
||||||
ctx = NULL;
|
ctx = NULL;
|
||||||
if (best.uid)
|
free_user_id (best.uid);
|
||||||
free_user_id (best.uid);
|
|
||||||
|
|
||||||
if (best.valid)
|
if (best.valid)
|
||||||
{
|
{
|
||||||
@ -3604,8 +3600,7 @@ finish_lookup (kbnode_t keyblock, unsigned int req_usage, int want_exact,
|
|||||||
if (latest_key)
|
if (latest_key)
|
||||||
{
|
{
|
||||||
pk = latest_key->pkt->pkt.public_key;
|
pk = latest_key->pkt->pkt.public_key;
|
||||||
if (pk->user_id)
|
free_user_id (pk->user_id);
|
||||||
free_user_id (pk->user_id);
|
|
||||||
pk->user_id = scopy_user_id (foundu);
|
pk->user_id = scopy_user_id (foundu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user