misc/bdfresize: Add argument checking.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
9f55e01c6a
commit
f286b296ad
|
@ -6,11 +6,15 @@
|
||||||
|
|
||||||
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
# 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)
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
PRGNAM=bdfresize
|
PRGNAM=bdfresize
|
||||||
VERSION=${VERSION:-1.5}
|
VERSION=${VERSION:-1.5}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-2}
|
||||||
TAG=${TAG:-_SBo}
|
TAG=${TAG:-_SBo}
|
||||||
PKGTYPE=${PKGTYPE:-tgz}
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
@ -22,9 +26,6 @@ if [ -z "$ARCH" ]; then
|
||||||
esac
|
esac
|
||||||
fi
|
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
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -57,14 +58,22 @@ rm -rf $PRGNAM-$VERSION
|
||||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||||
cd $PRGNAM-$VERSION
|
cd $PRGNAM-$VERSION
|
||||||
chown -R root:root .
|
chown -R root:root .
|
||||||
find -L . \
|
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
|
||||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
|
||||||
-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 {} \;
|
|
||||||
|
|
||||||
|
# 20210910 bkw: this one-liner patch came from Debian
|
||||||
patch -p1 < $CWD/compilefix.diff
|
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" \
|
CFLAGS="$SLKCFLAGS" \
|
||||||
CXXFLAGS="$SLKCFLAGS" \
|
CXXFLAGS="$SLKCFLAGS" \
|
||||||
./configure \
|
./configure \
|
||||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue