From b324f452799a9aba5a1e9acc6833010c8635828e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 04:42:51 +0200 Subject: Adding debian version 2.33.1-0.1. Signed-off-by: Daniel Baumann --- debian/tests/oversized-chunks | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 debian/tests/oversized-chunks (limited to 'debian/tests/oversized-chunks') diff --git a/debian/tests/oversized-chunks b/debian/tests/oversized-chunks new file mode 100755 index 0000000..126ae86 --- /dev/null +++ b/debian/tests/oversized-chunks @@ -0,0 +1,69 @@ +#!/bin/bash +# +# This test was written in response to http://bugs.debian.org/785075 to +# attempt to automatically catch when/if it happens again. +# It seems something in the build toolchain is sometimes producing lots +# of embedded zeroes in the executables. +# For example in util-linux 2.26.2-2 the /sbin/fstrim was over 2MB in size +# instead of normal ~ 40kB. +# +# Copyright (c) 2015, Andreas Henriksson +set -e +set -u +#set -x + +PACKAGES="util-linux bsdutils mount" +# 10k should be large enough to not trigger false positives. Bump this +# up if needed. +CHUNKSIZELIMIT="10000" + +CURRENT="" +LAST="" +RET=0 + + +for FILE in $(dpkg -L $PACKAGES | egrep '/s?bin/') ; do + +if [ ! -e "$FILE" ]; then + #echo "E: target file '$FILE' not found." >&2 + exit 1 +fi + +function chunk_size +{ + #echo "DEBUG: start => $1, stop => $2" >&2 + SIZE=$(echo ibase=16 \; ${2^^} - ${1^^} | bc) + #echo "I: Calculated chunk size $SIZE ($2 - $1)" >&2 + echo $SIZE +} + +hd $FILE | grep -C1 '^\*' | while read -a CURRENT +do + if [ "${CURRENT[0]}" = "--" ]; then + #echo "I: Skipping separator" >&2 + continue + fi + + if [ "${CURRENT[0]}" = "*" ]; then + #echo "I: Found chunk indicator." >&2 + START="$LAST" + fi + + if [ "$LAST" = "*" ]; then + #echo "I: Both start and stop should now be located." >&2 + STOP="${CURRENT[0]}" + CHUNKSIZE=$(chunk_size "$START" "$STOP") + if [ "$CHUNKSIZE" -gt "$CHUNKSIZELIMIT" ]; then + echo "E: oversized chunk found in $FILE !" + ((RET++)) + fi + fi + + #echo "I: Yet another line processed." >&2 + LAST="${CURRENT[0]}" + +done + +done + +exit $RET -- cgit v1.2.3