mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-12 08:58:20 +03: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:
parent
bac06497fe
commit
7e4be6a584
@ -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]
|
Loading…
x
Reference in New Issue
Block a user