aboutsummaryrefslogtreecommitdiff
path: root/src/identity-provider/gnunet-service-identity-provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/identity-provider/gnunet-service-identity-provider.c')
-rw-r--r--src/identity-provider/gnunet-service-identity-provider.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/identity-provider/gnunet-service-identity-provider.c b/src/identity-provider/gnunet-service-identity-provider.c
index 0a690e2d3..32a695091 100644
--- a/src/identity-provider/gnunet-service-identity-provider.c
+++ b/src/identity-provider/gnunet-service-identity-provider.c
@@ -365,13 +365,13 @@ handle_token_update (void *cls)
365 { 365 {
366 if (0 == strcmp (attr->name, "exp")) 366 if (0 == strcmp (attr->name, "exp"))
367 { 367 {
368 sscanf (attr->val_head->value, 368 GNUNET_assert (1 == sscanf (attr->val_head->value,
369 "%"SCNu64, 369 "%"SCNu64,
370 &token_exp.abs_value_us); 370 &token_exp.abs_value_us));
371 } else if (0 == strcmp (attr->name, "nbf")) { 371 } else if (0 == strcmp (attr->name, "nbf")) {
372 sscanf (attr->val_head->value, 372 GNUNET_assert (1 == sscanf (attr->val_head->value,
373 "%"SCNu64, 373 "%"SCNu64,
374 &token_nbf.abs_value_us); 374 &token_nbf.abs_value_us));
375 } 375 }
376 } 376 }
377 token_rel_exp = GNUNET_TIME_absolute_get_difference (token_nbf, token_exp); 377 token_rel_exp = GNUNET_TIME_absolute_get_difference (token_nbf, token_exp);
@@ -598,7 +598,7 @@ token_collect (void *cls,
598 598
599 //Get metadata and decrypt token 599 //Get metadata and decrypt token
600 ecdhe_privkey = *((struct GNUNET_CRYPTO_EcdhePrivateKey *)token_metadata_record->data); 600 ecdhe_privkey = *((struct GNUNET_CRYPTO_EcdhePrivateKey *)token_metadata_record->data);
601 aud_key = (struct GNUNET_CRYPTO_EcdsaPublicKey *)&ecdhe_privkey+sizeof(struct GNUNET_CRYPTO_EcdhePrivateKey); 601 aud_key = (struct GNUNET_CRYPTO_EcdsaPublicKey *)&(&ecdhe_privkey)[1];
602 scopes = GNUNET_strdup ((char*) aud_key+sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)); 602 scopes = GNUNET_strdup ((char*) aud_key+sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
603 603
604 token_parse2 (token_record->data, 604 token_parse2 (token_record->data,
@@ -698,10 +698,10 @@ attribute_collect (void *cls,
698 val); 698 val);
699 } 699 }
700 } 700 }
701 GNUNET_CONTAINER_multihashmap_put (ego_entry->attr_map, 701 GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (ego_entry->attr_map,
702 &key, 702 &key,
703 attr, 703 attr,
704 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); 704 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
705 GNUNET_NAMESTORE_zone_iterator_next (ns_it); 705 GNUNET_NAMESTORE_zone_iterator_next (ns_it);
706 return; 706 return;
707} 707}
@@ -1177,7 +1177,7 @@ process_lookup_result (void *cls, uint32_t rd_count,
1177 "Number of tokens %d != 2.", 1177 "Number of tokens %d != 2.",
1178 rd_count); 1178 rd_count);
1179 cleanup_exchange_handle (handle); 1179 cleanup_exchange_handle (handle);
1180 GNUNET_SCHEDULER_add_now (&do_shutdown, handle); 1180 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
1181 return; 1181 return;
1182 } 1182 }
1183 1183
@@ -1362,6 +1362,8 @@ find_existing_token (void *cls,
1362 tmp2, 1362 tmp2,
1363 tmp); 1363 tmp);
1364 GNUNET_free (tmp_scopes); 1364 GNUNET_free (tmp_scopes);
1365 GNUNET_free (tmp2);
1366 GNUNET_free (tmp);
1365 GNUNET_NAMESTORE_zone_iterator_next (handle->ns_it); 1367 GNUNET_NAMESTORE_zone_iterator_next (handle->ns_it);
1366 return; 1368 return;
1367 } 1369 }
@@ -1389,7 +1391,8 @@ find_existing_token (void *cls,
1389 GNUNET_free (tmp_scopes); 1391 GNUNET_free (tmp_scopes);
1390 //All scopes in token are also in request. Now 1392 //All scopes in token are also in request. Now
1391 //Check length 1393 //Check length
1392 if (GNUNET_CONTAINER_multihashmap_size (handle->attr_map) == scope_count_token) 1394 if ((NULL != handle->attr_map) &&
1395 (GNUNET_CONTAINER_multihashmap_size (handle->attr_map) == scope_count_token))
1393 { 1396 {
1394 //We have an existing token 1397 //We have an existing token
1395 handle->label = GNUNET_strdup (lbl); 1398 handle->label = GNUNET_strdup (lbl);