diff --git a/letsencrypt-auto-source/letsencrypt-auto b/letsencrypt-auto-source/letsencrypt-auto index 4e1503715..f9f02da62 100755 --- a/letsencrypt-auto-source/letsencrypt-auto +++ b/letsencrypt-auto-source/letsencrypt-auto @@ -1593,12 +1593,14 @@ UNLIKELY_EOF # --------------------------------------------------------------------------- # If the script fails for some reason, don't break certbot-auto. set +e - # Suppress unexpected error output and only print the script's output if it - # ran successfully. + # Suppress unexpected error output. CHECK_PERM_OUT=$("$LE_PYTHON" "$TEMP_DIR/check_permissions.py" "$0" 2>/dev/null) CHECK_PERM_STATUS="$?" set -e - if [ "$CHECK_PERM_STATUS" = 0 ]; then + # Only print output if the script ran successfully and it actually produced + # output. The latter check resolves + # https://github.com/certbot/certbot/issues/7012. + if [ "$CHECK_PERM_STATUS" = 0 -a -n "$CHECK_PERM_OUT" ]; then error "$CHECK_PERM_OUT" fi fi diff --git a/letsencrypt-auto-source/letsencrypt-auto.template b/letsencrypt-auto-source/letsencrypt-auto.template index 21db0f908..bff4173d4 100755 --- a/letsencrypt-auto-source/letsencrypt-auto.template +++ b/letsencrypt-auto-source/letsencrypt-auto.template @@ -670,12 +670,14 @@ UNLIKELY_EOF # --------------------------------------------------------------------------- # If the script fails for some reason, don't break certbot-auto. set +e - # Suppress unexpected error output and only print the script's output if it - # ran successfully. + # Suppress unexpected error output. CHECK_PERM_OUT=$("$LE_PYTHON" "$TEMP_DIR/check_permissions.py" "$0" 2>/dev/null) CHECK_PERM_STATUS="$?" set -e - if [ "$CHECK_PERM_STATUS" = 0 ]; then + # Only print output if the script ran successfully and it actually produced + # output. The latter check resolves + # https://github.com/certbot/certbot/issues/7012. + if [ "$CHECK_PERM_STATUS" = 0 -a -n "$CHECK_PERM_OUT" ]; then error "$CHECK_PERM_OUT" fi fi diff --git a/tests/letstest/scripts/test_letsencrypt_auto_certonly_standalone.sh b/tests/letstest/scripts/test_letsencrypt_auto_certonly_standalone.sh index 035512ef7..0973bbc03 100755 --- a/tests/letstest/scripts/test_letsencrypt_auto_certonly_standalone.sh +++ b/tests/letstest/scripts/test_letsencrypt_auto_certonly_standalone.sh @@ -42,8 +42,8 @@ if ! letsencrypt-auto --help --no-self-upgrade | grep -F "letsencrypt-auto [SUBC exit 1 fi -OUTPUT=$(letsencrypt-auto --install-only --no-self-upgrade --quiet 2>&1) -if [ -n "$OUTPUT" ]; then +OUTPUT_LEN=$(letsencrypt-auto --install-only --no-self-upgrade --quiet 2>&1 | wc -c) +if [ "$OUTPUT_LEN" != 0 ]; then echo letsencrypt-auto produced unexpected output! exit 1 fi