Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Jan 2013 16:15:49 GMT
From:      deeptech71 <deeptech71@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/175213: bsdgrep(1) segfaults upon malicious input
Message-ID:  <201301111615.r0BGFnwW050631@red.freebsd.org>
Resent-Message-ID: <201301111620.r0BGK0L0020425@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         175213
>Category:       bin
>Synopsis:       bsdgrep(1) segfaults upon malicious input
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 11 16:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     deeptech71
>Release:        -CURRENT
>Organization:
>Environment:
FreeBSD  10.0-CURRENT FreeBSD 10.0-CURRENT #0 r245287M: Fri Jan 11 12:45:14 CET 2013     devhc@:/usr/obj/usr/src/sys/HQ  i386

>Description:
There is a test case in which bsdgrep segfaults.

The segfaulty code is in tre_match_fast(), in the "SHIFT;" statement, which contains (via CPP expansion):

  bc = fg->qsBc[((const unsigned char *)str_byte)
                [!fg->reversed ? (size_t)j + fg->len
                               : (size_t)j - 1]];

When the segfault occurs, str_byte points to "" (the empty string), fg->reversed is true, and j is 0. Thus, "" is indexed with UINT_MAX (on this machine).

The triggering input is
- a regular expression of "stderr.txt" as the pattern, and
- a somewhat reduced version of my "libgcj.a" file (uploaded as "hax.dat", actually, compressed as "hax.dat.xz") as the data.
>How-To-Repeat:
$ xz --decompress hax.dat.xz
$ bsdgrep stderr.txt hax.dat
Segmentation fault (core dumped)
>Fix:


Patch attached with submission follows:

7zXZ=gAϳZf6Ef+|_Z'z?A𤎃RtceĦ( 6/ѸQrEH˓'JlD,wE$j=&=FzL6I=CeƼ|_%,GLj9ksq$pxq?M%eF!=Q.>]V9??nҰudzO=_ż\T恳ֆ}* w:i:Qɼ)W}9CRSwyeķ_Aîjanv(p]S\8+>AّPn  |5`edGt9 _~pe/WX *re!K썃A>9nү*O.ѧa}jSO2Y3/N}1!Az^[Jh3{T0f,CC&HULdvj:*PF,'xؒnڣv:*E3zuvL =b_c<Ց6_FnxZsye./ơPvˉ]m2#sʼn3P8
b$0rAA|~,jx`Edmo1bp
H7w,BXߢJSn-9ͅ&*o7@	+Ѵ.{[\yƩiP[3B
k.eX<2}ŭpp}=BgdazM([70Z7gJ/##.1!e15{JS^Ũ<ߝ2?\IoYxqgؤ	i-CM57Rh1&w`|`f>w~Tbw
1-mϪwBDsN"4l/R|LSN\	j1\9`BHafk/Yq4~z% @`AE`3C4ZICkGP	w7Z뮈d*=t"Вq9D&&mp
ȜݺY5v}/i5&OIU.;bj*ŒL	$mp^,,Q8|4(.ܠE㡷YA^э$Щl<"x?|/$ᘦC9i1߄9s}eJ~	b@ts4sUI	py8ŀ`zul-яX@ݛPm`9RTһLQde_K>$Jpvj`BoѐŁN̝KG2%X=:>lJI3H;[{8M4Ԩ!MfnA4Y+iƅվ!Lf#:I1	yTVn<L,]hq;s^Y>dI<g KÝo1M+f͚k$^g`Q"IBs%]F	]Ӛ0p玬(T_jJTSn*QnTp95Bjg+IȊ{0E`3BFmR+/B`ӧǓ}^!9gJl;km&"F'*wY0~&d2IkfwaɃFm/zȩ䅵WicXC}<+^2!И=xMϓp:~mlDmv߶Iub2>jD(DR#$]K֑:z}q]E8|!ǣ|& ẃ!S%w2;Ι-O4/Ҩ[r -cbBm^5$TS_Q' u	>T|cyg44Zg'	XVqZMI5h:Uш={J6lmI9 lH%$3۔"^ju%@rs|0u3(}bU
 }KI2OX60e_J<`˔SRJ.erM#BߴQݔ!ib)=,2G5vdZ7^	L`!t|{Hq*1ws?FHlc6'Tծ<[9Z]i']i/C:9yFLGq[,j5`)U±$t5糠Z gŋEw>Hvg|[5V5@G	<0>yNϯ&Xv6ݽý֍#$ȉv=[@Ӌ"^<4ۛбM%@V2~v9{%J[km	>f2ލ%~2PMHYn${*RSC"fӹ(@_is֗d;i3-LXN*sqܕ--]^&aj_[0|~5w\`X%*RU`G'ΦP]/*8>V/5A!%˘%$* 	'wy"OO9NpX[$&p}`A?ޭ0:Ao|5bp@To y3.-l##5o&)=:D=3l8ݲȝ\ÎPB5^:xFGXZϖN!j8Itjc=Dv;wN9)L)w%''g|_li(^È(ce:^kQr1g(ߚsTxE&>2AAAF	h+nQpPh9|<ۯb47}6ž."ٔEma)rR.C|橀Ϻŵ2t}Q!0Z>?
 b6೾3	Mˡ&]w]rmssӱbx*&!
 /ЏE6;p>/uƕ.h<t$hq->G4g!O_%TjgCCى[]ҭ򭹰Z셋XMnܑ!	cW5&/hm"UF~ut)5{B
