From patchwork Sun Oct 8 08:36:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Emil Velikov via arch-projects X-Patchwork-Id: 268 Return-Path: Delivered-To: patchwork@archlinux.org Received: from apollo.archlinux.org (localhost.localdomain [127.0.0.1]) by apollo.archlinux.org (Postfix) with ESMTP id 449EE15C7025 for ; Sun, 8 Oct 2017 08:36:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on apollo.archlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=2.5 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.1 Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Sun, 8 Oct 2017 08:36:23 +0000 (UTC) Received: from orion.archlinux.org (localhost.localdomain [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 623E66B61B54C; Sun, 8 Oct 2017 08:36:21 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [IPv6:2a01:4f8:160:3033::2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by orion.archlinux.org (Postfix) with ESMTPS; Sun, 8 Oct 2017 08:36:21 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 316082BB3D; Sun, 8 Oct 2017 08:36:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1507451781; bh=Q0bqLZs5/BKQKhSxbvWlkzbN0Pc3M+YA/EHYLNQ81mg=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc; b=h5kY5k/wp56cv+nVz2SMvjANMdJtSybMq2RIERk0xDIzCMl7ccGXIfKiy4TsTx9O2 btNgUniOYSAjRI4IzoiPmb2Kz0umbXL8AIs58MXuUXfrKkcYo+4o8Co47uNcURGrJv ZFvK9f4yrgfm0VBaNB47k07VMK+5RGinigSApAWV2gULO074eT4D/9J6yee1N1bj8v 1i+tDN4qHtuBGi2FXYgRsa4ISpthresqv1fi7ldzbSBWEeZyyNikkMkHYlYgyqeE43 wcIQjmEq7aZzlztRbk6H0husCzcPofcRRdCG5I5d8Ob1r8Ep0S5pm7IPqyW6C3N6aJ 8z/Us4IblEoeTt1Xq32EgbWKtGygUIXsnFN9TmpncKWVUXdufnceCKXQyTHqJooxOw y1X0WspvDinqIB8/zXKj+k3BEhibNbW17eH9Wei31oJwqL2gbt/iml+Rmwbuos2O+E VErck9/pbHEDCazUqQXpwCFF92Ctdi5SGxiaIfEHwqV2hR318VPE7azfrkmKFvZjDo uGfwpBNPOdoAbi5spiik6LVo+bax+l2x0IyqstDvadtsZzKMUWvUWVABHOyoyx48Xh esx/UdyQbxjI/kXJwI923pf922ao5ek39jC1QreUaadEmzhOwyo3p/Y7XmZI744UBm xorwrXDWubCZfa6K489L1nPg= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 05C522BB29 for ; Sun, 8 Oct 2017 08:36:20 +0000 (UTC) Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by luna.archlinux.org (Postfix) with ESMTPS for ; Sun, 8 Oct 2017 08:36:20 +0000 (UTC) Received: from orion.archlinux.org (localhost.localdomain [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 1941B6B61B548 for ; Sun, 8 Oct 2017 08:36:19 +0000 (UTC) Received: from mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by orion.archlinux.org (Postfix) with ESMTPS for ; Sun, 8 Oct 2017 08:36:19 +0000 (UTC) Received: by mail-wm0-x22e.google.com with SMTP id b189so15463387wmd.4 for ; Sun, 08 Oct 2017 01:36:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:content-transfer-encoding:user-agent; bh=qriqmxx0bT7KaEAwk2Vp3yGNnoTNY2vw4zOR5AbVfUE=; b=FOT2jUmG2sK5oeSe+P8cPlWsxysXtxNR+LPKnttKtlneg3QkGk4voSkkrINN5pKYd/ 3KBPZBPJbU6EeUSn7qx+NqrhGyKM/EmaViadqIDiGccG8pV/KEPRxNfrom+6pcAOn2Tb KZkT0EFSDaKQ4Gn0MF9Qm/13JJoaPFSbA2oKRLyJG+Hlw/1zX2JgjlGT2LKfs3aVHEbc PTiPk4sSkFiH9nCBPqENQtJctjXMG1KyXlfrKJUecfRqGI4N0EMRIV53SUeh3yCBRI6Q M9yFRyswOL23ofc0P42dHwJx1YWpfmDSBTpe3q3EUYMS2DNRtyLC0Fydp7jJCUORr3QV SK1A== X-Gm-Message-State: AMCzsaWX52mFlQobzR1t9eFLpFY65SYm2hbmX+Rdw1UWH0/0lZiE/a9S zuPfnPVY6lXOUShBL7lfd1CdjA== X-Google-Smtp-Source: AOwi7QBJ55yY1r8jlPd/X+SKLpaxcUxtJuRVqyv/9losqtTdNv+gVkQ0fE8HJvuFkf0iWGK6zFIJaQ== X-Received: by 10.80.177.178 with SMTP id m47mr7059114edd.181.1507451778446; Sun, 08 Oct 2017 01:36:18 -0700 (PDT) Received: from Mindship-03 (ip5653397a.direct-adsl.nl. [86.83.57.122]) by smtp.gmail.com with ESMTPSA id e6sm4952372eda.66.2017.10.08.01.36.17 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 08 Oct 2017 01:36:17 -0700 (PDT) Date: Sun, 8 Oct 2017 10:36:12 +0200 To: arch-projects@archlinux.org Message-ID: <20171008083612.GA3694@Mindship-03> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.1 (2017-09-22) Subject: [arch-projects] [netctl][PATCH] Improve handling of untrimmed profile names (FS#55295) X-BeenThere: arch-projects@archlinux.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Arch Linux projects development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Jouke Witteveen via arch-projects Reply-To: Arch Linux projects development discussion Cc: Jouke Witteveen Errors-To: arch-projects-bounces@archlinux.org Sender: "arch-projects" Reported by Michaƫl Cadilhac --- src/ifplugd.action | 4 ++-- src/lib/globals | 6 +++--- src/netctl-auto | 2 +- src/netctl.in | 4 ++-- src/wifi-menu | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ifplugd.action b/src/ifplugd.action index fa0321e..3da1ccc 100755 --- a/src/ifplugd.action +++ b/src/ifplugd.action @@ -8,13 +8,13 @@ PROFILE_FILE="$STATE_DIR/ifplugd-$1.profile" case "$2" in up) - while read -r profile; do + while IFS= read -r profile; do if ForceConnect=yes "$SUBR_DIR/network" start "$profile"; then mkdir -p "$(dirname "$PROFILE_FILE")" printf "%s" "$profile" > "$PROFILE_FILE" exit 0 fi - done < <(list_profiles | while read -r profile; do + done < <(list_profiles | while IFS= read -r profile; do report_debug "Examining profile '$profile'" ( source "$PROFILE_DIR/$profile" > /dev/null diff --git a/src/lib/globals b/src/lib/globals index 3caae2f..6cf8968 100644 --- a/src/lib/globals +++ b/src/lib/globals @@ -103,7 +103,7 @@ timeout_wait() { ### Profile management -## List all acceptable profiles names (assume they don't contain newlines) +## List all acceptable profiles names separated by newlines list_profiles() { # Follow aliases with -L, skip forbidden/reserved names find -L "$PROFILE_DIR/" -maxdepth 1 -type f -not -name '.*' -not -name '*~' -not -name $'*\n*' -not -name '*.action' -not -name '*.conf' -not -name '*.service' -printf "%f\n" @@ -116,9 +116,9 @@ load_profile() { if [[ -z $1 || ! -r "$PROFILE_DIR/$1" ]]; then exit_error "Profile '$1' does not exist or is not readable" fi - while read -r hook; do + while IFS= read -r hook; do source "$hook" - done < <(find -L "$PROFILE_DIR/hooks" -maxdepth 1 -type f -executable -not -name '.*' -not -name '*~' | sort -u) + done < <(find -L "$PROFILE_DIR/hooks" -maxdepth 1 -type f -executable -not -name '.*' -not -name '*~' -not -name $'*\n*' | sort -u) source "$PROFILE_DIR/$1" if [[ -z $Interface ]]; then exit_error "Profile '$1' does not specify an interface" diff --git a/src/netctl-auto b/src/netctl-auto index 70f56b6..72f06c6 100755 --- a/src/netctl-auto +++ b/src/netctl-auto @@ -214,7 +214,7 @@ start() { echo "p2p_disabled=1" >> "$wpa_conf" local profile - list_profiles | while read -r profile; do + list_profiles | while IFS= read -r profile; do report_debug "Examining profile '$profile'" ( source "$PROFILE_DIR/$profile" diff --git a/src/netctl.in b/src/netctl.in index 1b81d53..43213bc 100644 --- a/src/netctl.in +++ b/src/netctl.in @@ -30,7 +30,7 @@ END list() { local indicators=( ' ' '+' '*' ) i - list_profiles | while read -r Profile; do + list_profiles | while IFS= read -r Profile; do if sd_call "is-active --quiet" "$Profile" &> /dev/null; then [[ $(sd_status_text "$Profile") == "online" ]] (( i = 2 - $? )) @@ -43,7 +43,7 @@ list() { store() { mkdir -p "$(dirname "$STATE_FILE")" - list_profiles | while read -r Profile; do + list_profiles | while IFS= read -r Profile; do if sd_call "is-active --quiet" "$Profile" &> /dev/null; then printf "%s\n" "$Profile" fi diff --git a/src/wifi-menu b/src/wifi-menu index eb04342..4774119 100755 --- a/src/wifi-menu +++ b/src/wifi-menu @@ -33,7 +33,7 @@ quote_safe() { # for interface $1. init_profiles() { local i=0 essid profile - while read -r profile; do + while IFS= read -r profile; do essid=$( unset INTERFACE ESSID source "$PROFILE_DIR/$profile" > /dev/null