-use GPLv3+ consistently
[oweals/gnunet.git] / src / fs / fs_publish_ublock.c
index d4f65edc3237c315bc81ef162e73a4cd81331481..e4580879339bc33beca0d2a1d96339ad3335404c 100644 (file)
@@ -190,7 +190,7 @@ GNUNET_FS_publish_ublock_ (struct GNUNET_FS_Handle *h,
   uris = GNUNET_FS_uri_to_string (uri);
   slen = strlen (uris) + 1;
   if (NULL == ulabel)
-    ulen = 0;
+    ulen = 1;
   else
     ulen = strlen (ulabel) + 1;
   size = mdsize + sizeof (struct UBlock) + slen + ulen;
@@ -201,7 +201,8 @@ GNUNET_FS_publish_ublock_ (struct GNUNET_FS_Handle *h,
   }
   ub_plain = GNUNET_malloc (size);
   kbe = (char *) &ub_plain[1];
-  memcpy (kbe, ulabel, ulen);
+  if (NULL != ulabel)
+    memcpy (kbe, ulabel, ulen);
   kbe += ulen;
   memcpy (kbe, uris, slen);
   kbe += slen;
@@ -241,7 +242,7 @@ GNUNET_FS_publish_ublock_ (struct GNUNET_FS_Handle *h,
   ub_enc->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_FS_UBLOCK);
 
   /* derive signing-key from 'label' and public key of the namespace */
-  nsd = GNUNET_CRYPTO_ecc_key_derive (ns, label);
+  nsd = GNUNET_CRYPTO_ecc_key_derive (ns, label, "fs-ublock");
   GNUNET_CRYPTO_ecc_key_get_public (nsd,
                                    &ub_enc->verification_key);
   GNUNET_assert (GNUNET_OK ==
@@ -251,7 +252,7 @@ GNUNET_FS_publish_ublock_ (struct GNUNET_FS_Handle *h,
   GNUNET_CRYPTO_hash (&ub_enc->verification_key,
                      sizeof (ub_enc->verification_key),
                      &query);
-  GNUNET_CRYPTO_ecc_key_free (nsd);
+  GNUNET_free (nsd);
 
   uc = GNUNET_new (struct GNUNET_FS_PublishUblockContext);
   uc->cont = cont;