Skip to content

Commit 9bc0b4c

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) (cherry picked from commit cce7df4) (cherry picked from commit 2dee004)
1 parent 327344d commit 9bc0b4c

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
@@ -4874,14 +4874,14 @@ int json_variant_unbase64(JsonVariant *v, void **ret, size_t *ret_size) {
48744874
if (!json_variant_is_string(v))
48754875
return -EINVAL;
48764876

4877-
return unbase64mem(json_variant_string(v), SIZE_MAX, ret, ret_size);
4877+
return unbase64mem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
48784878
}
48794879

48804880
int json_variant_unhex(JsonVariant *v, void **ret, size_t *ret_size) {
48814881
if (!json_variant_is_string(v))
48824882
return -EINVAL;
48834883

4884-
return unhexmem(json_variant_string(v), SIZE_MAX, ret, ret_size);
4884+
return unhexmem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
48854885
}
48864886

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

0 commit comments

Comments
 (0)