Skip to content

Commit cce7df4

Browse files
kszczekbluca
authored andcommitted
json: use secure un{base64,hex}mem for sensitive variants
While tracing a LUKS code path in homework, I've noticed that we don't erase buffers when doing unbase64 or unhex on JSON variants, even if the variant is marked as sensitive. (cherry picked from commit 80313c5)
1 parent 261de1c commit cce7df4

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/shared/json.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5107,14 +5107,14 @@ int json_variant_unbase64(JsonVariant *v, void **ret, size_t *ret_size) {
51075107
if (!json_variant_is_string(v))
51085108
return -EINVAL;
51095109

5110-
return unbase64mem(json_variant_string(v), SIZE_MAX, ret, ret_size);
5110+
return unbase64mem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
51115111
}
51125112

51135113
int json_variant_unhex(JsonVariant *v, void **ret, size_t *ret_size) {
51145114
if (!json_variant_is_string(v))
51155115
return -EINVAL;
51165116

5117-
return unhexmem(json_variant_string(v), SIZE_MAX, ret, ret_size);
5117+
return unhexmem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
51185118
}
51195119

51205120
static const char* const json_variant_type_table[_JSON_VARIANT_TYPE_MAX] = {

0 commit comments

Comments
 (0)