diff options
author | Oneric <oneric@oneric.stub> | 2022-09-09 18:12:18 +0200 |
---|---|---|
committer | Oneric <oneric@oneric.stub> | 2022-09-15 18:40:29 +0200 |
commit | 717cb93daa15c3684c502eab092f1341cd0a21e0 (patch) | |
tree | db7cd7f798caca9472839bb523e57586aa952c09 | |
parent | 5b0dba4b012f8aa8231125a78fec6b8aabee8bdf (diff) | |
download | libass-717cb93daa15c3684c502eab092f1341cd0a21e0.tar.bz2 libass-717cb93daa15c3684c502eab092f1341cd0a21e0.tar.xz |
render_api: sanitise user-supplied values early
We often only check for != 0, later on, with zero being "unset",
but negative values would obviously be bogus here.
-rw-r--r-- | libass/ass_render_api.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libass/ass_render_api.c b/libass/ass_render_api.c index 70cf174..4790565 100644 --- a/libass/ass_render_api.c +++ b/libass/ass_render_api.c @@ -51,6 +51,8 @@ static void ass_reconfigure(ASS_Renderer *priv) void ass_set_frame_size(ASS_Renderer *priv, int w, int h) { + if (w < 0 || h < 0) + w = h = 0; if (priv->settings.frame_width != w || priv->settings.frame_height != h) { priv->settings.frame_width = w; priv->settings.frame_height = h; @@ -60,6 +62,8 @@ void ass_set_frame_size(ASS_Renderer *priv, int w, int h) void ass_set_storage_size(ASS_Renderer *priv, int w, int h) { + if (w < 0 || h < 0) + w = h = 0; if (priv->settings.storage_width != w || priv->settings.storage_height != h) { priv->settings.storage_width = w; @@ -101,6 +105,7 @@ void ass_set_aspect_ratio(ASS_Renderer *priv, double dar, double sar) void ass_set_pixel_aspect(ASS_Renderer *priv, double par) { + if (par < 0) par = 0; if (priv->settings.par != par) { priv->settings.par = par; ass_reconfigure(priv); |