{
uint16_t size = ntohs (opres->header.size);
const char *str = (const char *) &opres[1];
- if ( (sizeof (struct OperationResult) < size) &&
+ if ( (sizeof (*opres) < size) &&
('\0' != str[size - sizeof (*opres) - 1]) )
{
GNUNET_break (0);
check_result_state (void *cls, const struct StateResult *sres)
{
const char *name = (const char *) &sres[1];
+ uint16_t size = ntohs (sres->header.size);
uint16_t name_size = ntohs (sres->name_size);
- if (name_size <= 2 || '\0' != name[name_size - 1])
+ if (name_size <= 2
+ || size - sizeof (*sres) < name_size
+ || '\0' != name[name_size - 1])
{
LOG (GNUNET_ERROR_TYPE_ERROR,
"check_result_state: Received state result message with invalid name.\n");
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Connecting to PSYCstore service.\n");
- GNUNET_MQ_hd_var_size (result_code,
- GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_CODE,
- struct OperationResult);
-
- GNUNET_MQ_hd_fixed_size (result_counters,
- GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_COUNTERS,
- struct CountersResult);
-
- GNUNET_MQ_hd_var_size (result_fragment,
- GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_FRAGMENT,
- struct FragmentResult);
-
- GNUNET_MQ_hd_var_size (result_state,
- GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_STATE,
- struct StateResult);
-
struct GNUNET_MQ_MessageHandler handlers[] = {
- make_result_code_handler (h),
- make_result_counters_handler (h),
- make_result_fragment_handler (h),
- make_result_state_handler (h),
+ GNUNET_MQ_hd_var_size (result_code,
+ GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_CODE,
+ struct OperationResult,
+ h),
+ GNUNET_MQ_hd_fixed_size (result_counters,
+ GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_COUNTERS,
+ struct CountersResult,
+ h),
+ GNUNET_MQ_hd_var_size (result_fragment,
+ GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_FRAGMENT,
+ struct FragmentResult,
+ h),
+ GNUNET_MQ_hd_var_size (result_state,
+ GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_STATE,
+ struct StateResult,
+ h),
GNUNET_MQ_handler_end ()
};
h->op = GNUNET_OP_create ();
GNUNET_assert (NULL == h->mq);
- h->mq = GNUNET_CLIENT_connecT (h->cfg, "psycstore",
+ h->mq = GNUNET_CLIENT_connect (h->cfg, "psycstore",
handlers, disconnected, h);
GNUNET_assert (NULL != h->mq);
}
if (NULL == method_prefix)
method_prefix = "";
uint16_t method_size = strnlen (method_prefix,
- GNUNET_SERVER_MAX_MESSAGE_SIZE
+ GNUNET_MAX_MESSAGE_SIZE
- sizeof (*req)) + 1;
struct GNUNET_MQ_Envelope *
if (NULL == method_prefix)
method_prefix = "";
uint16_t method_size = strnlen (method_prefix,
- GNUNET_SERVER_MAX_MESSAGE_SIZE
+ GNUNET_MAX_MESSAGE_SIZE
- sizeof (*req)) + 1;
GNUNET_assert ('\0' == method_prefix[method_size - 1]);