-misc bugfixes
This commit is contained in:
parent
bdaaa0f6cb
commit
68a4d90134
@ -179,9 +179,7 @@ credit_history_cb (void *cls,
|
|||||||
if (MHD_HTTP_OK != http_status)
|
if (MHD_HTTP_OK != http_status)
|
||||||
{
|
{
|
||||||
if ( (MHD_HTTP_NO_CONTENT != http_status) ||
|
if ( (MHD_HTTP_NO_CONTENT != http_status) ||
|
||||||
(TALER_EC_NONE != ec) ||
|
(TALER_EC_NONE != ec) )
|
||||||
( (MHD_HTTP_NO_CONTENT != http_status) &&
|
|
||||||
(NULL == details) ) )
|
|
||||||
{
|
{
|
||||||
if (0 == http_status)
|
if (0 == http_status)
|
||||||
{
|
{
|
||||||
@ -294,9 +292,7 @@ debit_history_cb (void *cls,
|
|||||||
if (MHD_HTTP_OK != http_status)
|
if (MHD_HTTP_OK != http_status)
|
||||||
{
|
{
|
||||||
if ( (MHD_HTTP_NO_CONTENT != http_status) ||
|
if ( (MHD_HTTP_NO_CONTENT != http_status) ||
|
||||||
(TALER_EC_NONE != ec) ||
|
(TALER_EC_NONE != ec) )
|
||||||
( (MHD_HTTP_NO_CONTENT != http_status) &&
|
|
||||||
(NULL == details) ) )
|
|
||||||
{
|
{
|
||||||
if (0 == http_status)
|
if (0 == http_status)
|
||||||
{
|
{
|
||||||
|
@ -135,13 +135,11 @@ make_amount (unsigned int val,
|
|||||||
unsigned int frac,
|
unsigned int frac,
|
||||||
struct TALER_Amount *out)
|
struct TALER_Amount *out)
|
||||||
{
|
{
|
||||||
memset (out,
|
GNUNET_assert (GNUNET_OK ==
|
||||||
0,
|
TALER_amount_set_zero (currency,
|
||||||
sizeof (struct TALER_Amount));
|
out));
|
||||||
out->value = val;
|
out->value = val;
|
||||||
out->fraction = frac;
|
out->fraction = frac;
|
||||||
strcpy (out->currency,
|
|
||||||
currency);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -647,12 +647,12 @@ handle_post_management (struct TEH_RequestContext *rc,
|
|||||||
* Handle a get "/management" request.
|
* Handle a get "/management" request.
|
||||||
*
|
*
|
||||||
* @param rc request context
|
* @param rc request context
|
||||||
* @param args array of additional options (must be empty for this function)
|
* @param args array of additional options (must be [0] == "keys")
|
||||||
* @return MHD result code
|
* @return MHD result code
|
||||||
*/
|
*/
|
||||||
static MHD_RESULT
|
static MHD_RESULT
|
||||||
handle_get_management (struct TEH_RequestContext *rc,
|
handle_get_management (struct TEH_RequestContext *rc,
|
||||||
const char *const args[1])
|
const char *const args[2])
|
||||||
{
|
{
|
||||||
if ( (NULL != args[0]) &&
|
if ( (NULL != args[0]) &&
|
||||||
(0 == strcmp (args[0],
|
(0 == strcmp (args[0],
|
||||||
|
@ -558,9 +558,14 @@ seed_forgettable (json_t *f)
|
|||||||
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE,
|
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE,
|
||||||
&sh,
|
&sh,
|
||||||
sizeof (sh));
|
sizeof (sh));
|
||||||
json_object_set_new (f,
|
if (0 !=
|
||||||
key,
|
json_object_set_new (f,
|
||||||
GNUNET_JSON_from_data_auto (&sh));
|
key,
|
||||||
|
GNUNET_JSON_from_data_auto (&sh)))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
@ -441,10 +441,6 @@ TALER_EXCHANGE_wire (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
eh = TALER_EXCHANGE_curl_easy_get_ (wh->url);
|
eh = TALER_EXCHANGE_curl_easy_get_ (wh->url);
|
||||||
GNUNET_break (CURLE_OK ==
|
|
||||||
curl_easy_setopt (eh,
|
|
||||||
CURLOPT_TIMEOUT,
|
|
||||||
get_wire_timeout_seconds (wh->exchange)));
|
|
||||||
if (NULL == eh)
|
if (NULL == eh)
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
@ -452,6 +448,10 @@ TALER_EXCHANGE_wire (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
GNUNET_free (wh);
|
GNUNET_free (wh);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
GNUNET_break (CURLE_OK ==
|
||||||
|
curl_easy_setopt (eh,
|
||||||
|
CURLOPT_TIMEOUT,
|
||||||
|
get_wire_timeout_seconds (wh->exchange)));
|
||||||
ctx = TEAH_handle_to_context (exchange);
|
ctx = TEAH_handle_to_context (exchange);
|
||||||
wh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
|
wh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
|
||||||
eh,
|
eh,
|
||||||
|
@ -613,16 +613,20 @@ TALER_TESTING_cmd_deposit (const char *label,
|
|||||||
ds->wallet_timestamp = GNUNET_TIME_absolute_get ();
|
ds->wallet_timestamp = GNUNET_TIME_absolute_get ();
|
||||||
(void) GNUNET_TIME_round_abs (&ds->wallet_timestamp);
|
(void) GNUNET_TIME_round_abs (&ds->wallet_timestamp);
|
||||||
|
|
||||||
json_object_set_new (ds->contract_terms,
|
GNUNET_assert (0 ==
|
||||||
"timestamp",
|
json_object_set_new (ds->contract_terms,
|
||||||
GNUNET_JSON_from_time_abs (ds->wallet_timestamp));
|
"timestamp",
|
||||||
|
GNUNET_JSON_from_time_abs (
|
||||||
|
ds->wallet_timestamp)));
|
||||||
if (0 != refund_deadline.rel_value_us)
|
if (0 != refund_deadline.rel_value_us)
|
||||||
{
|
{
|
||||||
ds->refund_deadline = GNUNET_TIME_relative_to_absolute (refund_deadline);
|
ds->refund_deadline = GNUNET_TIME_relative_to_absolute (refund_deadline);
|
||||||
(void) GNUNET_TIME_round_abs (&ds->refund_deadline);
|
(void) GNUNET_TIME_round_abs (&ds->refund_deadline);
|
||||||
json_object_set_new (ds->contract_terms,
|
GNUNET_assert (0 ==
|
||||||
"refund_deadline",
|
json_object_set_new (ds->contract_terms,
|
||||||
GNUNET_JSON_from_time_abs (ds->refund_deadline));
|
"refund_deadline",
|
||||||
|
GNUNET_JSON_from_time_abs (
|
||||||
|
ds->refund_deadline)));
|
||||||
}
|
}
|
||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
TALER_string_to_amount (amount,
|
TALER_string_to_amount (amount,
|
||||||
|
@ -389,9 +389,10 @@ maint_child_death (void *cls)
|
|||||||
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
|
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
|
||||||
"Got the dead child process handle, waiting for termination ...\n");
|
"Got the dead child process handle, waiting for termination ...\n");
|
||||||
GNUNET_OS_process_wait_status (*processp,
|
GNUNET_assert (GNUNET_OK ==
|
||||||
&type,
|
GNUNET_OS_process_wait_status (*processp,
|
||||||
&code);
|
&type,
|
||||||
|
&code));
|
||||||
GNUNET_OS_process_destroy (*processp);
|
GNUNET_OS_process_destroy (*processp);
|
||||||
*processp = NULL;
|
*processp = NULL;
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
|
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
|
||||||
|
@ -337,6 +337,8 @@ TALER_CRYPTO_helper_esign_sign_ (
|
|||||||
struct TALER_ExchangePublicKeyP *exchange_pub,
|
struct TALER_ExchangePublicKeyP *exchange_pub,
|
||||||
struct TALER_ExchangeSignatureP *exchange_sig)
|
struct TALER_ExchangeSignatureP *exchange_sig)
|
||||||
{
|
{
|
||||||
|
uint32_t purpose_size = ntohl (purpose->size);
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
try_connect (esh))
|
try_connect (esh))
|
||||||
{
|
{
|
||||||
@ -344,8 +346,9 @@ TALER_CRYPTO_helper_esign_sign_ (
|
|||||||
"Failed to connect to helper\n");
|
"Failed to connect to helper\n");
|
||||||
return TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE;
|
return TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
GNUNET_assert (purpose_size <
|
||||||
|
UINT16_MAX - sizeof (struct TALER_CRYPTO_EddsaSignRequest));
|
||||||
{
|
{
|
||||||
uint32_t purpose_size = ntohl (purpose->size);
|
|
||||||
char buf[sizeof (struct TALER_CRYPTO_EddsaSignRequest) + purpose_size
|
char buf[sizeof (struct TALER_CRYPTO_EddsaSignRequest) + purpose_size
|
||||||
- sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose)];
|
- sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose)];
|
||||||
struct TALER_CRYPTO_EddsaSignRequest *sr
|
struct TALER_CRYPTO_EddsaSignRequest *sr
|
||||||
@ -414,6 +417,7 @@ more:
|
|||||||
if (off < sizeof (struct GNUNET_MessageHeader))
|
if (off < sizeof (struct GNUNET_MessageHeader))
|
||||||
continue;
|
continue;
|
||||||
msize = ntohs (hdr->size);
|
msize = ntohs (hdr->size);
|
||||||
|
GNUNET_assert (msize <= sizeof (buf));
|
||||||
if (off < msize)
|
if (off < msize)
|
||||||
continue;
|
continue;
|
||||||
switch (ntohs (hdr->type))
|
switch (ntohs (hdr->type))
|
||||||
|
@ -173,22 +173,28 @@ handle_mt_avail (struct TALER_CRYPTO_RsaDenominationHelper *dh,
|
|||||||
= (const struct TALER_CRYPTO_RsaKeyAvailableNotification *) hdr;
|
= (const struct TALER_CRYPTO_RsaKeyAvailableNotification *) hdr;
|
||||||
const char *buf = (const char *) &kan[1];
|
const char *buf = (const char *) &kan[1];
|
||||||
const char *section_name;
|
const char *section_name;
|
||||||
|
uint16_t ps;
|
||||||
|
uint16_t snl;
|
||||||
|
|
||||||
if (sizeof (*kan) > ntohs (hdr->size))
|
if (sizeof (*kan) > ntohs (hdr->size))
|
||||||
{
|
{
|
||||||
GNUNET_break_op (0);
|
GNUNET_break_op (0);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
if (ntohs (hdr->size) !=
|
ps = ntohs (kan->pub_size);
|
||||||
sizeof (*kan)
|
snl = ntohs (kan->section_name_len);
|
||||||
+ ntohs (kan->pub_size)
|
if (ntohs (hdr->size) != sizeof (*kan) + ps + snl)
|
||||||
+ ntohs (kan->section_name_len))
|
|
||||||
{
|
{
|
||||||
GNUNET_break_op (0);
|
GNUNET_break_op (0);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
section_name = &buf[ntohs (kan->pub_size)];
|
if (0 == snl)
|
||||||
if ('\0' != section_name[ntohs (kan->section_name_len) - 1])
|
{
|
||||||
|
GNUNET_break_op (0);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
section_name = &buf[ps];
|
||||||
|
if ('\0' != section_name[snl - 1])
|
||||||
{
|
{
|
||||||
GNUNET_break_op (0);
|
GNUNET_break_op (0);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
|
@ -266,6 +266,12 @@ TES_read_work (void *cls,
|
|||||||
continue;
|
continue;
|
||||||
hdr = (const struct GNUNET_MessageHeader *) buf;
|
hdr = (const struct GNUNET_MessageHeader *) buf;
|
||||||
msize = ntohs (hdr->size);
|
msize = ntohs (hdr->size);
|
||||||
|
if (msize < sizeof (struct GNUNET_MessageHeader))
|
||||||
|
{
|
||||||
|
GNUNET_break_op (0);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
GNUNET_assert (msize <= sizeof (client->iobuf));
|
||||||
} while (off < msize);
|
} while (off < msize);
|
||||||
|
|
||||||
if (off > msize)
|
if (off > msize)
|
||||||
|
@ -1116,6 +1116,7 @@ import_key (void *cls,
|
|||||||
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
|
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
|
||||||
"open",
|
"open",
|
||||||
filename);
|
filename);
|
||||||
|
GNUNET_break (0 == close (fd));
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
if (0 != fstat (fd,
|
if (0 != fstat (fd,
|
||||||
@ -1131,6 +1132,7 @@ import_key (void *cls,
|
|||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
"File `%s' is not a regular file, which is not allowed for private keys!\n",
|
"File `%s' is not a regular file, which is not allowed for private keys!\n",
|
||||||
filename);
|
filename);
|
||||||
|
GNUNET_break (0 == close (fd));
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
if (0 != (sbuf.st_mode & (S_IWUSR | S_IRWXG | S_IRWXO)))
|
if (0 != (sbuf.st_mode & (S_IWUSR | S_IRWXG | S_IRWXO)))
|
||||||
@ -1286,7 +1288,7 @@ load_denominations (void *cls,
|
|||||||
{
|
{
|
||||||
struct LoadContext *ctx = cls;
|
struct LoadContext *ctx = cls;
|
||||||
struct Denomination *denom;
|
struct Denomination *denom;
|
||||||
bool wake;
|
bool wake = true;
|
||||||
|
|
||||||
if ( (0 != strncasecmp (denomination_alias,
|
if ( (0 != strncasecmp (denomination_alias,
|
||||||
"coin_",
|
"coin_",
|
||||||
|
Loading…
Reference in New Issue
Block a user