From nobody@FreeBSD.ORG  Wed Nov  1 08:34:19 2000
Return-Path: <nobody@FreeBSD.ORG>
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3D1C637B4C5; Wed,  1 Nov 2000 08:34:17 -0800 (PST)
Message-Id: <20001101163417.3D1C637B4C5@hub.freebsd.org>
Date: Wed,  1 Nov 2000 08:34:17 -0800 (PST)
From: ryan.rempel@utoronto.ca
Sender: nobody@FreeBSD.ORG
To: freebsd-gnats-submit@FreeBSD.org
Subject: The sysctl (8) command uses strtol on input for unsigned ints
X-Send-Pr-Version: www-1.0

>Number:         22482
>Category:       bin
>Synopsis:       The sysctl (8) command uses strtol on input for unsigned ints
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pirzyk
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 01 08:40:01 PST 2000
>Closed-Date:    Mon Jun 25 11:35:59 PDT 2001
>Last-Modified:  Mon Jun 25 11:36:41 PDT 2001
>Originator:     Ryan Rempel
>Release:        None (well, Darwin)
>Organization:
>Environment:
Not relevant, but here it is anyway. Darwin rempel.homeip.net 1.2 Darwin Kernel Version 1.2: Wed Aug 30 23:32:53 PDT 2000; root:xnu/xnu-103.obj~1/RELEASE_PPC  Power Macintosh powerpc
>Description:
The freeBSD sysctl (8) command has been updated to display sysctl values as unsigned ints when the oid format is "IU". However, when using sysctl (8) to set sysctl values, strtol is used on the input, even for oids with format "IU". This means that values higher than 0x7FFFFFFF are clamped.
>How-To-Repeat:
Use sysctl to set an unsigned int value higher than 0x7FFFFFFF. For instance:

sysctl -w kern.hostid=3456789012
>Fix:
Here is a patch (I wrote) to sysctl (8) that fixes the problem.

begin 644 sysctl.diff
M26YD97@Z('-Y<V-T;"YC"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I
M;&4Z("]H;VUE+VYC=G,O<W)C+W-B:6XO<WES8W1L+W-Y<V-T;"YC+'8*<F5T
M<FEE=FEN9R!R979I<VEO;B`Q+C(Y"F1I9F8@+74@+60@+6(@+7<@+7(Q+C(Y
M('-Y<V-T;"YC"BTM+2!S>7-C=&PN8PDR,#`P+S$P+S(S(#(Q.C`T.C$X"3$N
M,CD**RLK('-Y<V-T;"YC"3(P,#`O,3$O,#$@,38Z,#$Z,CD*0$`@+3$R,BPY
M("LQ,C(L,3`@0$`*(`EI;G0@;&5N+"!I+"!J.PH@"79O:60@*FYE=W9A;"`]
M(#`["B`):6YT(&EN='9A;"P@;F5W<VEZ92`](#`["BL)=6YS:6=N960@:6YT
M('5I;G1V86P["B`)<75A9%]T('%U861V86P["B`):6YT(&UI8EM#5$Q?34%8
M3D%-15T["BT)8VAA<B`J8W`L("IB=69P+"!B=69;0E5&4TE:73L**PEC:&%R
M("IC<"P@*F)U9G`L(&)U9EM"549325I=+"!F;71;0E5&4TE:73L*(`EU7VEN
M="!K:6YD.PH@"B`)8G5F<"`](&)U9CL*0$`@+3$T-RPW("LQ-#@L-R!`0`H@
M"6EF("AL96X@/"`P*2`*(`D)97)R>"@Q+"`B=6YK;F]W;B!O:60@)R5S)R(L
M(&)U9G`I.PH@"BT):68@*&]I9&9M="AM:6(L(&QE;BP@,"P@)FMI;F0I*0HK
M"6EF("AO:61F;70H;6EB+"!L96XL(&9M="P@)FMI;F0I*0H@"0EE<G(H,2P@
M(F-O=6QD;B=T(&9I;F0@9F]R;6%T(&]F(&]I9"`G)7,G(BP@8G5F<"D["B`*
M(`EI9B`H(7=F;&%G*2!["D!`("TQ-C<L,3`@*S$V."PQ-2!`0`H@"0H@"0ES
M=VET8V@@*&MI;F0@)B!#5$Q465!%*2!["B`)"0EC87-E($-43%194$5?24Y4
M.@HK"0D)"6EF("@H*F9M="`]/2`G22<I("8F("@J*&9M="`K(#$I(#T]("=5
M)RDI('L**PD)"0D)=6EN='9A;"`]("AU;G-I9VYE9"!I;G0I('-T<G1O=6P@
M*&YE=W9A;"P@3E5,3"P@,"D["BL)"0D)"6YE=W9A;"`]("9U:6YT=F%L.PHK
M"0D)"0EN97=S:7IE(#T@<VEZ96]F('5I;G1V86P["BL)"0D)?2!E;'-E('L*
M(`D)"0EI;G1V86P@/2`H:6YT*2!S=')T;VPH;F5W=F%L+"!.54Q,+"`P*3L*
M(`D)"0EN97=V86P@/2`F:6YT=F%L.PH@"0D)"6YE=W-I>F4@/2!S:7IE;V8@
M:6YT=F%L.PHM"0D)"6)R96%K.PHK"0D)"7T*(`D)"0EB<F5A:SL*(`D)"6-A
?<V4@0U1,5%E015]35%))3D<Z"B`)"0D)8G)E86L["@EB
`
end


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->pirzyk 
Responsible-Changed-By: dd 
Responsible-Changed-When: Fri Jun 22 22:25:40 PDT 2001 
Responsible-Changed-Why:  
I believe Jim recently fixed this in -current. 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=22482 
State-Changed-From-To: open->closed 
State-Changed-By: pirzyk 
State-Changed-When: Mon Jun 25 11:35:59 PDT 2001 
State-Changed-Why:  
sysctl(8) has been fixed in -current, the fixes will be MFC'ed in 
about 1 month. 


http://www.FreeBSD.org/cgi/query-pr.cgi?pr=22482 
>Unformatted:
