pi.value.search.specifics.result.meta = sr->meta;
pi.value.search.specifics.result.uri = sr->uri;
pi.value.search.specifics.result.result = sr;
+ pi.value.search.specifics.result.applicability_rank = sr->optional_support;
sr->client_info = GNUNET_FS_search_make_status_ (&pi, sc);
}
sc->options,
NULL,
sr);
+ GNUNET_free (uu.data.sks.identifier);
}
}
/* decrypt */
GNUNET_CRYPTO_hash_to_aes_key (&sc->requests[i].key, &skey, &iv);
- GNUNET_CRYPTO_aes_decrypt (&kb[1],
- size - sizeof (struct KBlock),
- &skey,
- &iv,
- pt);
+ if (-1 == GNUNET_CRYPTO_aes_decrypt (&kb[1],
+ size - sizeof (struct KBlock),
+ &skey,
+ &iv,
+ pt))
+ {
+ GNUNET_break (0);
+ return;
+ }
/* parse */
eos = memchr (pt, 0, sizeof (pt));
if (NULL == eos)
}
/* decrypt */
GNUNET_CRYPTO_hash_to_aes_key (&sc->requests[i].key, &skey, &iv);
- GNUNET_CRYPTO_aes_decrypt (&nb[1],
- size - sizeof (struct NBlock),
- &skey,
- &iv,
- pt);
+ if (-1 == GNUNET_CRYPTO_aes_decrypt (&nb[1],
+ size - sizeof (struct NBlock),
+ &skey,
+ &iv,
+ pt))
+ {
+ GNUNET_break (0);
+ return;
+ }
/* parse */
eos = memchr (pt, 0, sizeof (pt));
if (NULL == eos)
strlen (identifier),
&key);
GNUNET_CRYPTO_hash_to_aes_key (&key, &skey, &iv);
- GNUNET_CRYPTO_aes_decrypt (&sb[1],
- len,
- &skey,
- &iv,
- pt);
+ if (-1 == GNUNET_CRYPTO_aes_decrypt (&sb[1],
+ len,
+ &skey,
+ &iv,
+ pt))
+ {
+ GNUNET_break (0);
+ return;
+ }
/* parse */
off = GNUNET_STRINGS_buffer_tokenize (pt,
len,
keyword = &sc->uri->data.ksk.keywords[i][1];
GNUNET_CRYPTO_hash (keyword, strlen (keyword), &hc);
pk = GNUNET_CRYPTO_rsa_key_create_from_hash (&hc);
+ GNUNET_assert (pk != NULL);
GNUNET_CRYPTO_rsa_key_get_public (pk, &pub);
GNUNET_CRYPTO_rsa_key_free (pk);
GNUNET_CRYPTO_hash (&pub,
GNUNET_free_non_null (sc->requests);
GNUNET_free_non_null (sc->emsg);
GNUNET_FS_uri_destroy (sc->uri);
+ GNUNET_free_non_null (sc->serialization);
GNUNET_free (sc);
}
{
struct GNUNET_FS_SearchContext *ret;
ret = search_start (h, uri, anonymity, options, cctx, NULL);
+ if (ret == NULL)
+ return NULL;
ret->top = GNUNET_FS_make_top (h, &GNUNET_FS_search_signal_suspend_, ret);
return ret;
}
if (NULL != sr->download)
{
sr->download->search = NULL;
+ sr->download->top = GNUNET_FS_make_top (sr->download->h,
+ &GNUNET_FS_download_signal_suspend_,
+ sr->download);
if (NULL != sr->download->serialization)
{
GNUNET_FS_remove_sync_file_ (sc->h,
? GNUNET_FS_SYNC_PATH_CHILD_SEARCH
: GNUNET_FS_SYNC_PATH_MASTER_SEARCH,
sc->serialization);
+ GNUNET_free (sc->serialization);
}
pi.status = GNUNET_FS_STATUS_SEARCH_STOPPED;
sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc);