From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 48289 invoked by alias); 5 Sep 2017 20:25:42 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 48188 invoked by uid 89); 5 Sep 2017 20:25:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qk0-f181.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=z7npA0x/PK4YF+GT4MXLvKHyGIX/c5yWMkkCd1RHCrI=; b=fRhg23ArCmd6MMy8Xn5bWWlRDRFwoCzZmrHjfGvbMi9Of6bM61tEUrpWEJWZ4xDaxo Kh0aWgDVi3g7lSTZ/nGNTp2tq5LSTZZqgf8JF5Y8q7EXpCSpKheywPw39AL8pReKKQ1s DXo78QH/L+ABeft8hiG6kn+pCP7oCv9WO6MGB3Q4CHFwUXfv0Rcn07Jj0bOXDA09bvBE q9Ito2/v5l/uI2riiGs2fc1rOdjYDCOohxZlh83GtXIB5oFrjx1GMYe7YuUHfERCO4cE OhtOSdyLmz0ripqtsR8vwG0HU1x4w+/AUtriJYNTGz2xfbWhqKGCQWCntfpKOrLHlybE jBDg== X-Gm-Message-State: AHPjjUidi5kcqygAcF+tB9W0jMR0uF3q9A2vo0JUz33j7MHID4QtMuYa sK4I3a2Ri4JJdjAbL6GD+Q== X-Google-Smtp-Source: AOwi7QCeqgtV0L+OwKpcFyevR/kt+rSM4KmUiqQo9ILC3fbGzcQ2cXq/NBLeFambSkjPwM/lvnJUNA== X-Received: by 10.233.244.5 with SMTP id y5mr430194qkl.162.1504643134537; Tue, 05 Sep 2017 13:25:34 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Paul Eggert Subject: [PATCH 2/9] posix: accept inode 0 is a valid inode number (BZ #19971) Date: Tue, 05 Sep 2017 20:25:00 -0000 Message-Id: <1504643122-14874-3-git-send-email-adhemerval.zanella@linaro.org> In-Reply-To: <1504643122-14874-1-git-send-email-adhemerval.zanella@linaro.org> References: <1504643122-14874-1-git-send-email-adhemerval.zanella@linaro.org> X-SW-Source: 2017-09/txt/msg00206.txt.bz2 According to this kernel commit 2adc376c55194, d_ino 0 is a regular inode number on Linux (which also matches POSIX, as it does not treat the value as special). This patch makes glob accept is a valid inode number. This is also a sync with gnulib commit c8e57c1. Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py for all major architectures. [BZ #1062] [BZ #19971] * posix/glob.c (struct readdir_result): Remove skip_entry member. (readdir_result_skip_entry, D_INO_TO_RESULT): Remove. All uses removed. --- ChangeLog | 6 ++++++ posix/glob.c | 21 --------------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/posix/glob.c b/posix/glob.c index e19aa6f..36d9e5f 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -114,9 +114,6 @@ struct readdir_result #if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE dirent_type type; #endif -#if defined _LIBC || defined D_INO_IN_DIRENT - bool skip_entry; -#endif }; /* Initialize and return type member of struct readdir_result. */ @@ -132,28 +129,12 @@ readdir_result_type (struct readdir_result d) #endif } -/* Initialize and return skip_entry member of struct readdir_result. */ -static bool -readdir_result_skip_entry (struct readdir_result d) -{ -/* Initializer for skip_entry. POSIX does not require that the d_ino - field be present, and some systems do not provide it. */ -#if defined _LIBC || defined D_INO_IN_DIRENT -# define D_INO_TO_RESULT(source) (source)->d_ino == 0, - return d.skip_entry; -#else -# define D_INO_TO_RESULT(source) - return false; -#endif -} - /* Construct an initializer for a struct readdir_result object from a struct dirent *. No copy of the name is made. */ #define READDIR_RESULT_INITIALIZER(source) \ { \ source->d_name, \ D_TYPE_TO_RESULT (source) \ - D_INO_TO_RESULT (source) \ } /* Call gl_readdir on STREAM. This macro can be overridden to reduce @@ -1543,8 +1524,6 @@ glob_in_dir (const char *pattern, const char *directory, int flags, } if (d.name == NULL) break; - if (readdir_result_skip_entry (d)) - continue; /* If we shall match only directories use the information provided by the dirent call if possible. */ -- 2.7.4