[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,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r37478 - gnunet/src/identity-provider,
gnunet <=