XrGrj'R(I-!!E|D8,CnFseqe19ڪ2Iƒۊi׺rN%iꞁ'"Ul?aD^:Հ9jg:u.#ɒk\$Yt$TddR?4`#+PHzw*cB=}N#j`#mc?֪͌tJ$wwn*QA-Ho`%y.ba2T/~D6ɷ鐖]mR6iVWߣO@BWM:i;qn(Tltc´13-h#G
[w_/lFSr^W+;-֍9RyBr0v9mRxb`O\
Bΐ&#cǚ[#Ɔ%Qtee5wJȷ"FXi9|fєt=vڊ+.㢼nuJ	=ԯ/FuccPd˜jټ8s5eh	f^U<39v%O
a#Qy/M2VPȯJ=yyFsv31;q:/U|:;p;c6DNrKC<&$tscTvzMbY@fbdX,+egz4H/@.ൿULϝKʁxr	ѷB}~/}˂zZd4[k(vM%:׸iјDgo)Wm!:]>V*M81Y"-&J7&?L>=.%Z52^*'qL;)`i$'ߎmau֨WCL-z!xB`o*!0ek8,Roޤ'(שׁgAXuݣYa&_3H?,ߐl_tٳ
Ә7'wpk/zd6Ȓ?=GsRt\	(*j,8f,/v R
YD~*XU\=vJ8;MD>4fy>DE	pi2zjianҎp<D4\1or:=F*†;IQl|RBR!-g':ilW
0qRiK璜g	0=*Ԓ|Jx&~z>{I;G
r(ِk.,)YgUwͲ[ApI4(̓&Sji>`LLg4dc-lzx4NÿJs\hL!1	Xꎭ!-O1C&=g`r܈"L~X]gᷦjFD_V^V&̝kdQD
S۸t(zM<Ltx.Au{uG),NxVoRu(uI?KyN1WZm:[asV:/QZ	MpXIaQ;"P%%\a>Ifz*j(f?
8Jn&v$.$2ceXWM>k?@Z}GhՈ&#lzP8`)W2瘒i}4'1e±?GIL,z:'xة_ZZfm[drzM2HQ~Ǘ q5BN_LECT?yأ@iorZrF
ڷcՀiH|Zp91v!*enbh wbn}.9/MZ:-!JU"
>Release-Note:
>Audit-Trail:
>Unformatted:
 >!|;^g7iסKADx'bO,3Z7DI<>{AYOh'xV4S7*Qٳ$Ay	70y-Gb$LK5D/Qɋ\uZW=G	A8W*7}Kjk}XV.j|^3@ЮMW""x?aIojJt)	Me!gSzЁvkiȥӊ%)v
 i6ГP;*gn-zmמh.**ML[6ָhUWFFux^,&<-w	D!k^ҟnVwj%ڗ1:霴Bn<zLT`u-=m%UqŪyXѧeҿx.1֮mTTd6 RT	)k:&
 wQ-Ԉrfc!K||.)-{QEoL'7gś-,ޤV"͗sE6f(^WwF`rh9/Gm9[buE:7qtACUk++F1Ix7Jv	u9nKot܊t.,QJԯJ5j,RyU۞լzr3woEtx1RI\ 
 Ay\Ɖ-N|f	mtEa{wŝui]GS$/gdnj8؉OS۷Gn|-<g`Y@
 }>uJbfs-Ei[i|C@ޝd/;'ۺ}Xod+=v#.CB<YX?6YZ!ݣ
 \?,tTTXo8b4%qCNTW"I#ZϋF	#GReejq=+k'WDjȩɎIkf%:Ѵ6ҩLFNF-Es&Hp{ܸXlJeVv)OC*V2!Ew*4tAsO~vxg2,'Dkw;ٟoxԖ<x].+ b ,V9dM^OTϣ,(ovl<j-9,~UC)/<=( )@@RPڃ
 c'@[K"l=Tg[(1?$=dƝ..iQx \ɇQgK2Fݼ&LDWLMu~f!) cu4=Ю_uY΢jy.>f6+Qt1=,ٓ&Ϲ\cn1eC3zxe/`O@ Ԫ@]>\Wx-pt`§֭fd%[”3Z Q\s6{}L0\4[dEZǘcI0O"	p!#`7:P,ZO̵YzS?,":d)Q4:`VrYC:c~!Y0xj+g3@綌<x}ƺRejˤ^ܣK:F4N!ϗvjqu5֡ۍve=Zg ķTAƀet3FDmQ`)̎kޘLH5  ׅkLcArR+n,(^D9q[AR
 %_Kⅺ!pg:u^&i<+"A}* lr3(ܳ;	gzV!O{[8NMFς<<LheéyǑ7Ğ=rm])Uˇ1-\)f̗y-"	Rg3hh5(d Kxp~_"7gO~jvIJ6kNw8gE;M˜:x|sNaɐw2-˛㌁ɝSኘ.2Z=Po M2S괻"r2N滎_ƺj<6kSֻ.~wkF*+DPK1z-^[qρ48>C9~ZaYZY֭%i8ـKnBgJѧ_i{CRS:[kE|Y8Ԇ]8rnnc(:6
 Z;d#V.^Gj&pT@D<V~^ݬ+$'V%ðckbk!M%ĬѺSʥMݺB:ܛ4^--<t!)~M2f!A5>|b1ٻ9^`)f>rڨU~6NO/²PbA`Y|Z3x;+P)xgL.NNMwx' jw{{Z2kw ֹ=Z+>͜MҮ>6k+$lV$.&fJ*ߒ5JLv`ώ`9*7[9hT@vE0&[l@MF]
 IPdIdCn|`^ݹ7Tj  eb^vޓ>ٌub~B4Ж9{{g%4JΰH&N\r/;k)QsM/2kϽ_aHǡfH̓O}dM!t
 ZKĆ}m(\	XKgob޸֏w`Г0jX^~rrw/wtl./m=vn/jX"=PУw&hlf)<Cz}7^Ȟmn=mݵzf{]EſdtS+D<4u,#Fē=	ٹi+644^pF~ZjS~#oeB^~
 tw5KUe@G:f6xTˤ5.gKW69Jڱcmm>8N?\
 81,yP0<>@	[t*BOcK	1>*yYcYc#ySFTƔPqeqrأMb{E.pcc*(k;!qƬM3 yabb":rvڿĺb^ZW(X2cQ0xb."5B"q”59k#6E#Āqwj^F
 ZM.͉kvؖf?JZ`g	(Y\jP9&{v@Džb#Cv<I';T4y@s? OȈ>}gր_`z'3NJ4* JS(.҇.)X`qrT[(5ҦѨC%J[1‡a4mSdQ,0qt"C_q/ag4I(w鈁 l;81ZT.TMwQS'ɴv쨫;l:aol/_w`Y}$$e-@Y1:v8pm03Dd8ݐ-k'nQ8^6Y1޾	NIKgIbv2wK/&u;ң)j`6]8U"j75:$ 7W_Di	عULA@&Zg"{bE}9łoa볨m(Ƅh8L"v* >T׆\(OarIv<v|$v].8zEf<;A0<Z1tƗ^̖C{n3i
 y?HH6q
 	76dRJV^Έ&{m)5y՝59PFQ΢#B*>`Sl6f5֜h'1GyaS*̑~Q- OYcZg)l1jr"T
 BDN=eb1U%]c(tjD_ekBM"BeBzNK')>CKgvM<*$VcH?܉vLC[d/<GD
 _gvTjLh=pFAl{T`ȞE%.z7ƝE_>GqĶ>Aa3"c\umwr:XZrUN|Py:C=>S\]ZJUX@4Ґ;[tnDUPBqE-.!<g3Tʲ+=E=	o½4A }6Kĥ<+AEjM4@ F֎B!@*\Khe[9k۹q_ /Wt5{,%f|P*Uu+y<AeOχ?[SHDŐ~-nx4ÐʩxfgԲQŴ%Z^hh蟯Jrew83M3᥮>Hߪ6/r9WmP=|ÖEIe@ۜIaXJM8hSF<&G \Y?~·!)25!hVA.yW">qƴ:XIB(xJN<F0,Xurk6aUS[Zܱ6M!ҝO"s:@:	`Q{?YEڹZӪ7jiyz3UC1xV/=od}F5#*Ŕ
 <!iu$S!B`(^j<#a6oa
 1&dl[ .y{e)tyFim(^$셦cr_[$._	.Kt4~0`#)nµO>پcj{v+HM7؆/*ʖԬܩ1i=~vǹmK!\pˁh^;;NrӠNҺY7)9G:}6\HYB# &:3TMo`EaJ75F$va@?=m/QE!wH	*8EhCFXȠg1Uίգ,8a&@xZG:GDԢOFw5X%4l0bf]Q5W;M>SхԔ~nt+H(QI鐺W֒hglav/?GӸ^n ?ܯODT%=8S=6mM%Nυ<o#@SF[aP^`8M%%ȆGC	Sϗu.*<uHMDZI֦&|V4ύ^,C?[wͲG{>d-pm?~hrdg`VO-yyHc4Ď$ފ$.Ak+[%fdz %qC
 "؞C.dIkUCU@G:_۾ލUS*ڡ!.	ea|'R9^}TyV)(vǦ_Z766@C8^5,9_PZ%nAe1:>vQ~LnWaP!{)+	R(wz˰FMmFQX8r`|͕%
 W|Xqzj]]v
 7=j6-˱lHie2>8lq|RaN9((Ac*`\[%9Sio?%u.lFiNΐ親$4RQ_ \Ԙ7D/ʞwaJN%{q@?Fc^e3qʫ&|y4Mp<\u
 "T^@;{Fŵ|'TA\ΧЩ7%R3.]Zm6R<14}s˟ؖ +"q%\tIܸ3kF::5%6oI8d9lh|.n`zFP :5Tި5bxgAH٭o[_	|xz%K>aq~n#r -F[o?z_),}YW)8r*BO;'>;ӧ =!*	lAa~N0ݘ)0sh[eDY]3_nASߒfiVM6(8j0<}0c՝1e(ELn:!YȲ}Aec8TS7aK]9Rn򲣊UXɗlNEA/>h"@8u_jA"]BTUA8/tb"A"@ ve_<@͒ܨ8hc.e=lӛC*
 lJ"Iľ_'+EvS"xDWV5ctU^7vLj'tǧ'tv9
 'D\¬)>[IN	t;ĈW	aAhP:l5*Ga1?ݸcʎ)GZgK=kia~[${,+(0GT?rolkỷ8k(	r]M}K!e,?Z;d`Wxr<xO`>T;<pD%8P \)
 'kt܀*m2 *Ý^vaS$ϋX$3`ziOVwmtlL̏?戜@|7TȺ^A~?eh,9lH\OET# h(y&{z!1&[T68(뎁-}"7
 µ7.ػE1Ω!G0t{trY1[gDxgi*"WMl9F"|:F |FALʹ$C(Wo=1]E+?eJGגbMИ=b<y{`t5k)^/>q8b5+To7l|g
 vtc=hr]c9>ݯi6$RZDȟ[6+vX79˦(ab#>LbP{/Q׹~-5O^6qZF^V%@Y$MiB6-,Yk.PWldVʤGq<|["Y,rE$\Cxvc^S;LgCYn}8D0e?T!fmDإ
 Z	H*E<PW6XbkrAF>t"2WNԘ9` ß͊7*H_uyk6el`a45bSsg-%N1}4f-şkM<iE#`ıaSʰ;)xwa􅀙sHuA_@I=ޞ0.R>
 \U^CzgL{WX=n5k5[zTAD\E8xd=+#)gVZoDAbmr6FAhY¸ZՓe?}%=-U*4>4&uelޯ	EQ+|%*Ua:O'3&djx7<. I^v鰵ݛA+76,_sc^&{elI.iA~c\TN=  1h ̌#XnhF0ЬR&1~bTCŰ2-أm4i/ep4zBA\M<ʝtȜ~XUnke2ΖoS;iByeV$ʈ-ɨ2<9=[Ȟ:q!]Ahgp
 }zXvбÃ+Kk'~r=c?%Iy5 !s(8fe%I}reM$*#~,ye̗<Ýh"0_|M֦FV`B.FIWQbRW|V{e,B6{qbӦx$:%{(?2ilpҔOąEnVi3  c,*209@2+V(|s|\1A;	Z#.%"\=nn*}Գ?4fti[!a_,h[@)(w\k#2$UsZ.?tLI~7*0So@lgߌ'zHIC'3wwr0Vєm
 g+o	b۸u)8T#e"зAtBҎ6B	g8s5>DR
 =Z,Yj&d߹[wƣMɤ~,<.n6૽(/QCDȎ(S:H?Ŏ7qT/SkT`2DH_A5cn3%_9na![U@-s	T&.)F0b>HقT=oaU	!!gNƻ B`ă	#Yc;m2)8aNZ$ )6[Zl|9pCvHĬtMc=Vd[ <0z4EcXN3J|zf鞨Xqv_~%zkw42YG@HK&tIV8K	[Dź
 r٢@Bs^Wkђ//b#0\U'׽(vCq2MV~+0E[j9
 ;J…ݛ?KZ?:wۆXd"n(f"boE
  "ߧ#ù9uĮWR_e\'zMG7RuCk1,:֎£_r7()ƒ..VG9ht+xR1?%^Qq&dV(qb"S{uJpD"qyˊ7/~7`CbT*zzӲV6QO8f\:jij6T1͌bQ#HJ+a0Xk̀i]c
 Z]`ye&%ڹK	LUnvo`Ai}jk	<MOpt+?Ŕg#\u]0iez7ĝEAMSq"/;>W%m	ӡD32u(5EɅBx
 r)ecPUQ1o[дg {.VT=4HtC]FQ$$/HhP'AkS*W+쵮F业㞁>TC/T=$?DjҾTLϬGNz D|-rE<nAŝ7<z\P8isasrNSeM)AxN+L*T;f7 Œ#w
 &Yt{8쌻)gz+8,Pӽ%kt4p9hYhD?=9NAr%(q0Jga=/`5Qll]*:o"
 <*5>_1V),(Dl~׼Gj{d)7VN3c#D5I:KzǍ>n"eLyI*my)>CXʦa`PۺTt\bldtY9̲_6>EQ`!l=šRwUŕf[3Qr-g8l.gSN^	+`ގ/OA=QuI~j@oQj w߅+䵖54WUj8l@5c(4@Rj+Gj2!]*n,$D'̽x*anq^	0PFN%e%D5P-̮ ۹`J(shΓx}&|pir7dAgF\kuWo5_]5'qe&{G7y-o06to_ujw@nŅ57ny.sb~Pd /eSaDG]Cq(\nhDƖ`ZҍJ	əL]*b@m7['c57LG"r	Э[=Wyе;{8/9^Gf7o<1{qx~r|tFa0S-S&>ihybjon@tfPX4N$m:܆tO"]$(fgF$"dd&Ufq%V yn/NL1o2|-^vģT 1UȖǂXf
 #"'?LTXwR&\65J6:2fB_-lr(sp,63!ގWE{Ykŵ v<":Iz6&1!ك,nmQx(2YϢW:2XVXe> LJD\U2X'fVޏVٝ`$oGA39iƚsdK/u&,^=2	(͍z
 -e0N3%Ov&g<cRoo1MV%&jmnlm?‘@ښ$hVkmIRȞSxj(f2} +YC<r8)bI
 ܇t$1(*cnE`ʮHݗ2I{
 "oSL0#4g4aYW:m/`{h($n0npC"	G<%mTvKo@0xU@%N''Az eqۃՕ/A
 QySB9߷`!85_ %%Zs(suJ&9>裂9t	qk\ÉITpl*9cuJt0
 w="N=6\g,FoS$XV_hH5䥢"X
 ?xLJ
 C9Rst=U	a"2 +R&QЧnELR
 ;Um\0%]˲zKn8"r}]/}4Sh@:SkB}+Zӊϕ0TjCA-mLR4FSK^PN^;7ſ27Tks1Mo
 ޹vs߱Л
 9BciLbr}QT ̼,Yĭ/4[6T%/,LAν	/jqˡiMj@VLQ!&R,;R$b:mDz%MhCo4P95m|+Dꮌ.X3+yTpGPD^5\%h[QKʭ`$2r%`1bHH갆uj=J1fB#Nl9/~"򈙭{ SK=b7?D;-[,]s@\Y(;t2X%AJ/=@
 ;<y/~mjpbx:Sv>[.Gܯ[V67`Zz/x]+ݒLem"Zq0+fye[y\!pYWRE_^^bS!aɖ$7U6gK=9C:饅&}$$BD/TuNh	.1Z<7n︃i[m'$" h3P<ɥGBL͵T"7HOK"tOn[zFN'$!SܫpIQ~2n|LS(7/>*o5P+x:f`6#t^(;.ElQ+)p&&') 7{n'2KߊwHm:LŪmtzsPR~eN/# {/hkw"$9 rQ	oNa+]LAEK[8H?J^<i<e٦	;TB0N.dR>A?P!f*^^gw>B^xyIy:5@uǫܒGKJTEi4͑#}`h꿑4fyavBb~2A}n<o"{<`;ױ@- L 8/^D=uJR@QNHϽpf9+?4W/smR->7O2.6؃bY5cx}ZX68<5_{(S#wwr%wGS}$J_qbQB@wڎơW@~gLW3hZy`ۤpsC;`b;j
 ^
  ^'E[MvM3mBnn	oV=1gtK.]KKRvcź-L$1!Hovzۏ+V:ؼ2P;3
 Hs]>p־L1
 0`6ĚJfGcD8<*=(^y6G*͐C낓N?XȔV(z߆A;xa2cY`Hqʓ~A<xqDS|l_QNɥg0 @.aJo4V>y6y4+1GDMDv|w#{rj兲5ʦ+jܳR"̘݃D'=2|\0_kUAPR-.؀ġZڌ'Α `1$3`8`O8&f$6qx~TUJh;`$ƧI+C]4JhNC,LL031:qWwX\RN&Mu1#D#|&1;-O=($HM#gE7}b0X@(suQXɀUPjG~­Bbsyny y Z M9F!kNAr%2Dmo޳0Qw6 Ƅ%<k5x;]pf]SC+.n@@{ex땙r*5LUAhd+`;sOYI+_EYD!X><}@OB6#6zRU%kZ2Uojw3CH4qc(h0*;[e)߷jA3.Iw"q͈R/yo!D~e`R?2xHYd[[(]v!e S*Y5%_#핢"7SwMH;DnW؂LwI|0nGOUgM~m7[x~<6rxT-0EHV
 7Ǐ]֧	i9kY;<Q_Y-HDEDU{Ƶ-~1~<e[ǜqdXl
 ?ml߸ՀVVAn/9:E(tox\0G?lI|PTS{aT&6$IOНnw6#7/~V &3kf݅CW%5W1MwvV3j.+IqŝB{cRRkBk	pBi豵ϑulhtIa
 4C[fc?.HKm=#K$k(yJ5Q+>L9gɩt*
 =s(fhT[D{W$i7,$Rb4[edyލ2Xh!Y!24FW@`
 iA4]"|ːNܿVhmkH$X55pCW=*~TkxŴswϋ<Ӯzܳ2-QP9Vy;ke>sD8YtHXG͙UԦZ%YƷ?fll2ZiTkJe|&oQ}7WTOSnhӭH	c"݌ 8>*#1=Rja$G& \=g;d^dX
 `rvi'jgI" ,sS3ċ1h]U|,=ݻ[L=[+.^@^0ńI]B#45v=`k	:t%x:cp?&XQL9_ܨ>vh&-X<c\uOP`zzXՎR)+gԗߥk"OTkEgRi^WK!LD y.wY^ιC"[ϬmJ_m_rTZil?}5r,3-
 rasfzv&:+O"y{:ӦIJ5gx'k񽙚_I(0zYx:C"hyeMU
 &	°p[ybq'GĘtuXz5G"@_{=V=7eޘ>%CS0o@M"Wu?/'hy `s;	#e	-XTM!߻)kEMHQCV2W^7٩k®qْvZpL_a/P\'*7Uځx]ߑ潘E|_мř |MՑ_Z,4Nr=ʲ5r}yf :BRv4y:2/!R=%EO|lQa46 G7!c,F!dV82	>$rSMC͐=IYz.Ds'0臜UḒ aT90߰'ɰW!`66(,1eQ6H;5$_Ӓ \6pxiwIa.,oLC|Wa5h#)qQHs;bu{+!w7[?jIxoeڜdE'~R"t8,L- Rjţbh^a.B,קbI(`v!³|B\{}<XѵA!#WK
 NYHV<JŸ_U€^4WMk,];N$IV@%fc&kՊ	j47V'^ݢm@8t/] VO-*ԃ_Y!Xy5	E@~KOj0yK9q*t\4yt
 0y+)F˸X'&ZoeV' $8ddH		˔(2Q:g#9"Z2I4a'вvi1296AyhSxV83ӬBJ<ntuTVvMO_ӉprTCM(ʫ{`YҤ3VsSTpn
 }ʑ:[E^4f_|G=ЄCD@v:Z#/|8dAŶ#	f	fiOw2g;<S<^ ]-ܯ70j*10O8t}yRdX:S˻;rU(~*Po Qt|Pq~ClVؒYnbnϓ40琐vuQ/[cMJп<\# TY@N\z|PqQz4R2Ӟv%
 7ed5(IAw~~L;,r@w)2D*&]mPؗkzt[Rعhɛ
 Jw;CYam3ĹN1{76
 N]y=SԚE.mU׵M	0b`\D<"t][ﵧM˜̯FJM	G?
 
 T58䁚qNY(.\N<e(#/ߍzz9Ϟ =Eo4a 3?"嚝bE`fWǂ%+uҗĐ,&T$ḣZGJ<{P.
 	V/mx|e{!d'< P#M
 \HLU.4.#PVtcvmBP*)dfo)wG0hM(iy|*+cweShQӄ	T@Lr6j!#oU/eWEDe1dN+M:NOOnïwE_iJMk:miv;h;!V1{4
 v$s/⸝S9Y4Y%lHB1{BcBs-5Ar?~1ޅNY#;J;LHA$;}(Z-*Q-aԯ~8]jN'AOmRN,5]).&cToE#v;p:گ~xߚeX6H|Ysusq{|{g~?2VBjU4:/RՔSxMUMO$S^;GeyZ `xc^)L*Tq	!N=z
 k	kZW~>
 /7Ix.j>)
 3ƹQpyـ6W8,t(9[I,\aYJ–fnUL!FBV:~Z%pQ2^S")B[egJ.Lwɔcיp_S~6 zkq6R{n$vF-`86WZ]Z0c3ce0X!c^Zuhx™mP3GEkωep6!=OLI]V";]>Yހ $)ͷ#*)"W޹`M2LJDw7i4]yK)lطgOA2H}۠	ԅs~SLF3"nbk1hJ3~ѣ*\Kh/&ƀGWl=**Qs \QڽCoͿ#"`>掏;>ʒ$N5'v=sDžz^;=U)ҩytP鶵iG~ >v[S~OMV폫1h(=6E/7PpG3|q..,cxV46lf+JVqZ<%P|~ţ#g:$gR\xY<G@<M'4cmX%ǹ"۬_Dv>JHwx`<I8׼l7=<c+]"kT]=Y@0-ёp/R.-Rzw!W2sE
 YV`M}2X~L|0/Y3\D_I5f"D'\7onKV2h"9r x
 ةauY}c0L\thb1i3wtS	J|j8{Y/KY)jvN=u@4U̞ѮHp@TY2.RC}@&-%=lϔ|ils<x;-U/KR1QO%;J(S7u׷W>RNL=1À $d-N}à"3hG}[8 ԡt):Ԁڕe^V,(fꉎz6z&tċU.T_"]@YZ_a	F{6ĽÞΆ`S>z(M.kgG"؃oR7J5`k@Iu&qLeDUXG<IǝXVM_;W#C̒?ވbl9UK\Β6[Dһ6@p.s&n>rBLN ǵ5Ʋ|PG5t}SXNlRTU24ĭAMΫ@^TkξWX_$@ƞ~ifXems$H$O'=\t	ې#8gJ%q	c߾#":NehqTMhtmݗ<'#JpVS,AG1t!V3ʻ@Fk-ЅljM;6f}6.
 Dk0桭ybK@3]dk!z?lX+?a=$Z.ׂB	cX_Bnjv<y.րywmc8<5(DiI-/ID?uǮ_kva-I1>i~@KQ IYݸ<U&V&IIlG97Q4E뗋#b j0ĀkpM(iFn bUby	Sd/X=<:J8wLN3OPt+F^
 ۣe%_ۋdcWq!g|+8,c!I%pѪ\yل9yjԌ^mVA 2K	=AxQ<	e(ؾ{<T)i$@
 ص;s>fqJF`h8<^f;c+M.UuJ
 8f-+W_qlPIq$GMY#\FX :vl
 8#vS'ũmVb+ǐ+oVw5HѺ=x+	I8NU˫IM"?A5}rW	Cu`&G*;tN#.rzõ~%[6m%g*h>e~YQS`gq뒃.Ҝs !|ң*D_%֝
 {U^kVA5A~njZ~$VROعOpkʹ鳁߳C:~mQaU	]6>ޢF$z2v;uLZ*QKK>,MM6bWgYji}FQ\&^4S;	s"!!|UZb;k1@ԃaEpD=|ad|j4>SyvZb#U ߡl]lU1EQtvʹcy/ZuCFic~hd5lbF-E#Ą'HX}i`
 ⧁@`!eG'6AMP3HJj;x\X*޷WJު#2ݠ?H$=ko:%u~6
 %GDjn
 :
 ^*lYI+.E>w6@<Ǭ8hڈ2yI|n~TvX$u^G3M[НmN#qtFp֣K;髼Wx9jS0ӌEa7G:;K=JMdTDHw{<͓	t4wrIw,xuY{w'͵#m\jYбìtɱ Z$ ^2w	ь|f=+^|YП7oIX?LZ؛|R>(`.N׍ч:]9jqo}HhWckM#a]3B;%ωe6	xq'x*4@#M?ΘOQMZ(
 y	Y<t$\=Z8oyʥU@1xP(̣.J[i@f|'GRlMBYؼH%XE`='0	@Iݜ7ߤ(=Nੱ٦Tm,/.KHfZtjZ./	c|lxYOj}~ng
 9)K
 6(2*5>B/A>3bNzJ@KkJhIvvPJlƎ9v2ِYgFI`$0LёmfYA:p#auDW5["ZL[C?G^61UҊVZ9fe"::eЭN$+"i/1%WLٍywxjWoS+$4q ~1Uû4\VGAsa'30l%fءJ{־us5x*R$jpݾ[]ԃIYCѰ$}[ZtR[5"FIZbp+=ǧBh;o"GZd1FVxPxi&pzüޟbEnrƵX'H0g@aV$jarf%>ψ$^.qzU,u=:E mWv_'í68gY<^(]Kis+Ў=lkyNpʳ-iRJǘ*B/c<WO{>|j4!'P47Ρyw7UdJRol2^Pn(Tt+V2_Bn!;"YffVj9? (ªqI$ےr:q֥ZhJ~BRf
 Xj!^"}23,%ŻV֖JoYFG}|E#3<:]iCIhQ L6A'< Vvw?rVAJm]I}Ovt?~ꯀZR??	Hn]"֧8_s$D}+3.co|B(A˄0iA(1:vU?8`3es%R;%;rmSTpF"P?|GyB]~8͋'#r  X#R.t?&S]]8Ncç`0u<UVb#7$-K-y{c5ƥ	17}EA%K(-'ĨiޕfeUT079	`}EZXp_Bck[v߁}կ%5HXozcZ/9no.O &+OsH@6&Aob=,,-` JQ8$|N|m#cq?wEoZ5#>r9 VZ#]"'Q駖bIk.D|˳y#^N1(b+Q)=Sh$@2$ʪ_6KhδK;b˫Ip1))	O<lȘžEbpZjkJJ%]48G`yӿ86q~gz8BjI$D`L6 MVz$ȓp]nPpߙC'-\@OƠ\TnAρڂ%(c&W.[uN
 b2ZM/Y	50QpH.peRpguRB6XdSƋ1l\/eGRz'DYݻߠKngS}s8B]G3O,qH]e5'M9ջo4y629^kAH{
 YJska]ߥc_J9ڏ[E{_:2KAA֏C82X$f;(LI~gGx#ّ[jbv#mp7Vb[	]XW$gjWprbs6rA#wE35ք]0;3~к3 Z\C]՝l>?HnFj y)ߙˇ]P%s& ܾ wsLo#nQIJz9MB5?ܰjb]ߜ )өʥF_V31D;z.`$Ds.
 `,Dش>Jثq}Tp Aox*EBOsNx(Zƒ=OX]Â_$&z;Lf@OS!LR:>يC-;P5cthv3ܖ¿g@kG@Wld_}C JawAr٠:h4jgUcAH٥ͼs׫*+COuNx3D*Q1:ƵXfЂb3/_|r5yG8*i rA=d8oC|ծ9X-
 W;ٝv.
 FZe	ޤJ04U-`<^6/suTx{-!ػͨS=vY'Iiz?GULWU^/Zʛ}*ArF?$ VAH~P&{[,2AA&ɟo(SV<X6%TIYV`7܊gJaWx~dzK]@RY=9æ)Wpf÷ĴIQ|T}rT!Yc^9X؃LR NDU8-;;ԂFm:<iS=%1?3 QqGRPnbIU5hcN/(%OΈ0
 5y¶!_HIMLw[u~]݊O;Q:SN݋8[mgv	|%lcǎpo	|
 ;MڜzgѦz6p/C)!KRPFe7Rנo˦Ыw&{o6o3>w6y
 ~	#=I3ZvN\3ܮ&ۺB[
 fjOu\hWqG\%&f`hDka}+kj,}uAby(5KWO F?3cZ6–:m2 3MuA8pEX|'#D5=Zwёq]jgg7{i9%,_K76u\mkOء5U%ZӫpM5lVJA5*:NJy@. -w֓Q^{>91nN1wtEL xa*h-*exφ8Yaqa!MY	qw+)(..shdR({=YЁTJ%FHS7'pNde(>&O_lGBdpF%)B	Ź6aLeBm#
 y kb!䳆>	e}HCWy%mDe,1Ey 6\Zo)b{0(k.Bd@ )@A	00xWNc.F8/R^K1J\et$VdEC&VDBbnqp\]X[hYY?R&̬|q7jw#X@DmvZh&9 Et7`"4$4k4H|ؓRȗl
 |%%8LucjS2}dF`q@7_0&::G)7-CZar_,"W6HD7LR0MnY%LԂ*9w ^\6BӨVW^^&4y:<kQDҁ^Jl[TL<u4`*#یAPEF	jisF3}|+k._B35t.u_ >Aq:	WP(_f%KX9|Jי'a28c!=0 GgVz7mJ7ZZy7!`S;]v|zՆp0*n4He}&Eq-~yUl.&TsTXj}xĎLlvj&)lf5d>
 "\v۹$|뎼3O|CiǓCAhxF¬l^IllmJZv6>6n0b5R5 ؕ.oCn,H)!!i(_@_6Jeu%E[*^sfv;)0v>C;cTOtI{3=K@uJDEډ@\ "rь
 AKP.zK1xĆ98,tbK4b|\җw"K%0<b$u5&~ }#-Q4K(sÏ
 #BكݛGOH/#^tm֪EgY3CGKK][hy0>D7VZ+̢2s(e]n52sR'bpk/#)ٜa>T1ZW24l!tgAz=J3yeHn}<)J
 `GJ]F\vS]ɲ(~#/3>ډ}遜$[^,IohNDبʹ($:2)GK1HXF~'jndFjkV҆>RV3Vv/I$]TQt,r:o<@heo麍o(=~27OȘ^fFiM,Q N{uMU~
 egC|bY'M]~n?O^T.aiTcl^?r+|Ŧ_!-vWEnmY,$&Lx*<J'U␇!h\;Wx*zِa5'ܜܾ	A}*Q#(c:jEgc7.0f/beC)?-oa̯z#V>
 |zs ܬqo9RxJ؝˩&e>h1nl>X<mC6^a[|;ZhnI*22KbV4~|p|)cvE@専6Ma79i.ssJO$7,\>+0E<MKfeLOk1߳&E`֦Jأ::H։
 Zj|@ʁGv1⚮P$D .B[$lY.~b`A[]w:;d0yqѩyN[(1jDjgY3~%&'5jv1xgOYS8BIRfA)7#~L,&v#4)JFV'MKi^ܬWĜgaYpm{Ҷc p\&aC_fPq} C,wf3Nf]{Œy|ڀپhb-[wН=u؊W$mG<nImV:6aTg.j@\4fBmЭ͒"@3U;}ErJSL+H$-)\'5J*nb772U^%aCD`2Oa%ŇSd,-oFNEu ^mEI ,nַچ?'[*ŌP%IlYAi'_!6cawևJ$
 <{qonY7Ls@#?H'0qxї'&o>w2'J8$Ϣе
 (\C|ꅤ!^8~@H]y鳱lWU@Hc^AgƱD*.OGCns2Ckƕ0e~mf^zU9*6ľkBM&/4轳BM}]Y-MU=q|06tByxJ	Sk9NyHhdжlLݒ`A)mZN)1eH F\̙8^b?G`#yQA_)Ⱦ[ZkjT_xI~g؂J?T>
 =CF,-zNь@mLtIN^|6GMb5?-o@;D-Fէa|dh>sg2Tx`"(8LR)*p.
 +,3p!xJ6'L	+*^8^d\'|?PG.wQ^r=IfGZ#Z2u󑳗6HB"W=.ϠS6J\}22;8eS=:ڹBm@]a}*lg*$;W!N&Rƴrv67MW{5"awmOK@iKG@9~lX!\[`Xz
 pcwl'f#+x0-hо|$tzϓi($	 «ܵy	h"HhSx
 }ᙃ/Tx˂+zW:,1ͧC/=}9
 Tm8
 ]9ܦ\55GѴ(@.@%bأ{K$}%C0L6+j/E꫎A%р&^ oQY$c,4^9l|,EV(r54!R[:_xȐ?vB:wPS%3Q%Jr정g A랶vxݜbDل*/ra_3HCMTp712d8qe!e'n] Y?Iw:iGOܨE7FDm eik-	Y5AڽK$4!v*7W]k(Dѭ{ŮUݼ}DWDeG+ DLAۢ~Zp@w#8gs7ouO%ԕjY^Etn9d~qsT<9Za;OMpp!< ?aCS]Vʯn\S%T9*& dX4Bi	㾔8keƈ0%aG#Gb[\I4gyeW}tHį
 [!&Fw+Qx^
 fmuVX3C㌲lL}ʅ؛1+1Lp]}pp3Ojވ^	(~LDׅD툷rmAte:0S'/+wGq*EG;]e3>>ԱqXOcwHg	V`l|.jMȈU0גeuυDB1	p&/n]s,+
 aZ1.uV/a{~k5L$wuYA{x;#%ž1€$p}td;bGj#+=SwF&ܿz
 {A$}bz.39Bq5X޼񏑯%MWn9rd*?!3Gj&?ڊt+_Z\<-Hj<u'ӽ!?_v|/s-qXժ_X35(0k<4 )7H
 C+`X^GN@W㲊{XiK&pMDž/w3iF3ҋh|6>*"[쌦	wLo
 5O|?iS|kA&+E;l(^CkaZeەb~Bg]1]R# +&μ`8jq/Hk0
 9E@Ju!X$7:쨈XjUttFAUE``B,.?4@mB)sv6?_Xm(MAMNXi=ި
 g
 mqt}ɿ:ƙ'QcIdgz.M"YiT:GD%.]aRA$&P^F׀݇+yڿ^//=+tcfRȎYiz}wP=ߗ1OǞid%):AX.7?yE<]zRJgG2zeϩ ݷ?Hp #^zPNJ<`-?(\C*Ϋ[&iUtic7 L&]xU!^jV>3hUiDvN0/XnnQ8coiGLw*5PU@SrV9;|pLbK7gO9	x䐭o+y5pz14{!i3jHsW
 X6^7<jfDYIek8ZÃ|W֣g&b㐧21fv_oRQPpB3fƌF=\z<|^?H;hrq?}
 mHm#\._ .j{1288I=pTO~ҁ;h3{)b#ph@RYO\E=W4WT1GZc2Eڰ4=0K?"oHmK.+y!˳yzרRk<̮b5<R@<P'#{u
 TtNJ}v*hO5 <ؤ3Wpz:G_fg"ܒm{rZR+>q<O19ɪㆮՙv?y%A1@KΧ_|\xiuW{EӆziYL1g_RFO_0~sLE-A֧H"iv>-СsާJA	gVլsIoLI['w765 q "IC/iy|68ZIW`a7z c\"8-~.W5أ	6VK`v9 br5)v8p1&z\Ub~!5u%6ëR_ξƶrBkMTbXAب 8txhan~Usq%bVMiˀ	fD d*_9_Ֆm]:4("`붟n ?&Q*jN(i.ls5QDP!fkx9WWP1={daC~=7JއXJDnʂ內S\Ds`3CNް韙l(:>6mD^-$XI~Z;jԨvU(O8g4+1ꠑs5^0A*o~Ǝiruʶjl`*XN$/JaPG vD ?-chO?T$t>a6z i8=k-c#]e1*E_6l=Gg$sn00AԊL޹|ҏ-.CHw󭘙41qUXml:U
 =J.t>{=Z4n&*a$Q`f\r-!,6Qמ/yU/?$?vxc`<ġ&rA5/U#ӑ#CnIw1ͩ*xxU<YHN}1MU3#`{ǮY/lOTntsPW*RZP.r)94K7KdX[6#*XL2],"Ә^$ޭH%r) ʷfrhef>~ؽ:f	Rp*3q\jUۖ'iDT"j?	0~>H=	CD]peC@Z]/LLR'mxTw.AByφQb'5%XBp=`6Gݸkttu*ƿǿEPH~Vyg7᥊0v9):\=jQN7bI琉=cJE ?׿[<ym)zTũ=W&}z7VHn~Xu8iҒvI:C[@ApԻ)"UȞsɾ1:PsA<{;^ZLukQ#Ezv>bOʳ8q` arׁy+V@gB#!!T' &w|?ZSZӝtd\f<'EO6jnNu:!H_$ҼeB+kUH dU͕y.įqMEugjSuB_Y+TۛDUѼ+ODqDAzsღΏ-ߒM;ahc|Πq2xN .P^DTk*Y쭙@M}̽F@2}vGb0ĶDžZ5g*3"j3p6窄#B:826+dl5Lf}<Xrd
 Z
  ,Y2M\{F-%΀$S(?*	WP@˜3I2AnRiRˣ&tC+-!*Jՙ;g]GA!׌0R:(/YvO(
  Lh9x$%rkXǤˮ#eCWt2`.h[GQkʕR!ŵ&+!)ta9Ar*XꉽPMsTg>2
 1xH)\21oS<)]l-X%TZk.?wo)̻8K$,3[,UB'-W#pۛh{a(3mvqA2Nh)>
 #ȱc%ZzF5D6P頋BNh[MohHcWa<o	r1aSƩ=ۣp?YStfŭn6lٟz[9@J`E),X|]}ōfkm&''RZp>BcX0wnG09[\&+9;P1U"ll6hrF,LȊ:{x_ʖܽZ ªI{`=d.FFi$M!{64s$-zy<*x/{7ǽjw`*ySx4i\ir;\5
 t<xؒM.e[7iJvbL gQm$+qCt!Iъ(9Աq49"lzD:?pуdԒoсel߄ZS@V<Jv,iYz":bp=ۣv.o9bާ_%^nc\sYQ#pR`gRVlF?߃E4&HMh;?,y,zl{|z~b)sd6@  1:{<9<;@6{R@:W,=/8'Z*r\&!tR.F;q-/~ζhpA[!n)1"b4cbJb'\i4,1ɟ"8.]I^K!Xh0F7䡊Jedovmnk#Ȩf$誅UXyCՁ@jCRIכm9?kBIq&.hӰ&,@m	Qjƿ s0J\&O`D$Dtrw-nG[f!n[ie~&Ao!g%@8INoUTF>&2.8oBjRw9CRQCGX@B	t{gCVY/|X^]R]_<8n[ź,v^aU~zVŎ+O9
 N}Lv cl>\h`*IUhQ\(/8<BOf8<{4cF`{r/T;{Q{D?dc˓qS{l`<ǹd!kH>Y*g=U ȔuTFgu"ozuo^pbB
 iGVpXY?RJ	hFxR.0!c)O^~K@Y=D,t؈9>L/8oUzc08R$Wؼ)XRj2}^rFץaorhίlV@A
 ?Nv	7e]%_ǕFADxe`mt,Fx'ڂ,MB_i0CpVw瀦ֺfudX{Bq&1HG|7v
 \#b6	vbY%S6܀GaQ'KT4s|H=X_ 3d78NybYWfd-{BvF	,Fy><ݜ_Vf
 !J׉Ƃ+Աyw?4B'+Lsơ7ʃ֘ bx$냶 SYԕZ2ӎ6iߋ6;pv$1_W)=wZO5.]'I1!r#8+UV0uL}6q/$_~vVOd_Co}}zmEgْǩ˸Ma%6 c,{?T%[
 vѽ6j-$Hh>Q#߅(>X=B_q'	٫6bˈ[Xr8dz.ѕIj%N`4X*{pk1NM!(*CfaJ3h89c/9L_/]0]'x1/$7OKךB%TG]KG:”ylk-f{#p;`eH/ۍh swsP7PT 9˃Vbۇ"?0pߝݳ}f"^$_7'% 0umw{K5]0C2ra*m՜Es=NCsFH?N}pݪ_
 ,9 ~'O}sC8?\a-V4l{*>_ET|^7LڣDsFrIr%Ibr^%\^NlMWtaCBlqY02=A8i\/F-> DI:h0b`OQN4dYL
 n-[+2_N$}_(Ez0EڍTT붝no]0h >Usc\R7WDjqIϬg9_$&va"In1X"eAʼ_;z?xSHy	v+	{:i_A]{XОNڷBxNJ7-ijBzbG|A4J!	Tdo20k1T,15ⓛ҃ 6Iƻ$.F^mR+HV[Yɵq')pķl/τPm67n~FVS{Űڧ:kcB:YT}HH]]\}l=d0n"A_v!/lS%`t"T	J@i\_*5 {NYU<2- dBZb,蓣GAjuc-(MSC`jޠ5t?NX* n%sT7:B5g0(d1z٭ҕd̄įqx+hRXnKST>HVLށûx#W!Jjmq"Jfο



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301111615.r0BGFnwW050631>