[Pkg-gnupg-commit] [gnupg2] 257/292: gpg: Use usual free semantics for packet structure free functions.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon Nov 21 06:31:49 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 8ea3b4c4102dc67ed83d4419b7171e422fc01047
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Nov 15 16:23:41 2016 +0100

    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 at gnupg.org>
---
 g10/free-packet.c | 118 ++++++++++++++++++++++++++++++++----------------------
 g10/getkey.c      |  15 +++----
 2 files changed, 76 insertions(+), 57 deletions(-)

diff --git a/g10/free-packet.c b/g10/free-packet.c
index 2ca1d3b..6038d26 100644
--- a/g10/free-packet.c
+++ b/g10/free-packet.c
@@ -114,11 +114,8 @@ release_public_key_parts (PKT_public_key *pk)
       xfree (pk->prefs);
       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)
     {
       xfree(pk->revkey);
@@ -293,6 +290,9 @@ free_comment( PKT_comment *rem )
 void
 free_attributes(PKT_user_id *uid)
 {
+  if (!uid)
+    return;
+
   xfree(uid->attribs);
   xfree(uid->attrib_data);
 
@@ -304,70 +304,94 @@ free_attributes(PKT_user_id *uid)
 void
 free_user_id (PKT_user_id *uid)
 {
-    log_assert (uid->ref > 0);
-    if (--uid->ref)
-        return;
-
-    free_attributes(uid);
-    xfree (uid->prefs);
-    xfree (uid->namehash);
-    xfree (uid->mbox);
-    xfree (uid);
+  if (!uid)
+    return;
+
+  log_assert (uid->ref > 0);
+  if (--uid->ref)
+    return;
+
+  free_attributes(uid);
+  xfree (uid->prefs);
+  xfree (uid->namehash);
+  xfree (uid->mbox);
+  xfree (uid);
 }
 
 void
 free_compressed( PKT_compressed *zd )
 {
-    if( zd->buf ) { /* have to skip some bytes */
-	/* 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 )
-	    ;
+  if (!zd)
+    return;
+
+  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
 free_encrypted( PKT_encrypted *ed )
 {
-    if( ed->buf ) { /* have to skip some bytes */
-	if( ed->is_partial ) {
-	    while( iobuf_read( ed->buf, NULL, 1<<30 ) != -1 )
-		;
+  if (!ed)
+    return;
+
+  if (ed->buf)
+    {
+      /* We need to skip some bytes. */
+      if (ed->is_partial)
+        {
+          while (iobuf_read( ed->buf, NULL, 1<<30 ) != -1)
+            ;
 	}
-	else {
-	   while( ed->len ) { /* skip the packet */
-	       int n = iobuf_read( ed->buf, NULL, ed->len );
-	       if( n == -1 )
-		   ed->len = 0;
-	       else
-		   ed->len -= n;
-	   }
+      else
+        {
+          while (ed->len)
+            {
+              /* Skip the packet. */
+              int n = iobuf_read( ed->buf, NULL, ed->len );
+              if (n == -1)
+                ed->len = 0;
+              else
+                ed->len -= n;
+            }
 	}
     }
-    xfree(ed);
+  xfree (ed);
 }
 
 
 void
 free_plaintext( PKT_plaintext *pt )
 {
-    if( pt->buf ) { /* have to skip some bytes */
-	if( pt->is_partial ) {
-	    while( iobuf_read( pt->buf, NULL, 1<<30 ) != -1 )
-		;
-	}
-	else {
-	   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;
-	   }
+  if (!pt)
+    return;
+
+  if (pt->buf)
+    { /* We need to skip some bytes.  */
+      if (pt->is_partial)
+        {
+          while (iobuf_read( pt->buf, NULL, 1<<30 ) != -1)
+            ;
+        }
+      else
+        {
+          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);
 }
 
 /****************
diff --git a/g10/getkey.c b/g10/getkey.c
index 5792302..f0e33c5 100644
--- a/g10/getkey.c
+++ b/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.  */
               release_public_key_parts (&best.key);
-              if (best.uid)
-                free_user_id (best.uid);
+              free_user_id (best.uid);
               best = new;
             }
           else if (diff > 0)
             {
               /* Old key is better.  */
               release_public_key_parts (&new.key);
-              if (new.uid)
-                free_user_id (new.uid);
+              free_user_id (new.uid);
             }
           else
             {
               /* A tie.  Keep the old key.  */
               release_public_key_parts (&new.key);
-              if (new.uid)
-                free_user_id (new.uid);
+              free_user_id (new.uid);
             }
         }
       getkey_end (ctx);
       ctx = NULL;
-      if (best.uid)
-        free_user_id (best.uid);
+      free_user_id (best.uid);
 
       if (best.valid)
         {
@@ -3604,8 +3600,7 @@ finish_lookup (kbnode_t keyblock, unsigned int req_usage, int want_exact,
   if (latest_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);
     }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list