From owner-svn-src-head@freebsd.org Sat Jul 30 04:31:06 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 823B0BA8BA2 for ; Sat, 30 Jul 2016 04:31:06 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 12E08166C for ; Sat, 30 Jul 2016 04:31:05 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f44.google.com with SMTP id g62so83241239lfe.3 for ; Fri, 29 Jul 2016 21:31:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=xqAd4VFFeC5I5pqiTTVdXnTrm6QoKt+9jZPE+YT3z+k=; b=CnVw26rRvYbySCCAXmTWEGo76/Ip6hcWDw+Q2TO/OBDSR9ETyz0hgtgCzr5lz5Jb/m 3UVxTqWs/Zb3mzxf0SO2/6+q1qsLOv81MnW2/iaipTelVIbzoi8vSTV/TPYGOTx2JI9V K21QpnX+aScef9MPdYJuKwKr70Wr3ZXiEhedo56+5RNXINbcmZNw1Qz10lnd9xcEy4K1 jSrgMnnlVlmYR2gSD58sp7rWgcCacOMcN6q0GizHsrZ82mnRLEN29KVOlUcpG6nB0Vih cDnoL2uA/oNDVOyV+ygy4oozW02N2KmtdO5PDGGU/4nlMB9Wlviw05s8CdypQ4JptVk9 a/Ug== X-Gm-Message-State: AEkoouvSv/vP6AQ16MdfNafa9VZsmf4QV7BItaafyaKUagRZRTUfytJKiBEVWkQyNhC1SA== X-Received: by 10.25.41.142 with SMTP id p136mr16301321lfp.32.1469853057559; Fri, 29 Jul 2016 21:30:57 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id r196sm3242672lfd.41.2016.07.29.21.30.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Jul 2016 21:30:57 -0700 (PDT) Subject: Re: svn commit: r303530 - head/lib/libc/gen To: Bruce Evans References: <201607300209.u6U29BXC082700@repo.freebsd.org> <20160730140305.G1962@besplex.bde.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Andrey Chernov Message-ID: <84c77b80-8b51-8698-f27a-7f6452867d66@freebsd.org> Date: Sat, 30 Jul 2016 07:30:55 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160730140305.G1962@besplex.bde.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jul 2016 04:31:06 -0000 On 30.07.2016 7:15, Bruce Evans wrote: > On Sat, 30 Jul 2016, Andrey A. Chernov wrote: > >> Log: >> Reset errno for readdirfunc() before contunue. > > In C99, library functions are not permitted to set errno to 0. The glob() > family shouldn't use a different (worse) convention, and POSIX doesn't > seem to have any special wording to allow different behaviour. This is historic practice for this function at least since GLOB_LIMIT was introduced (in 2001) and common across NetBSD/OpenBSD. Existent programs may relay on that to check that limit is reached and not allocation error, so with few additional overwriting from my side I add nothing new: Revision 80525 Modified Sun Jul 29 00:52:37 2001 UTC (15 years ago) by mikeh Rename the GLOB_MAXPATH flag of glob(3) to GLOB_LIMIT to be compatible with NetBSD and OpenBSD. glob(3) will now return GLOB_NOSPACE with errno set to 0 instead of GLOB_LIMIT when we match more than `gl_matchc' patterns. GLOB_MAXPATH has been left as an alias of GLOB_LIMIT to maintain backwards compatibility. errno = 0 is documented. See glob(3), GLOB_NOSPACE section too. The real problem is that glob(3) is very limited in error return codes, so they reuse existent codes with errno hack.