Date: Tue, 21 Dec 1999 07:14:08 +1100 From: Peter Jeremy <peter.jeremy@alcatel.com.au> To: "Forrest W. Christian" <forrestc@iMach.com> Cc: stable@FreeBSD.ORG Subject: Re: edquota problem Message-ID: <99Dec21.070526est.40331@border.alcanet.com.au> In-Reply-To: <Pine.BSF.3.96.991219215559.10149C-100000@workhorse.iMach.com>; from forrestc@iMach.com on Mon, Dec 20, 1999 at 04:06:19PM %2B1100 References: <Pine.BSF.3.96.991219215559.10149C-100000@workhorse.iMach.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1999-Dec-20 16:06:19 +1100, "Forrest W. Christian" <forrestc@iMach.com> wrote: >Specifically the code which determines whether the parameter is a username >or a range of uids only checks for a) whether the first character of the >parameter is a number and b) whether there is a dash in the parameter. This is definitely wrong. Input parameters should be properly checked for validity. IMHO, checking the parameter against the password file first, and then checking if it's all numeric (or a range) is probably the more reasonable approach, though this is a more complex fix. >Alternatively, providing a switch to force one way or the other would be >ok also. I don't like this idea. >I would patch the code and submit a fix if I knew what people thought the >best way to fix this is, or if even people think that it should be changed >at all. It _should_ be fixed. The simpler fix would replace the existing test and atoi()'s with something like: if (isdigit(*argv[0]) && (startuid = strtol(*argv, &cp, 10)) >= 0 && *cp++ == '-' && isdigit(*cp) && (enduid = strtol(cp, &cp, 10)) >= 0 && !*cp) { I'd pick whichever option you prefer and include it in a PR. If whoever looks at the PR doesn't agree, they can always do it another way. Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99Dec21.070526est.40331>