Skip to content

Commit 2dee004

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)
1 parent a55bb49 commit 2dee004

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
@@ -4877,14 +4877,14 @@ int json_variant_unbase64(JsonVariant *v, void **ret, size_t *ret_size) {
48774877
if (!json_variant_is_string(v))
48784878
return -EINVAL;
48794879

4880-
return unbase64mem(json_variant_string(v), SIZE_MAX, ret, ret_size);
4880+
return unbase64mem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
48814881
}
48824882

48834883
int json_variant_unhex(JsonVariant *v, void **ret, size_t *ret_size) {
48844884
if (!json_variant_is_string(v))
48854885
return -EINVAL;
48864886

4887-
return unhexmem(json_variant_string(v), SIZE_MAX, ret, ret_size);
4887+
return unhexmem_full(json_variant_string(v), SIZE_MAX, /* secure= */ json_variant_is_sensitive(v), ret, ret_size);
48884888
}
48894889

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

0 commit comments

Comments
 (0)