summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2020-04-28 17:16:40 +0200
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2020-04-28 17:16:40 +0200
commitb21cab7cb9da43009df76acdb779f7c89a003378 (patch)
tree5b1c2889e632f96706c26a76afd4e7eace9f6ec1
parente5bc04c4a1499a472f3b6f0bd41c275a8537071f (diff)
fix ftbfs experimental -- cy1
-rw-r--r--src/abd/abd.h8
-rw-r--r--src/abd/abd_serialization.c4
-rw-r--r--src/abd/delegate_misc.c8
-rw-r--r--src/abd/gnunet-abd.c31
-rw-r--r--src/abd/plugin_gnsrecord_abd.c6
5 files changed, 33 insertions, 24 deletions
diff --git a/src/abd/abd.h b/src/abd/abd.h
index 1e9d6bcea..0af0d43ca 100644
--- a/src/abd/abd.h
+++ b/src/abd/abd.h
@@ -245,14 +245,14 @@ struct DelegateEntry
{
/**
- * The signature for this credential by the issuer
+ * Signature meta
*/
- struct GNUNET_CRYPTO_EcdsaSignature signature;
+ struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
/**
- * Signature meta
+ * The signature for this credential by the issuer
*/
- struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+ struct GNUNET_CRYPTO_EcdsaSignature signature;
/**
* Public key of the issuer
diff --git a/src/abd/abd_serialization.c b/src/abd/abd_serialization.c
index 90a89886b..c03fab7dc 100644
--- a/src/abd/abd_serialization.c
+++ b/src/abd/abd_serialization.c
@@ -451,7 +451,7 @@ GNUNET_ABD_delegate_serialize (struct GNUNET_ABD_Delegate *dele,
if (GNUNET_OK !=
GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_DELEGATE,
- &cdata->purpose,
+ cdata,
&cdata->signature,
&cdata->issuer_key))
{
@@ -474,7 +474,7 @@ GNUNET_ABD_delegate_deserialize (const char *data, size_t data_size)
cdata = (struct DelegateEntry *) data;
if (GNUNET_OK !=
GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_DELEGATE,
- &cdata->purpose,
+ cdata,
&cdata->signature,
&cdata->issuer_key))
{
diff --git a/src/abd/delegate_misc.c b/src/abd/delegate_misc.c
index df34cff8b..4740a3e30 100644
--- a/src/abd/delegate_misc.c
+++ b/src/abd/delegate_misc.c
@@ -240,13 +240,7 @@ GNUNET_ABD_delegate_issue (
GNUNET_memcpy (&del[1], tmp_str, attr_len);
- if (GNUNET_OK !=
- GNUNET_CRYPTO_ecdsa_sign (issuer, &del->purpose, &del->signature))
- {
- GNUNET_break (0);
- GNUNET_free (del);
- return NULL;
- }
+ GNUNET_CRYPTO_ecdsa_sign (issuer, del, &del->signature);
dele = GNUNET_malloc (sizeof (struct GNUNET_ABD_Delegate) + attr_len);
dele->signature = del->signature;
diff --git a/src/abd/gnunet-abd.c b/src/abd/gnunet-abd.c
index eb3e29e23..6cf4aab0d 100644
--- a/src/abd/gnunet-abd.c
+++ b/src/abd/gnunet-abd.c
@@ -512,11 +512,13 @@ get_existing_record (void *cls,
unsigned int rd_count,
const struct GNUNET_GNSRECORD_Data *rd)
{
- struct GNUNET_GNSRECORD_Data rdn[rd_count + 1];
struct GNUNET_GNSRECORD_Data *rde;
+ struct GNUNET_GNSRECORD_Data* rdn =
+ GNUNET_malloc(sizeof(*rdn)*(rd_count + 1));
memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data));
- GNUNET_memcpy (&rdn[1], rd, rd_count * sizeof (struct GNUNET_GNSRECORD_Data));
+ GNUNET_memcpy (&rdn[1], rd,
+ rd_count * sizeof (struct GNUNET_GNSRECORD_Data));
rde = &rdn[0];
rde->data = data;
rde->data_size = data_size;
@@ -539,7 +541,7 @@ get_existing_record (void *cls,
rde,
&add_continuation,
&add_qe);
-
+ GNUNET_free(rdn);
return;
}
@@ -602,10 +604,18 @@ store_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego)
if (GNUNET_OK !=
GNUNET_GNSRECORD_string_to_value (type, subject, &data, &data_size))
{
- fprintf (stderr,
- "Value `%s' invalid for record type `%s'\n",
- subject,
- typestring);
+ if(typestring == NULL) {
+ fputs("No value for unknown record type\n", stderr);
+ } else if(subject == NULL) {
+ fprintf(stderr,
+ "No value for record type`%s'\n",
+ typestring);
+ } else {
+ fprintf (stderr,
+ "Value `%s' invalid for record type `%s'\n",
+ subject,
+ typestring);
+ }
GNUNET_SCHEDULER_shutdown ();
return;
}
@@ -917,7 +927,8 @@ run (void *cls,
int i;
while (NULL != (tok = strtok (NULL, ",")))
count++;
- struct GNUNET_ABD_Delegate delegates[count];
+ struct GNUNET_ABD_Delegate* delegates =
+ GNUNET_malloc(sizeof(*delegates)*count);
struct GNUNET_ABD_Delegate *dele;
GNUNET_free (tmp);
tmp = GNUNET_strdup (subject_delegate);
@@ -946,9 +957,11 @@ run (void *cls,
NULL);
for (i = 0; i < count; i++)
{
- GNUNET_free ((char *) delegates[i].issuer_attribute);
+ GNUNET_free_nz ((char *) delegates[i].issuer_attribute);
+ delegates[i].issuer_attribute = NULL;
}
GNUNET_free (tmp);
+ GNUNET_free(delegates);
}
else
{
diff --git a/src/abd/plugin_gnsrecord_abd.c b/src/abd/plugin_gnsrecord_abd.c
index c7635b997..850fa9a45 100644
--- a/src/abd/plugin_gnsrecord_abd.c
+++ b/src/abd/plugin_gnsrecord_abd.c
@@ -235,8 +235,10 @@ abd_string_to_value (void *cls,
(char *) &sets[1]);
for (i = 0; i < entries; i++)
{
- if (0 != set[i].subject_attribute_len)
- GNUNET_free ((char *) set[i].subject_attribute);
+ if (0 != set[i].subject_attribute_len) {
+ GNUNET_free_nz ((char *) set[i].subject_attribute);
+ set[i].subject_attribute = NULL;
+ }
}
sets->set_count = htonl (entries);
sets->data_size = GNUNET_htonll (tmp_data_size);