https://github.com/cacalabs/libcaca/commit/e4968ba6e93e9fd35429eb16895c785c51072015.patch Patch adjusted to remove the lines modifying caca/t/canvas.cpp. This file does not exist in the current release. From e4968ba6e93e9fd35429eb16895c785c51072015 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 26 Feb 2021 12:40:06 +0100 Subject: [PATCH] Fix a problem in the caca_resize() overflow detection and add several unit tests. --- caca/canvas.c | 16 ++++++++-------- caca/t/canvas.cpp | 18 +++++++++++++++--- tools/makefont.c | 22 +++++++++++++++++++--- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/caca/canvas.c b/caca/canvas.c index d0715392..08c628c9 100644 --- a/caca/canvas.c +++ b/caca/canvas.c @@ -367,6 +367,14 @@ int caca_resize(caca_canvas_t *cv, int width, int height) { int x, y, f, old_width, old_height, old_size; + /* Check for overflow */ + int new_size = width * height; + if (new_size < 0 || (width > 0 && new_size / width != height)) + { + seterrno(EOVERFLOW); + return -1; + } + old_width = cv->width; old_height = cv->height; old_size = old_width * old_height; @@ -377,14 +385,6 @@ int caca_resize(caca_canvas_t *cv, int width, int height) * dirty rectangle handling */ cv->width = width; cv->height = height; - int new_size = width * height; - - /* Check for overflow */ - if (new_size / width != height) - { - seterrno(EOVERFLOW); - return -1; - } /* If width or height is smaller (or both), we have the opportunity to * reduce or even remove dirty rectangles */ diff --git a/tools/makefont.c b/tools/makefont.c index 226c8838..66718605 100644 --- a/tools/makefont.c +++ b/tools/makefont.c @@ -40,7 +40,8 @@ * and the UTF-8 glyphs necessary for canvas rotation and mirroring. */ static unsigned int const blocklist[] = { - 0x0000, 0x0080, /* Basic latin: A, B, C, a, b, c */ + 0x0020, 0x0080, /* Basic latin: A, B, C, a, b, c */ +#if 0 0x0080, 0x0100, /* Latin-1 Supplement: Ä, Ç, å, ß */ 0x0100, 0x0180, /* Latin Extended-A: Ā č Ō œ */ 0x0180, 0x0250, /* Latin Extended-B: Ǝ Ƹ */ @@ -63,6 +64,7 @@ static unsigned int const blocklist[] = 0x30a0, 0x3100, /* Katakana: ロ ル */ 0xff00, 0xfff0, /* Halfwidth and Fullwidth Forms: A, B, C, a, b, c */ 0x10400, 0x10450, /* Deseret: 𐐒 𐐋 */ +#endif 0, 0 }; @@ -317,8 +319,22 @@ int main(int argc, char *argv[]) printf_unicode(>ab[n]); if(gtab[n].same_as == n) - printf_hex(" */ %s\n", - glyph_data + gtab[n].data_offset, gtab[n].data_size); + { + char const *lut = " .:nmW@"; + printf("\n"); + for (int y = 0; y < height; ++y) + { + for (int x = 0; x < gtab[n].data_width; ++x) + { + int val = glyph_data[gtab[n].data_offset + y * gtab[n].data_width + x]; + char ch = lut[val * val * 7 / 256 / 256]; + printf("%c%c", ch, ch); + } + printf("\n"); + } + //printf_hex(" */ %s\n", + // glyph_data + gtab[n].data_offset, gtab[n].data_size); + } else { printf(" is "); ip'>* gnu/packages/patches/u-boot-infodocs-target.patch: Delete file. * gnu/packages/patches/u-boot-patman-guix-integration.patch: Delete file. * gnu/local.mk: De-register patches. * gnu/packages/patches/u-boot-allow-disabling-openssl.patch: Refresh. * gnu/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch: Refresh. * gnu/packages/bootloaders.scm (u-boot): Update to 2023.07.02. [native-inputs]: Add python-pyelftools. [source]: Remove patches. (u-boot-tools)[phases]: Update substitution for python3-coverage. Adjust 'patch to catch more openssl incompatibilities. Split lines in 'patch phase. [native-inputs]: Add python-filelock and python-pytest-xdist. (make-u-boot-sunxi64-package): Set SCP environment variable. (u-boot-sifive-unleashed): Update to use opensbi. (u-boot-puma-rk3399)[inputs]: Add arm-trusted-firmware-rk3399 to package-inputs instead of native-inputs. (u-boot-rockpro64-rk3399): Disable CONFIG_SPL_FIT_SIGNATURE in config. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Vagrant Cascadian 2021-08-02gnu: u-boot: Update to 2021.07....* gnu/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/bootloaders.scm (%u-boot-sifive-prevent-relocating-initrd-fdt): New variable. (u-boot): Update to 2021.07. [native-inputs]: Add python-pycryptodomex. (u-boot-2021.07): Delete variable. (u-boot-tools)[arguments]: Adapt 'patch phase, disable failing test_spl test. (u-boot-sifive-unmatched): Use default u-boot package. (u-boot-pinebook-pro-rk3328): Use default u-boot package. Pierre Langlois