gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r37478 - gnunet/src/identity-provider


From: gnunet
Subject: [GNUnet-SVN] r37478 - gnunet/src/identity-provider
Date: Thu, 7 Jul 2016 14:17:52 +0200

Author: schanzen
Date: 2016-07-07 14:17:52 +0200 (Thu, 07 Jul 2016)
New Revision: 37478

Modified:
   gnunet/src/identity-provider/gnunet-identity-token.c
   gnunet/src/identity-provider/gnunet-service-identity-provider.c
   gnunet/src/identity-provider/identity_provider_api.c
   gnunet/src/identity-provider/identity_token.c
   gnunet/src/identity-provider/plugin_rest_identity_provider.c
Log:
- fix coverity


Modified: gnunet/src/identity-provider/gnunet-identity-token.c
===================================================================
--- gnunet/src/identity-provider/gnunet-identity-token.c        2016-07-07 
08:55:26 UTC (rev 37477)
+++ gnunet/src/identity-provider/gnunet-identity-token.c        2016-07-07 
12:17:52 UTC (rev 37478)
@@ -33,6 +33,11 @@
   struct GNUNET_CRYPTO_EcdsaPublicKey key;
   struct GNUNET_CRYPTO_EccSignaturePurpose *purpose;
   struct GNUNET_CRYPTO_EcdsaSignature sig;
+  
+  GNUNET_assert (NULL != header_b64);
+  GNUNET_assert (NULL != payload_b64);
+  GNUNET_assert (NULL != signature_b32);
+  
   //Decode payload
   GNUNET_STRINGS_base64_decode (payload_b64,
                                 strlen (payload_b64),
@@ -54,16 +59,25 @@
   purpose->size = htonl(sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) + 
strlen (data));
   purpose->purpose = htonl(GNUNET_SIGNATURE_PURPOSE_GNUID_TOKEN);
   memcpy (&purpose[1], data, strlen(data));
+  GNUNET_free (data);
+  GNUNET_free (header_b64);
+  GNUNET_free (header_b64);
 
+  if (print_token)
+    printf ("Token:\nHeader:\t\t%s\nPayload:\t%s\n", header, payload);
+  GNUNET_free (header);
+  GNUNET_free (payload);
   
   payload_json = json_loads (payload, 0, &error);
   if ((NULL == payload_json) || !json_is_object (payload_json))
   {
+    GNUNET_free (val);
     return;
   }
   keystring_json =  json_object_get (payload_json, "iss");
   if (!json_is_string (keystring_json))
   {
+    GNUNET_free (val);
     return;
   }
   keystring = json_string_value (keystring_json);
@@ -71,6 +85,7 @@
                                                                strlen 
(keystring),
                                                                &key))
   {
+    GNUNET_free (val);
     return;
   }
   GNUNET_STRINGS_string_to_data (signature_b32,
@@ -78,19 +93,17 @@
                                 &sig,
                                 sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
   
-  if (print_token) {
-    printf ("Token:\nHeader:\t\t%s\nPayload:\t%s\nSignature:\t%s\n", header, 
payload, keystring);
-  }
+  if (print_token) 
+    printf ("Signature:\t%s\n", keystring);
   
   if (GNUNET_OK != 
GNUNET_CRYPTO_ecdsa_verify(GNUNET_SIGNATURE_PURPOSE_GNUID_TOKEN,
                                               purpose,
                                               &sig,
                                               &key))
-  {
     printf("Signature not OK!\n");
-    return;
-  }
-  printf("Signature OK!\n");
+  else
+    printf("Signature OK!\n");
+  GNUNET_free (val);
   return;
 }
 int

Modified: gnunet/src/identity-provider/gnunet-service-identity-provider.c
===================================================================
--- gnunet/src/identity-provider/gnunet-service-identity-provider.c     
2016-07-07 08:55:26 UTC (rev 37477)
+++ gnunet/src/identity-provider/gnunet-service-identity-provider.c     
2016-07-07 12:17:52 UTC (rev 37478)
@@ -365,13 +365,13 @@
   {
     if (0 == strcmp (attr->name, "exp"))
     {
-      sscanf (attr->val_head->value,
+      GNUNET_assert (1 == sscanf (attr->val_head->value,
               "%"SCNu64,
-              &token_exp.abs_value_us);
+              &token_exp.abs_value_us));
     } else if (0 == strcmp (attr->name, "nbf")) {
-      sscanf (attr->val_head->value,
+      GNUNET_assert (1 == sscanf (attr->val_head->value,
               "%"SCNu64,
-              &token_nbf.abs_value_us);
+              &token_nbf.abs_value_us));
     }
   }
   token_rel_exp = GNUNET_TIME_absolute_get_difference (token_nbf, token_exp);
