From owner-svn-src-all@FreeBSD.ORG Wed Oct 21 18:31:55 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F34F81065692; Wed, 21 Oct 2009 18:31:54 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E34AC8FC1D; Wed, 21 Oct 2009 18:31:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LIVsqg007057; Wed, 21 Oct 2009 18:31:54 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n9LIVsHx007055; Wed, 21 Oct 2009 18:31:54 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200910211831.n9LIVsHx007055@svn.freebsd.org> From: Ed Schouten Date: Wed, 21 Oct 2009 18:31:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198340 - head/sbin/sysctl X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 18:31:55 -0000 Author: ed Date: Wed Oct 21 18:31:54 2009 New Revision: 198340 URL: http://svn.freebsd.org/changeset/base/198340 Log: Make input parsing in Farhenheit actually work. Don't clobber *p with '\0' when testing whether it has the value of 'F'. Just use the semantics of strtof() properly. If it returns p, we know that it parsed the string until it reached 'C' or 'F'. The code has not changed since it has been imported (r161951, Sep 3, 2006). Submitted by: Alexandre Perrin MFC after: 1 week Modified: head/sbin/sysctl/sysctl.c Modified: head/sbin/sysctl/sysctl.c ============================================================================== --- head/sbin/sysctl/sysctl.c Wed Oct 21 18:29:26 2009 (r198339) +++ head/sbin/sysctl/sysctl.c Wed Oct 21 18:31:54 2009 (r198340) @@ -68,7 +68,7 @@ static int sysctl_all(int *oid, int len) static int name2oid(char *, int *); static void set_T_dev_t(char *, void **, size_t *); -static int set_IK(char *, int *); +static int set_IK(const char *, int *); static void usage(void) @@ -452,19 +452,19 @@ set_T_dev_t(char *path, void **val, size } static int -set_IK(char *str, int *val) +set_IK(const char *str, int *val) { float temp; int len, kelv; - char *p, *endptr; + const char *p; + char *endptr; if ((len = strlen(str)) == 0) return (0); p = &str[len - 1]; if (*p == 'C' || *p == 'F') { - *p = '\0'; temp = strtof(str, &endptr); - if (endptr == str || *endptr != '\0') + if (endptr == str || endptr != p) return (0); if (*p == 'F') temp = (temp - 32) * 5 / 9;