From owner-svn-src-head@FreeBSD.ORG Fri Feb 13 08:00:00 2015 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 393FA416 for ; Fri, 13 Feb 2015 08:00:00 +0000 (UTC) Received: from mail-lb0-f172.google.com (mail-lb0-f172.google.com [209.85.217.172]) (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 D3DDF95D for ; Fri, 13 Feb 2015 07:59:59 +0000 (UTC) Received: by mail-lb0-f172.google.com with SMTP id p9so13223042lbv.3 for ; Thu, 12 Feb 2015 23:59:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=JUvn3V0OKwYFRANUVsZEQitc9lo9XzGNLYL+ElyRAnI=; b=SEIqNG+OmFA/acdcFVBPXehqkIjDCq9DnOqbQP0QV1vMBxXv5jd6E3mav/rxNH2V4z UILJLLwz43CxHSBXK1SQ75I3jpX/kd2QeW0COEId/LfvblHj+4wQMtdDbdR08WHTNYmn +84XovYAoWZw3LFhLOgfNVCYqXo2PAXh2pSQ/7GGeyQ3selqXJwSp6qsdke3Tfrpg1qm jHq5Z9edIRq7Z2b62Ka/tsFGykmxfIM4IgB2iTjieRQwQ33BK4btdppx/V8ja0R8epiy zK5pB4gi+RWU/nBLlFKb9xORM7LES0BPCsei7p3vv0ufFoUZqSnVjTlV+37MKfoXxsML is4w== X-Gm-Message-State: ALoCoQlKowv3j/Ic1Qb1F0qQSoEwpgc60oyMtSqOuAK9HdidCvbWq00UONfSMKQ3Q6ME+kxctacx X-Received: by 10.152.8.33 with SMTP id o1mr6860983laa.56.1423814392210; Thu, 12 Feb 2015 23:59:52 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by mx.google.com with ESMTPSA id lf1sm1175004lab.8.2015.02.12.23.59.51 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Feb 2015 23:59:51 -0800 (PST) Message-ID: <54DDAEF6.3060900@freebsd.org> Date: Fri, 13 Feb 2015 10:59:50 +0300 From: Andrey Chernov User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Bruce Evans , "Bjoern A. Zeeb" Subject: Re: svn commit: r278634 - head/lib/libc/gen References: <201502122107.t1CL7gaO004041@svn.freebsd.org> <54DD2A87.2050008@FreeBSD.org> <9A683D99-C1E9-4736-982C-69F583D3A40D@FreeBSD.org> <20150213172738.C1007@besplex.bde.org> <54DDABF2.9000201@freebsd.org> In-Reply-To: <54DDABF2.9000201@freebsd.org> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Pedro Giffuni , src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 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: Fri, 13 Feb 2015 08:00:00 -0000 We even don't need to check arg excepting for < 0, because what is needed is rlimt_t and not arg. So this version will be better: rlimt_t targ; if (arg < 0) { errno = EINVAL; return (-1); } targ = arg; if (targ > RLIM_INFINITY / 512) targ = RLIM_INFINITY / 512; limit.rlim_max = limit.rlim_cur = targ * 512 On 13.02.2015 10:46, Andrey Chernov wrote: > On 13.02.2015 10:18, Bruce Evans wrote: >> if (arg > RLIM_INFINITY) >> err(...); > > Checking for RLIM_INFINITY is wrong here, since it is ulong long max, > considering > arg = va_arg(ap, long); > and ulimit(3) stating that arg is always plain long. > > Proper check will be > > if (arg < 0) { > errno = EINVAL; > return (-1); > } > if (arg > LONG_MAX / 512) > arg = LONG_MAX / 512; > > That all. In pure theoretical case RLIM_INFINITY is less than LONG_MAX, > it is job of underlying setrlimit(2) to return error. > -- http://ache.vniz.net/