From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 788A4CA9EAF for ; Sun, 27 Oct 2019 12:11:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 443892070B for ; Sun, 27 Oct 2019 12:11:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572178271; bh=Hi8x7WYvanIhNlVPVdyH7IsyhSTw409zSyZgXr7DWBM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:List-ID:From; b=Wv+rWtmR1UIvMNczXfPU21KbeRlrOhj8A9sIt103srjjo+BSI30JoF+PwpRU+vC/+ bcuxtkHQDk5+fOBRcjnVkK22Isa83Ef/asL72m9uYlIcAz9mzkS/5IX5K6XvuFZPmu xAa2h9YQPZC6rJB01rEkZKSiMflzvYEm/szwRH/0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726730AbfJ0MLL (ORCPT ); Sun, 27 Oct 2019 08:11:11 -0400 Received: from mail-lj1-f196.google.com ([209.85.208.196]:41851 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726684AbfJ0MLK (ORCPT ); Sun, 27 Oct 2019 08:11:10 -0400 Received: by mail-lj1-f196.google.com with SMTP id f5so8393904ljg.8 for ; Sun, 27 Oct 2019 05:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3Zr1M0nCXlilSobwLkNmgKE2widPtGkZk30ZqC0Jsp4=; b=d3QTzyBq1ltmtg4yGSZr5XtauvY/fALYcdqhiDEtFOl1dE9JCqjexjO52exODJRIVQ Eh2Een6o4qvZdUFz/jDS+JnTxGr7PmGqPX7rFmA4YZFRZjrNKL/JZDN1nI+V4NXXs/c+ Hp/xfBUyMptBO5mKJ7+YknkxBRlijCGcU26uA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3Zr1M0nCXlilSobwLkNmgKE2widPtGkZk30ZqC0Jsp4=; b=SaZ3xWpEcYZ10V+MSNE6MFhdzaZ183Jfhx8PAyoWohRpMtl9nqMTKX6Lsy7/LqiLCM DQpGwSZB4n1lEzmh/6iON3J3fBnrKM+oO7U6hxAbEgR2KdNrMQ+bpzyZ4EsC0MQNCvMv Q9wpmv2KZY22NJu6c5i1oS2i+ItO7XMp/2kL/e/zha1So9c59V8qIQkykh/E8hUILe8L 4sSS51k2JTrFvpRqJTxOIdYC2FTe7SWcG3pwbXq7cr0lImQFkI4ivLxb+Je2jmNMjfXv Gr/iLen4QfGSAFH/VaCHOO04ta44Ka+359ouy2hnvnZ8s6dnBa8IrjLSuvBLdUWhaMsH aiNQ== X-Gm-Message-State: APjAAAWsh5uu9vqIU8kDf041FDtDIw1K6eOuEKSXPnoGIxYZ320zrXD1 Eod6nk8F6Dl7NRLDV4q4St85i3KhpdIJ1Q== X-Google-Smtp-Source: APXvYqzHyKDH0DWLLPG07TfPbBdc+KDt99dStmn7UCm1/rvFZwI2z4Z6373ZC8ZRoZSjCtv55kNqlw== X-Received: by 2002:a2e:5c09:: with SMTP id q9mr186963ljb.22.1572178268414; Sun, 27 Oct 2019 05:11:08 -0700 (PDT) Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com. [209.85.167.44]) by smtp.gmail.com with ESMTPSA id u10sm3488393lfu.94.2019.10.27.05.11.08 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Oct 2019 05:11:08 -0700 (PDT) Received: by mail-lf1-f44.google.com with SMTP id j14so727828lfb.8 for ; Sun, 27 Oct 2019 05:11:08 -0700 (PDT) X-Received: by 2002:a19:5504:: with SMTP id n4mr8268196lfe.106.1572177927159; Sun, 27 Oct 2019 05:05:27 -0700 (PDT) MIME-Version: 1.0 References: <20191026185700.10708-1-cyphar@cyphar.com> <20191026185700.10708-3-cyphar@cyphar.com> In-Reply-To: <20191026185700.10708-3-cyphar@cyphar.com> From: Linus Torvalds Date: Sun, 27 Oct 2019 08:05:11 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH RESEND v14 2/6] namei: LOOKUP_IN_ROOT: chroot-like path resolution To: Aleksa Sarai Cc: Al Viro , Jeff Layton , "J. Bruce Fields" , Arnd Bergmann , David Howells , Shuah Khan , Shuah Khan , Ingo Molnar , Peter Zijlstra , Eric Biederman , Andy Lutomirski , Andrew Morton , Alexei Starovoitov , Kees Cook , Jann Horn , Tycho Andersen , David Drysdale , Chanho Min , Oleg Nesterov , Rasmus Villemoes , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Christian Brauner , Aleksa Sarai , Linux Containers , alpha , Linux API , GNU C Library , linux-arch , Linux ARM , linux-fsdevel , linux-ia64@vger.kernel.org, Linux Kernel Mailing List , "open list:KERNEL SELFTEST FRAMEWORK" , linux-m68k , linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390 , Linux-sh list , linux-xtensa@linux-xtensa.org, sparclinux@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kselftest-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org On Sat, Oct 26, 2019 at 2:58 PM Aleksa Sarai wrote: > > + /* LOOKUP_IN_ROOT treats absolute paths as being relative-to-dirfd. */ > + if (flags & LOOKUP_IN_ROOT) > + while (*s == '/') > + s++; > + > /* Figure out the starting path and root (if needed). */ > if (*s == '/') { > error = nd_jump_root(nd); So I'm still hung up on this. I guess I can't help it, but I look at the above, and it makes me go "whoever wrote those tests wasn't thinking". It just annoys me how it tests for '/' completely unnecessarily. If LOOKUP_IN_ROOT is true, we know the subsequent test for '/' is not going to match, because we just removed it. So I look at that code and go "that code is doing stupid things". That's why I suggested moving the LOOKUP_IN_ROOT check inside the '/' test. Alternatively, just make the logic be if (flags & LOOKUP_IN_ROOT) { .. remove '/'s ... } else if (*s == '/') { .. handl;e root .. and remove the next "else" clause Linus