fluidsynth/CVE-2021-21417-pre.patch
2021-05-13 17:14:36 +08:00

67 lines
2.2 KiB
Diff

From f83c49d6fa7f1ec4818cb9e920e30adc827d28bf Mon Sep 17 00:00:00 2001
From: Marcus Weseloh <marcus@weseloh.cc>
Date: Wed, 4 Apr 2018 11:03:47 +0200
Subject: [PATCH] Remove sfont_zone_delete, replace with direct
invocations instead
---
src/sfloader/fluid_defsfont.c | 14 ++++----------
src/sfloader/fluid_defsfont.h | 2 --
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c
index 231d248..0330de5 100644
--- a/src/sfloader/fluid_defsfont.c
+++ b/src/sfloader/fluid_defsfont.c
@@ -2832,7 +2832,8 @@ load_pgen (int size, SFData * sf, FILE * fd)
FLUID_LOG (FLUID_WARN,
_("Preset \"%s\": Discarding invalid global zone"),
((SFPreset *) (p->data))->name);
- sfont_zone_delete (sf, hz, (SFZone *) (p2->data));
+ *hz = fluid_list_remove(*hz, p2->data);
+ sfont_free_zone((SFZone *)fluid_list_get(p2));
}
}
@@ -3182,7 +3183,8 @@ load_igen (int size, SFData * sf, FILE * fd)
FLUID_LOG (FLUID_WARN,
_("Instrument \"%s\": Discarding invalid global zone"),
((SFInst *) (p->data))->name);
- sfont_zone_delete (sf, hz, (SFZone *) (p2->data));
+ *hz = fluid_list_remove(*hz, p2->data);
+ sfont_free_zone((SFZone *)fluid_list_get(p2));
}
}
@@ -3566,14 +3568,6 @@ sfont_preset_compare_func (void* a, void* b)
return (aval - bval);
}
-/* delete zone from zone list */
-void
-sfont_zone_delete (SFData * sf, fluid_list_t ** zlist, SFZone * zone)
-{
- *zlist = fluid_list_remove (*zlist, (void*) zone);
- sfont_free_zone (zone);
-}
-
/* Find generator in gen list */
fluid_list_t *
gen_inlist (int gen, fluid_list_t * genlist)
diff --git a/src/sfloader/fluid_defsfont.h b/src/sfloader/fluid_defsfont.h
index 0d5c6c0..d1ceac1 100644
--- a/src/sfloader/fluid_defsfont.h
+++ b/src/sfloader/fluid_defsfont.h
@@ -222,8 +222,6 @@ void sfont_close (SFData * sf);
void sfont_free_zone (SFZone * zone);
int sfont_preset_compare_func (void* a, void* b);
-void sfont_zone_delete (SFData * sf, fluid_list_t ** zlist, SFZone * zone);
-
fluid_list_t *gen_inlist (int gen, fluid_list_t * genlist);
int gen_valid (int gen);
int gen_validp (int gen);
--
2.23.0