mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
shared/json: fix memory leak on failed normalization
We need to increase the counter immediately after taking the ref, otherwise we may not unref it properly if we fail before incrementing.
This commit is contained in:
@@ -4655,10 +4655,11 @@ int json_variant_normalize(JsonVariant **v) {
|
||||
if (!a)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < m; i++) {
|
||||
for (i = 0; i < m; ) {
|
||||
a[i] = json_variant_ref(json_variant_by_index(*v, i));
|
||||
i++;
|
||||
|
||||
r = json_variant_normalize(a + i);
|
||||
r = json_variant_normalize(&a[i-1]);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
}
|
||||
|
||||
1
test/fuzz/fuzz-json/leak-normalize-fail
Normal file
1
test/fuzz/fuzz-json/leak-normalize-fail
Normal file
@@ -0,0 +1 @@
|
||||
[7E73]
|
||||
Reference in New Issue
Block a user