@@ -598,7 +598,7 @@
 
   //Get metadata and decrypt token
   ecdhe_privkey = *((struct GNUNET_CRYPTO_EcdhePrivateKey 
*)token_metadata_record->data);
-  aud_key = (struct GNUNET_CRYPTO_EcdsaPublicKey 
*)&ecdhe_privkey+sizeof(struct GNUNET_CRYPTO_EcdhePrivateKey);
+  aud_key = (struct GNUNET_CRYPTO_EcdsaPublicKey *)&(&ecdhe_privkey)[1];
   scopes = GNUNET_strdup ((char*) aud_key+sizeof (struct 
GNUNET_CRYPTO_EcdsaPublicKey));
 
   token_parse2 (token_record->data,
@@ -698,10 +698,10 @@
                                    val);
     }
   }
-  GNUNET_CONTAINER_multihashmap_put (ego_entry->attr_map,
+  GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put 
(ego_entry->attr_map,
                                      &key,
                                      attr,
-                                     
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
+                                     
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
   GNUNET_NAMESTORE_zone_iterator_next (ns_it);
   return;
 }
@@ -1177,7 +1177,7 @@
                 "Number of tokens %d != 2.",
                 rd_count);
     cleanup_exchange_handle (handle);
-    GNUNET_SCHEDULER_add_now (&do_shutdown, handle);
+    GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
     return;
   }
 
@@ -1362,6 +1362,8 @@
                 tmp2,
                 tmp);
     GNUNET_free (tmp_scopes);
+    GNUNET_free (tmp2);
+    GNUNET_free (tmp);
     GNUNET_NAMESTORE_zone_iterator_next (handle->ns_it);
     return;
   }
@@ -1389,7 +1391,8 @@
   GNUNET_free (tmp_scopes);
   //All scopes in token are also in request. Now
   //Check length
-  if (GNUNET_CONTAINER_multihashmap_size (handle->attr_map) == 
scope_count_token)
+  if ((NULL != handle->attr_map) &&
+      (GNUNET_CONTAINER_multihashmap_size (handle->attr_map) == 
scope_count_token))
   {
     //We have an existing token
     handle->label = GNUNET_strdup (lbl);

Modified: gnunet/src/identity-provider/identity_provider_api.c
===================================================================
--- gnunet/src/identity-provider/identity_provider_api.c        2016-07-07 
08:55:26 UTC (rev 37477)
+++ gnunet/src/identity-provider/identity_provider_api.c        2016-07-07 
12:17:52 UTC (rev 37478)
@@ -511,6 +511,7 @@
   slen = strlen (ticket_str) + 1;
   if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct 
GNUNET_IDENTITY_PROVIDER_ExchangeMessage))
   {
+    GNUNET_free (ticket_str);
     GNUNET_break (0);
     return NULL;
   }

Modified: gnunet/src/identity-provider/identity_token.c
===================================================================
--- gnunet/src/identity-provider/identity_token.c       2016-07-07 08:55:26 UTC 
(rev 37477)
+++ gnunet/src/identity-provider/identity_token.c       2016-07-07 12:17:52 UTC 
(rev 37478)
@@ -424,6 +424,9 @@
   GNUNET_asprintf (&tmp_buf, "%s", raw_data);
   ecdh_pubkey_str = strtok (tmp_buf, ",");
   enc_token_str = strtok (NULL, ",");
+  
+  GNUNET_assert (NULL != ecdh_pubkey_str);
+  GNUNET_assert (NULL != enc_token_str);
 
   GNUNET_STRINGS_string_to_data (ecdh_pubkey_str,
                                  strlen (ecdh_pubkey_str),
@@ -547,6 +550,7 @@
     GNUNET_free (signature_target);
     GNUNET_free (payload_str);
     GNUNET_free (payload_base64);
+    GNUNET_free (header_base64);
     GNUNET_free (purpose);
     return GNUNET_SYSERR;
   }

Modified: gnunet/src/identity-provider/plugin_rest_identity_provider.c
===================================================================
--- gnunet/src/identity-provider/plugin_rest_identity_provider.c        
2016-07-07 08:55:26 UTC (rev 37477)
+++ gnunet/src/identity-provider/plugin_rest_identity_provider.c        
2016-07-07 12:17:52 UTC (rev 37478)
@@ -583,7 +583,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Request nonce: %s\n",
              nonce_str);
-  sscanf (nonce_str, "%"SCNu64, &nonce);
+  GNUNET_assert (1 == sscanf (nonce_str, "%"SCNu64, &nonce));
 
   //Get expiration for token from URL parameter
   GNUNET_CRYPTO_hash (GNUNET_IDENTITY_TOKEN_EXP_STRING,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]