diff options
author | B. Watson <yalhcru@gmail.com> | 2021-09-10 15:22:48 -0400 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2021-10-13 00:52:15 +0700 |
commit | f286b296adf78fc42f4a398212855b0e71f351d5 (patch) | |
tree | 5d17f0b22f663fbce4c6926cddc73269765f265f /misc/bdfresize | |
parent | 9f55e01c6ae0aea46f0f1464218653ef9dbc8a2f (diff) |
misc/bdfresize: Add argument checking.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'misc/bdfresize')
-rw-r--r-- | misc/bdfresize/bdfresize.SlackBuild | 27 | ||||
-rw-r--r-- | misc/bdfresize/check_factor_args.diff | 48 |
2 files changed, 66 insertions, 9 deletions
diff --git a/misc/bdfresize/bdfresize.SlackBuild b/misc/bdfresize/bdfresize.SlackBuild index cfeae4d3b5adf..e2e41c8b5f142 100644 --- a/misc/bdfresize/bdfresize.SlackBuild +++ b/misc/bdfresize/bdfresize.SlackBuild @@ -6,11 +6,15 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# 20210910 bkw: BUILD=2 +# - fix FONTBOUNDINGBIX typo. +# - add check_factor_args.diff. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=bdfresize VERSION=${VERSION:-1.5} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -22,9 +26,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -57,14 +58,22 @@ rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ +# 20210910 bkw: this one-liner patch came from Debian patch -p1 < $CWD/compilefix.diff +# 20210910 bkw: fix typo in docs +sed -i 's,FONTBOUNDINGBIX,FONTBOUNDINGBOX,g' README $PRGNAM.1 + +# 20210910 bkw: if someone tries to use a decimal as a factor, +# e.g. 1.5, bdfresize silently ignores the .5 and treats the argument +# as just 1. This patch adds a check to make sure the factors consist +# only of digits and 0 or 1 slashes. Patch is by the SlackBuild +# author, who keeps trying to say "-f 1.5" despite all sanity... +patch -p1 < $CWD/check_factor_args.diff + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/misc/bdfresize/check_factor_args.diff b/misc/bdfresize/check_factor_args.diff new file mode 100644 index 0000000000000..5b9ad32e2cad0 --- /dev/null +++ b/misc/bdfresize/check_factor_args.diff @@ -0,0 +1,48 @@ +diff -Naur bdfresize-1.5/bdfresize.c bdfresize-1.5.patched/bdfresize.c +--- bdfresize-1.5/bdfresize.c 2001-01-16 07:11:11.000000000 -0500 ++++ bdfresize-1.5.patched/bdfresize.c 2021-09-10 14:39:09.553534254 -0400 +@@ -48,6 +48,22 @@ + + static int line; + ++static int factor_is_bad(const char *p) { ++ int slashes = 0; ++ while(*p) { ++ if(*p == '/') { ++ if(++slashes > 1) ++ return 1; ++ } else if(*p >= '0' && *p <= '9') { ++ /* NOP */ ++ } else { ++ return 1; ++ } ++ p++; ++ } ++ return 0; ++} ++ + int + main(int argc, char *argv[]) + { +@@ -64,18 +80,21 @@ + if (blackness <= 0) err ++; + break; + case 'w': ++ err += factor_is_bad(optarg); + numerator_x = atoi(optarg); + denominator_x = strchr(optarg,'/') + ? atoi(strchr(optarg,'/')+1) : 1; + if (numerator_x <= 0 || denominator_x <= 0) err ++; + break; + case 'h': ++ err += factor_is_bad(optarg); + numerator_y = atoi(optarg); + denominator_y = strchr(optarg,'/') + ? atoi(strchr(optarg,'/')+1) : 1; + if (numerator_y <= 0 || denominator_y <= 0) err ++; + break; + case 'f': ++ err += factor_is_bad(optarg); + numerator_x = numerator_y = atoi(optarg); + denominator_x = denominator_y = strchr(optarg,'/') + ? atoi(strchr(optarg,'/')+1) : 1; |