exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 8b99abbe62464d336fa8e5ab662aaf4bc1c72b2e
parent 7666542ab6aab8ac191d5bda465e20e7948992ef
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 23 Apr 2020 15:26:17 +0200

CSE elimination, fix #6218

Diffstat:
Msrc/util/url.c | 18+++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/util/url.c b/src/util/url.c @@ -84,8 +84,12 @@ static void buffer_write_urlencode (struct GNUNET_Buffer *buf, const char *s) { + size_t ulen; + + ulen = urlencode_len (s); + GNUNET_assert (ulen < ulen + 1); GNUNET_buffer_ensure_remaining (buf, - urlencode_len (s) + 1); + ulen + 1); for (size_t i = 0; i < strlen (s); i++) { if (GNUNET_YES == is_reserved (s[i])) @@ -139,6 +143,8 @@ calculate_argument_length (va_list args) { char *key; char *value; + size_t vlen; + size_t klen; key = va_arg (ap, char *); @@ -148,10 +154,12 @@ calculate_argument_length (va_list args) char *); if (NULL == value) continue; - GNUNET_assert ( (len <= len + urlencode_len (value)) && - (len <= len + urlencode_len (value) + strlen (key)) && - (len < len + urlencode_len (value) + strlen (key) + 2) ); - len += urlencode_len (value) + strlen (key) + 2; + vlen = urlencode_len (value); + klen = strlen (key); + GNUNET_assert ( (len <= len + vlen) && + (len <= len + vlen + klen) && + (len < len + vlen + klen + 2) ); + len += vlen + klen + 2; } va_end (ap); return len;