From: Øyvind Kolås Date: Thu, 20 Apr 2023 20:08:15 +0000 (+0200) Subject: babl: make naming more defensive against overflow X-Git-Tag: archive/raspbian/1%0.1.106-3+rpi1^2~15^2^2~10 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5b941fa8ce6096d00c3e906bcd603c3307c1fe2d;p=babl.git babl: make naming more defensive against overflow Not neccesary while the static strings are 512 bytes, in regular use we might however want to reduce this to 256bytes. babl-format: make more more defensive --- diff --git a/babl/babl-format.c b/babl/babl-format.c index 3a8e6c0..cbcc880 100644 --- a/babl/babl-format.c +++ b/babl/babl-format.c @@ -140,8 +140,9 @@ format_new_from_format_with_space (const Babl *format, { Babl *ret; char new_name[256]; - snprintf (new_name, sizeof (new_name), "%s-%s", babl_get_name ((void*)format), + snprintf (new_name, sizeof (new_name)-1, "%s-%s", babl_get_name ((void*)format), babl_get_name ((void*)space)); + new_name[255]=0; ret = babl_db_find (babl_format_db(), new_name); if (ret) return ret; diff --git a/babl/babl-space.c b/babl/babl-space.c index 0923354..ff99746 100644 --- a/babl/babl-space.c +++ b/babl/babl-space.c @@ -354,11 +354,13 @@ babl_space_from_rgbxyz_matrix (const char *name, if (name) snprintf (space_db[i].name, sizeof (space_db[i].name), "%s", name); else - /* XXX: this can get longer than 256bytes ! */ - snprintf (space_db[i].name, sizeof (space_db[i].name), + { + snprintf (space_db[i].name, sizeof (space_db[i].name)-1, "space-%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%s,%s,%s", wx,wy,rx,ry,bx,by,gx,gy,babl_get_name (space.trc[0]), babl_get_name(space.trc[1]), babl_get_name(space.trc[2])); + space_db[i].name[sizeof (space_db[i].name)-1]=0; + } babl_space_get_icc ((Babl*)&space_db[i], NULL); return (Babl*)&space_db[i];