Nadav Har'El
6d1abc5b2c
utils/base64: fix misleading code and comment (no functional change)
...
utils/base64.cc had some strange code with a strange comment in
base64_begins_with().
The code had
base.substr(operand.size() - 4, operand.size())
The comment claims that this is "last 4 bytes of base64-encoded string",
but this comment is misleading - operand is typically shorter than base
(this this whole point of the base64_begins_with()), so the real
intention of the code is not to find the *last* 4 bytes of base, but rather
the *next* four bytes after the (operand.size() - 4) which we already copied.
These four bytes that may need the full power of base64_decode_string()
because they may or may not contain padding.
But, if we really want the next 4 bytes, why pass operand.size() as the
length of the substring? operand.size() is at least 4 (it's a mutiple of
4, and if it's 0 we returned earlier), but it could me more. We don't
need more, we just need 4. It's not really wrong to take more than 4 (so
this patch doesn't *fix* any bug), but can be wasteful. So this code
should be:
base.substr(operand.size() - 4, 4)
We already have in test/boost/alternator_unit_test.cc a test,
test_base64_begins_with that takes encoded base64 strings up to 12
characters in length (corresponding to decoded strings up to 8 chars),
and substrings from length 0 to the base string's length, and check
that test_base64_begins_with succeeds.
Signed-off-by: Nadav Har'El <nyh@scylladb.com >
Closes scylladb/scylladb#25712
2025-09-01 08:57:50 +03:00
..
2024-12-18 17:45:13 +02:00
2025-07-16 17:14:08 +03:00
2025-08-31 11:37:39 +03:00
2025-04-28 12:30:13 +02:00
2025-09-01 06:41:57 +03:00
2025-08-14 16:18:43 +03:00
2024-12-23 23:37:02 +01:00
2025-03-17 10:03:06 +02:00
2025-02-19 12:12:28 +03:00
2025-07-15 23:29:21 +02:00
2025-07-15 23:29:21 +02:00
2025-05-29 13:05:08 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00
2025-09-01 08:57:50 +03:00
2025-07-16 17:14:08 +03:00
2025-06-26 15:29:28 +03:00
2025-01-14 07:56:39 -05:00
2025-07-23 17:03:05 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-02-26 23:17:27 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-08-05 08:23:35 +03:00
2024-12-18 17:45:13 +02:00
2025-08-05 00:56:50 +02:00
2025-03-06 10:22:05 +02:00
2025-07-29 13:43:17 +08:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-08-27 21:37:54 +03:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-08-05 08:23:35 +03:00
2025-02-25 10:32:32 +03:00
2025-02-25 10:32:32 +03:00
2025-02-06 11:33:59 +03:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00
2025-07-08 10:38:23 +03:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-10-21 11:21:52 +03:00
2025-04-01 00:07:28 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-02-26 23:15:16 +02:00
2025-01-14 07:56:39 -05:00
2025-08-28 18:06:37 +02:00
2025-08-28 18:06:37 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-02-26 23:17:27 +02:00
2025-01-07 13:22:00 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-08-27 10:23:04 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-06-26 12:25:38 +02:00
2025-03-26 11:15:13 +01:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-04-12 11:47:02 +03:00
2025-07-03 13:34:04 +03:00
2025-07-03 13:34:04 +03:00
2025-01-09 11:14:49 +02:00
2024-12-18 17:45:13 +02:00
2025-04-01 00:07:28 +02:00
2025-04-01 00:07:28 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-06-17 10:23:52 +03:00
2025-06-10 11:20:21 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-07-21 11:56:40 +03:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-03-20 14:54:09 +00:00
2025-03-20 14:54:09 +00:00
2025-03-03 16:58:38 +02:00
2025-03-03 16:58:38 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-03-06 10:22:05 +02:00
2025-01-14 07:56:39 -05:00
2025-04-30 16:43:22 +03:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-05-29 22:11:41 +03:00
2025-05-29 22:11:41 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-07-29 23:51:43 +03:00
2024-12-18 17:45:13 +02:00
2025-06-30 19:12:08 +02:00
2025-04-28 12:30:13 +02:00
2025-07-21 11:56:40 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-08-01 02:15:04 +03:00
2025-08-01 02:15:04 +03:00
2025-03-06 12:17:32 +01:00
2024-12-18 17:45:13 +02:00
2025-04-12 11:47:00 +03:00
2025-04-12 11:47:00 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-23 23:37:02 +01:00
2024-12-23 23:37:02 +01:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-07-03 13:34:04 +03:00
2025-01-14 07:56:39 -05:00
2025-07-17 16:40:02 +02:00
2025-07-14 18:41:34 +03:00
2025-07-14 18:41:34 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-08-01 02:15:04 +03:00
2024-12-18 17:45:13 +02:00
2025-07-08 16:29:55 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-04-01 00:07:28 +02:00
2024-12-18 17:45:13 +02:00
2025-07-03 13:34:04 +03:00
2025-02-26 23:23:53 +02:00
2025-08-11 14:22:01 +03:00
2025-05-27 12:43:11 +03:00
2025-05-27 12:43:11 +03:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-08-05 08:23:35 +03:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-21 16:24:45 +08:00
2024-12-18 17:45:13 +02:00
2025-06-23 17:54:01 +02:00
2025-01-14 07:56:39 -05:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00
2025-08-27 21:37:54 +03:00
2024-12-18 17:45:13 +02:00
2025-07-23 15:36:45 +02:00
2025-07-23 15:36:45 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2024-12-18 17:45:13 +02:00
2025-01-14 07:56:39 -05:00