From owner-svn-src-head@FreeBSD.ORG Mon Feb 15 14:08:06 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8780106568F; Mon, 15 Feb 2010 14:08:06 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A68F18FC16; Mon, 15 Feb 2010 14:08:06 +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 o1FE869Z021439; Mon, 15 Feb 2010 14:08:06 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o1FE862c021436; Mon, 15 Feb 2010 14:08:06 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201002151408.o1FE862c021436@svn.freebsd.org> From: Ulrich Spoerlein Date: Mon, 15 Feb 2010 14:08:06 +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: r203917 - head/sbin/sysctl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 15 Feb 2010 14:08:06 -0000 Author: uqs Date: Mon Feb 15 14:08:06 2010 New Revision: 203917 URL: http://svn.freebsd.org/changeset/base/203917 Log: sysctl(8): make WARNS=3 clean Fixes inspired by work done in DragonflyBSD. PR: bin/140016 Approved by: ed (Co-mentor) Modified: head/sbin/sysctl/Makefile head/sbin/sysctl/sysctl.c Modified: head/sbin/sysctl/Makefile ============================================================================== --- head/sbin/sysctl/Makefile Mon Feb 15 14:07:40 2010 (r203916) +++ head/sbin/sysctl/Makefile Mon Feb 15 14:08:06 2010 (r203917) @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= sysctl -WARNS?= 0 +WARNS?= 3 MAN= sysctl.8 .include Modified: head/sbin/sysctl/sysctl.c ============================================================================== --- head/sbin/sysctl/sysctl.c Mon Feb 15 14:07:40 2010 (r203916) +++ head/sbin/sysctl/sysctl.c Mon Feb 15 14:08:06 2010 (r203917) @@ -279,7 +279,10 @@ parse(char *string) case CTLTYPE_STRING: break; case CTLTYPE_QUAD: - sscanf(newval, "%qd", &quadval); + quadval = strtoq(newval, &endptr, 0); + if (endptr == newval || *endptr != '\0') + errx(1, "invalid quad integer" + " '%s'", (char *)newval); newval = &quadval; newsize = sizeof(quadval); break; @@ -334,7 +337,7 @@ S_clockinfo(int l2, void *p) struct clockinfo *ci = (struct clockinfo*)p; if (l2 != sizeof(*ci)) { - warnx("S_clockinfo %d != %d", l2, sizeof(*ci)); + warnx("S_clockinfo %d != %zu", l2, sizeof(*ci)); return (1); } printf(hflag ? "{ hz = %'d, tick = %'d, profhz = %'d, stathz = %'d }" : @@ -349,7 +352,7 @@ S_loadavg(int l2, void *p) struct loadavg *tv = (struct loadavg*)p; if (l2 != sizeof(*tv)) { - warnx("S_loadavg %d != %d", l2, sizeof(*tv)); + warnx("S_loadavg %d != %zu", l2, sizeof(*tv)); return (1); } printf(hflag ? "{ %'.2f %'.2f %'.2f }" : "{ %.2f %.2f %.2f }", @@ -367,7 +370,7 @@ S_timeval(int l2, void *p) char *p1, *p2; if (l2 != sizeof(*tv)) { - warnx("S_timeval %d != %d", l2, sizeof(*tv)); + warnx("S_timeval %d != %zu", l2, sizeof(*tv)); return (1); } printf(hflag ? "{ sec = %'jd, usec = %'ld } " : @@ -389,7 +392,7 @@ S_vmtotal(int l2, void *p) int pageKilo = getpagesize() / 1024; if (l2 != sizeof(*v)) { - warnx("S_vmtotal %d != %d", l2, sizeof(*v)); + warnx("S_vmtotal %d != %zu", l2, sizeof(*v)); return (1); } @@ -421,7 +424,7 @@ T_dev_t(int l2, void *p) dev_t *d = (dev_t *)p; if (l2 != sizeof(*d)) { - warnx("T_dev_T %d != %d", l2, sizeof(*d)); + warnx("T_dev_T %d != %zu", l2, sizeof(*d)); return (1); } printf("%s", devname(*d, S_IFCHR)); @@ -518,7 +521,7 @@ oidfmt(int *oid, int len, char *fmt, u_i j = sizeof(buf); i = sysctl(qoid, len + 2, buf, &j, 0, 0); if (i) - err(1, "sysctl fmt %d %d %d", i, j, errno); + err(1, "sysctl fmt %d %zu %d", i, j, errno); if (kind) *kind = *(u_int *)buf; @@ -551,6 +554,9 @@ show_var(int *oid, int nlen) u_int kind; int (*func)(int, void *); + /* Silence GCC. */ + umv = mv = intlen = 0; + bzero(buf, BUFSIZ); bzero(name, BUFSIZ); qoid[0] = 0; @@ -560,7 +566,7 @@ show_var(int *oid, int nlen) j = sizeof(name); i = sysctl(qoid, nlen + 2, name, &j, 0, 0); if (i || !j) - err(1, "sysctl name %d %d %d", i, j, errno); + err(1, "sysctl name %d %zu %d", i, j, errno); if (Nflag) { printf("%s", name); @@ -611,7 +617,7 @@ show_var(int *oid, int nlen) case 'A': if (!nflag) printf("%s%s", name, sep); - printf("%.*s", len, p); + printf("%.*s", (int)len, p); free(oval); return (0); @@ -698,7 +704,7 @@ show_var(int *oid, int nlen) } if (!nflag) printf("%s%s", name, sep); - printf("Format:%s Length:%d Dump:0x", fmt, len); + printf("Format:%s Length:%zu Dump:0x", fmt, len); while (len-- && (xflag || p < val + 16)) printf("%02x", *p++); if (!xflag && len > 16) @@ -734,7 +740,7 @@ sysctl_all(int *oid, int len) if (errno == ENOENT) return (0); else - err(1, "sysctl(getnext) %d %d", j, l2); + err(1, "sysctl(getnext) %d %zu", j, l2); } l2 /= sizeof(int);