ReleaseNotes 1.1 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334
  1. This document summarizes new features and bugfixes in each stable
  2. release of Tor. If you want to see more detailed descriptions of the
  3. changes in each development snapshot, see the ChangeLog file.
  4. Changes in version 0.3.5.8 - 2019-02-21
  5. Tor 0.3.5.8 backports serveral fixes from later releases, including fixes
  6. for an annoying SOCKS-parsing bug that affected users in earlier 0.3.5.x
  7. releases.
  8. It also includes a fix for a medium-severity security bug affecting Tor
  9. 0.3.2.1-alpha and later. All Tor instances running an affected release
  10. should upgrade to 0.3.3.12, 0.3.4.11, 0.3.5.8, or 0.4.0.2-alpha.
  11. o Major bugfixes (cell scheduler, KIST, security):
  12. - Make KIST consider the outbuf length when computing what it can
  13. put in the outbuf. Previously, KIST acted as though the outbuf
  14. were empty, which could lead to the outbuf becoming too full. It
  15. is possible that an attacker could exploit this bug to cause a Tor
  16. client or relay to run out of memory and crash. Fixes bug 29168;
  17. bugfix on 0.3.2.1-alpha. This issue is also being tracked as
  18. TROVE-2019-001 and CVE-2019-8955.
  19. o Major bugfixes (networking, backport from 0.4.0.2-alpha):
  20. - Gracefully handle empty username/password fields in SOCKS5
  21. username/password auth messsage and allow SOCKS5 handshake to
  22. continue. Previously, we had rejected these handshakes, breaking
  23. certain applications. Fixes bug 29175; bugfix on 0.3.5.1-alpha.
  24. o Minor features (compilation, backport from 0.4.0.2-alpha):
  25. - Compile correctly when OpenSSL is built with engine support
  26. disabled, or with deprecated APIs disabled. Closes ticket 29026.
  27. Patches from "Mangix".
  28. o Minor features (geoip):
  29. - Update geoip and geoip6 to the February 5 2019 Maxmind GeoLite2
  30. Country database. Closes ticket 29478.
  31. o Minor features (testing, backport from 0.4.0.2-alpha):
  32. - Treat all unexpected ERR and BUG messages as test failures. Closes
  33. ticket 28668.
  34. o Minor bugfixes (onion service v3, client, backport from 0.4.0.1-alpha):
  35. - Stop logging a "BUG()" warning and stacktrace when we find a SOCKS
  36. connection waiting for a descriptor that we actually have in the
  37. cache. It turns out that this can actually happen, though it is
  38. rare. Now, tor will recover and retry the descriptor. Fixes bug
  39. 28669; bugfix on 0.3.2.4-alpha.
  40. o Minor bugfixes (IPv6, backport from 0.4.0.1-alpha):
  41. - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
  42. IPv6 socket was bound using an address family of AF_INET instead
  43. of AF_INET6. Fixes bug 28995; bugfix on 0.3.5.1-alpha. Patch from
  44. Kris Katterjohn.
  45. o Minor bugfixes (build, compatibility, rust, backport from 0.4.0.2-alpha):
  46. - Update Cargo.lock file to match the version made by the latest
  47. version of Rust, so that "make distcheck" will pass again. Fixes
  48. bug 29244; bugfix on 0.3.3.4-alpha.
  49. o Minor bugfixes (client, clock skew, backport from 0.4.0.1-alpha):
  50. - Select guards even if the consensus has expired, as long as the
  51. consensus is still reasonably live. Fixes bug 24661; bugfix
  52. on 0.3.0.1-alpha.
  53. o Minor bugfixes (compilation, backport from 0.4.0.1-alpha):
  54. - Compile correctly on OpenBSD; previously, we were missing some
  55. headers required in order to detect it properly. Fixes bug 28938;
  56. bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
  57. o Minor bugfixes (documentation, backport from 0.4.0.2-alpha):
  58. - Describe the contents of the v3 onion service client authorization
  59. files correctly: They hold public keys, not private keys. Fixes
  60. bug 28979; bugfix on 0.3.5.1-alpha. Spotted by "Felixix".
  61. o Minor bugfixes (logging, backport from 0.4.0.1-alpha):
  62. - Rework rep_hist_log_link_protocol_counts() to iterate through all
  63. link protocol versions when logging incoming/outgoing connection
  64. counts. Tor no longer skips version 5, and we won't have to
  65. remember to update this function when new link protocol version is
  66. developed. Fixes bug 28920; bugfix on 0.2.6.10.
  67. o Minor bugfixes (logging, backport from 0.4.0.2-alpha):
  68. - Log more information at "warning" level when unable to read a
  69. private key; log more information at "info" level when unable to
  70. read a public key. We had warnings here before, but they were lost
  71. during our NSS work. Fixes bug 29042; bugfix on 0.3.5.1-alpha.
  72. o Minor bugfixes (misc, backport from 0.4.0.2-alpha):
  73. - The amount of total available physical memory is now determined
  74. using the sysctl identifier HW_PHYSMEM (rather than HW_USERMEM)
  75. when it is defined and a 64-bit variant is not available. Fixes
  76. bug 28981; bugfix on 0.2.5.4-alpha. Patch from Kris Katterjohn.
  77. o Minor bugfixes (onion services, backport from 0.4.0.2-alpha):
  78. - Avoid crashing if ClientOnionAuthDir (incorrectly) contains more
  79. than one private key for a hidden service. Fixes bug 29040; bugfix
  80. on 0.3.5.1-alpha.
  81. - In hs_cache_store_as_client() log an HSDesc we failed to parse at
  82. "debug" level. Tor used to log it as a warning, which caused very
  83. long log lines to appear for some users. Fixes bug 29135; bugfix
  84. on 0.3.2.1-alpha.
  85. - Stop logging "Tried to establish rendezvous on non-OR circuit..."
  86. as a warning. Instead, log it as a protocol warning, because there
  87. is nothing that relay operators can do to fix it. Fixes bug 29029;
  88. bugfix on 0.2.5.7-rc.
  89. o Minor bugfixes (tests, directory clients, backport from 0.4.0.1-alpha):
  90. - Mark outdated dirservers when Tor only has a reasonably live
  91. consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
  92. o Minor bugfixes (tests, backport from 0.4.0.2-alpha):
  93. - Detect and suppress "bug" warnings from the util/time test on
  94. Windows. Fixes bug 29161; bugfix on 0.2.9.3-alpha.
  95. - Do not log an error-level message if we fail to find an IPv6
  96. network interface from the unit tests. Fixes bug 29160; bugfix
  97. on 0.2.7.3-rc.
  98. o Minor bugfixes (usability, backport from 0.4.0.1-alpha):
  99. - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate().
  100. Some users took this phrasing to mean that the mentioned guard was
  101. under their control or responsibility, which it is not. Fixes bug
  102. 28895; bugfix on Tor 0.3.0.1-alpha.
  103. Changes in version 0.3.5.7 - 2019-01-07
  104. Tor 0.3.5.7 is the first stable release in its series; it includes
  105. compilation and portability fixes, and a fix for a severe problem
  106. affecting directory caches.
  107. The Tor 0.3.5 series includes several new features and performance
  108. improvements, including client authorization for v3 onion services,
  109. cleanups to bootstrap reporting, support for improved bandwidth-
  110. measurement tools, experimental support for NSS in place of OpenSSL,
  111. and much more. It also begins a full reorganization of Tor's code
  112. layout, for improved modularity and maintainability in the future.
  113. Finally, there is the usual set of performance improvements and
  114. bugfixes that we try to do in every release series.
  115. There are a couple of changes in the 0.3.5 that may affect
  116. compatibility. First, the default version for newly created onion
  117. services is now v3. Use the HiddenServiceVersion option if you want to
  118. override this. Second, some log messages related to bootstrapping have
  119. changed; if you use stem, you may need to update to the latest version
  120. so it will recognize them.
  121. We have designated 0.3.5 as a "long-term support" (LTS) series: we
  122. will continue to patch major bugs in typical configurations of 0.3.5
  123. until at least 1 Feb 2022. (We do not plan to provide long-term
  124. support for embedding, Rust support, NSS support, running a directory
  125. authority, or unsupported platforms. For these, you will need to stick
  126. with the latest stable release.)
  127. Below are the changes since 0.3.4.9. For a complete list of changes
  128. since 0.3.5.6-rc, see the ChangeLog file.
  129. o Major features (bootstrap):
  130. - Don't report directory progress until after a connection to a
  131. relay or bridge has succeeded. Previously, we'd report 80%
  132. progress based on cached directory information when we couldn't
  133. even connect to the network. Closes ticket 27169.
  134. o Major features (new code layout):
  135. - Nearly all of Tor's source code has been moved around into more
  136. logical places. The "common" directory is now divided into a set
  137. of libraries in "lib", and files in the "or" directory have been
  138. split into "core" (logic absolutely needed for onion routing),
  139. "feature" (independent modules in Tor), and "app" (to configure
  140. and invoke the rest of Tor). See doc/HACKING/CodeStructure.md for
  141. more information. Closes ticket 26481.
  142. This refactoring is not complete: although the libraries have been
  143. refactored to be acyclic, the main body of Tor is still too
  144. interconnected. We will attempt to improve this in the future.
  145. o Major features (onion services v3):
  146. - Implement onion service client authorization at the descriptor
  147. level: only authorized clients can decrypt a service's descriptor
  148. to find out how to contact it. A new torrc option was added to
  149. control this client side: ClientOnionAuthDir <path>. On the
  150. service side, if the "authorized_clients/" directory exists in the
  151. onion service directory path, client configurations are read from
  152. the files within. See the manpage for more details. Closes ticket
  153. 27547. Patch done by Suphanat Chunhapanya (haxxpop).
  154. - Improve revision counter generation in next-gen onion services.
  155. Onion services can now scale by hosting multiple instances on
  156. different hosts without synchronization between them, which was
  157. previously impossible because descriptors would get rejected by
  158. HSDirs. Addresses ticket 25552.
  159. - Version 3 onion services can now use the per-service
  160. HiddenServiceExportCircuitID option to differentiate client
  161. circuits. It communicates with the service by using the HAProxy
  162. protocol to assign virtual IP addresses to inbound client
  163. circuits. Closes ticket 4700. Patch by Mahrud Sayrafi.
  164. o Major features (onion services, UI change):
  165. - For a newly created onion service, the default version is now 3.
  166. Tor still supports existing version 2 services, but the operator
  167. now needs to set "HiddenServiceVersion 2" in order to create a new
  168. version 2 service. For existing services, Tor now learns the
  169. version by reading the key file. Closes ticket 27215.
  170. o Major features (portability, cryptography, experimental, TLS):
  171. - Tor now has the option to compile with the NSS library instead of
  172. OpenSSL. This feature is experimental, and we expect that bugs may
  173. remain. It is mainly intended for environments where Tor's
  174. performance is not CPU-bound, and where NSS is already known to be
  175. installed. To try it out, configure Tor with the --enable-nss
  176. flag. Closes tickets 26631, 26815, and 26816.
  177. If you are experimenting with this option and using an old cached
  178. consensus, Tor may fail to start. To solve this, delete your
  179. "cached-consensus" and "cached-microdesc-consensus" files,
  180. (if present), and restart Tor.
  181. o Major features (relay, UI change):
  182. - Relays no longer run as exits by default. If the "ExitRelay"
  183. option is auto (or unset), and no exit policy is specified with
  184. ExitPolicy or ReducedExitPolicy, we now treat ExitRelay as 0.
  185. Previously in this case, we allowed exit traffic and logged a
  186. warning message. Closes ticket 21530. Patch by Neel Chauhan.
  187. - Tor now validates that the ContactInfo config option is valid UTF-
  188. 8 when parsing torrc. Closes ticket 27428.
  189. o Major bugfixes (compilation):
  190. - Fix compilation on ARM (and other less-used CPUs) when compiling
  191. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  192. o Major bugfixes (compilation, rust):
  193. - Rust tests can now build and run successfully with the
  194. --enable-fragile-hardening option enabled. Doing this currently
  195. requires the rust beta channel; it will be possible with stable
  196. rust once Rust version 1.31 is released. Patch from Alex Crichton.
  197. Fixes bugs 27272, 27273, and 27274. Bugfix on 0.3.1.1-alpha.
  198. o Major bugfixes (directory authority):
  199. - Actually check that the address we get from DirAuthority
  200. configuration line is valid IPv4. Explicitly disallow DirAuthority
  201. address to be a DNS hostname. Fixes bug 26488; bugfix
  202. on 0.1.2.10-rc.
  203. o Major bugfixes (embedding, main loop):
  204. - When DisableNetwork becomes set, actually disable periodic events
  205. that are already enabled. (Previously, we would refrain from
  206. enabling new ones, but we would leave the old ones turned on.)
  207. Fixes bug 28348; bugfix on 0.3.4.1-alpha.
  208. o Major bugfixes (main loop, bootstrap):
  209. - Make sure Tor bootstraps and works properly if only the
  210. ControlPort is set. Prior to this fix, Tor would only bootstrap
  211. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  212. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  213. o Major bugfixes (onion service v3):
  214. - On an intro point for a version 3 onion service, stop closing
  215. introduction circuits on a NACK. This lets the client decide
  216. whether to reuse the circuit or discard it. Previously, we closed
  217. intro circuits when sending NACKs. Fixes bug 27841; bugfix on
  218. 0.3.2.1-alpha. Patch by Neel Chaunan.
  219. o Major bugfixes (OpenSSL, portability):
  220. - Fix our usage of named groups when running as a TLS 1.3 client in
  221. OpenSSL 1.1.1. Previously, we only initialized EC groups when
  222. running as a relay, which caused clients to fail to negotiate TLS
  223. 1.3 with relays. Fixes bug 28245; bugfix on 0.2.9.15 (when TLS 1.3
  224. support was added).
  225. o Major bugfixes (relay bandwidth statistics):
  226. - When we close relayed circuits, report the data in the circuit
  227. queues as being written in our relay bandwidth stats. This
  228. mitigates guard discovery and other attacks that close circuits
  229. for the explicit purpose of noticing this discrepancy in
  230. statistics. Fixes bug 23512; bugfix on 0.0.8pre3.
  231. o Major bugfixes (relay):
  232. - When our write bandwidth limit is exhausted, stop writing on the
  233. connection. Previously, we had a typo in the code that would make
  234. us stop reading instead, leading to relay connections being stuck
  235. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  236. on 0.3.4.1-alpha.
  237. - Always reactivate linked connections in the main loop so long as
  238. any linked connection has been active. Previously, connections
  239. serving directory information wouldn't get reactivated after the
  240. first chunk of data was sent (usually 32KB), which would prevent
  241. clients from bootstrapping. Fixes bug 28912; bugfix on
  242. 0.3.4.1-alpha. Patch by "cypherpunks3".
  243. o Major bugfixes (restart-in-process):
  244. - Fix a use-after-free error that could be caused by passing Tor an
  245. impossible set of options that would fail during options_act().
  246. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  247. o Minor features (admin tools):
  248. - Add a new --key-expiration option to print the expiration date of
  249. the signing cert in an ed25519_signing_cert file. Resolves
  250. issue 19506.
  251. o Minor features (build):
  252. - If you pass the "--enable-pic" option to configure, Tor will try
  253. to tell the compiler to build position-independent code suitable
  254. to link into a dynamic library. (The default remains -fPIE, for
  255. code suitable for a relocatable executable.) Closes ticket 23846.
  256. o Minor features (code correctness, testing):
  257. - Tor's build process now includes a "check-includes" make target to
  258. verify that no module of Tor relies on any headers from a higher-
  259. level module. We hope to use this feature over time to help
  260. refactor our codebase. Closes ticket 26447.
  261. o Minor features (code layout):
  262. - We have a new "lowest-level" error-handling API for use by code
  263. invoked from within the logging module. With this interface, the
  264. logging code is no longer at risk of calling into itself if a
  265. failure occurs while it is trying to log something. Closes
  266. ticket 26427.
  267. o Minor features (compilation):
  268. - When possible, place our warning flags in a separate file, to
  269. avoid flooding verbose build logs. Closes ticket 28924.
  270. - Tor's configure script now supports a --with-malloc= option to
  271. select your malloc implementation. Supported options are
  272. "tcmalloc", "jemalloc", "openbsd" (deprecated), and "system" (the
  273. default). Addresses part of ticket 20424. Based on a patch from
  274. Alex Xu.
  275. o Minor features (config):
  276. - The "auto" keyword in torrc is now case-insensitive. Closes
  277. ticket 26663.
  278. o Minor features (continuous integration):
  279. - Add a Travis CI build for --enable-nss on Linux gcc. Closes
  280. ticket 27751.
  281. - Add new CI job to Travis configuration to run stem-based
  282. integration tests. Closes ticket 27913.
  283. - Use the Travis Homebrew addon to install packages on macOS during
  284. Travis CI. The package list is the same, but the Homebrew addon
  285. does not do a `brew update` by default. Implements ticket 27738.
  286. - Report what program produced the mysterious core file that we
  287. occasionally see on Travis CI during make distcheck. Closes
  288. ticket 28024.
  289. - Don't do a distcheck with --disable-module-dirauth in Travis.
  290. Implements ticket 27252.
  291. - Install libcap-dev and libseccomp2-dev so these optional
  292. dependencies get tested on Travis CI. Closes ticket 26560.
  293. - Only run one online rust build in Travis, to reduce network
  294. errors. Skip offline rust builds on Travis for Linux gcc, because
  295. they're redundant. Implements ticket 27252.
  296. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  297. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  298. Linux with default settings, because all the non-default builds
  299. use gcc on Linux. Implements ticket 27252.
  300. o Minor features (continuous integration, Windows):
  301. - Always show the configure and test logs, and upload them as build
  302. artifacts, when building for Windows using Appveyor CI.
  303. Implements 28459.
  304. - Build tor on Windows Server 2012 R2 and Windows Server 2016 using
  305. Appveyor's CI. Closes ticket 28318.
  306. o Minor features (controller):
  307. - Emit CIRC_BW events as soon as we detect that we processed an
  308. invalid or otherwise dropped cell on a circuit. This allows
  309. vanguards and other controllers to react more quickly to dropped
  310. cells. Closes ticket 27678.
  311. - For purposes of CIRC_BW-based dropped cell detection, track half-
  312. closed stream ids, and allow their ENDs, SENDMEs, DATA and path
  313. bias check cells to arrive without counting it as dropped until
  314. either the END arrives, or the windows are empty. Closes
  315. ticket 25573.
  316. - Implement a 'GETINFO md/all' controller command to enable getting
  317. all known microdescriptors. Closes ticket 8323.
  318. - The GETINFO command now support an "uptime" argument, to return
  319. Tor's uptime in seconds. Closes ticket 25132.
  320. o Minor features (denial-of-service avoidance):
  321. - Make our OOM handler aware of the DNS cache so that it doesn't
  322. fill up the memory. This check is important for our DoS mitigation
  323. subsystem. Closes ticket 18642. Patch by Neel Chauhan.
  324. o Minor features (development):
  325. - Tor's makefile now supports running the "clippy" Rust style tool
  326. on our Rust code. Closes ticket 22156.
  327. o Minor features (directory authority):
  328. - There is no longer an artificial upper limit on the length of
  329. bandwidth lines. Closes ticket 26223.
  330. - When a bandwidth file is used to obtain the bandwidth measurements,
  331. include this bandwidth file headers in the votes. Closes
  332. ticket 3723.
  333. - Improved support for networks with only a single authority or a
  334. single fallback directory. Patch from Gabriel Somlo. Closes
  335. ticket 25928.
  336. o Minor features (embedding API):
  337. - The Tor controller API now supports a function to launch Tor with
  338. a preconstructed owning controller FD, so that embedding
  339. applications don't need to manage controller ports and
  340. authentication. Closes ticket 24204.
  341. - The Tor controller API now has a function that returns the name
  342. and version of the backend implementing the API. Closes
  343. ticket 26947.
  344. o Minor features (fallback directory list):
  345. - Replace the 150 fallbacks originally introduced in Tor
  346. 0.3.3.1-alpha in January 2018 (of which ~115 were still
  347. functional), with a list of 157 fallbacks (92 new, 65 existing, 85
  348. removed) generated in December 2018. Closes ticket 24803.
  349. o Minor features (geoip):
  350. - Update geoip and geoip6 to the January 3 2019 Maxmind GeoLite2
  351. Country database. Closes ticket 29012.
  352. o Minor features (memory management):
  353. - Get Libevent to use the same memory allocator as Tor, by calling
  354. event_set_mem_functions() during initialization. Resolves
  355. ticket 8415.
  356. o Minor features (memory usage):
  357. - When not using them, store legacy TAP public onion keys in DER-
  358. encoded format, rather than as expanded public keys. This should
  359. save several megabytes on typical clients. Closes ticket 27246.
  360. o Minor features (OpenSSL bug workaround):
  361. - Work around a bug in OpenSSL 1.1.1a, which prevented the TLS 1.3
  362. key export function from handling long labels. When this bug is
  363. detected, Tor will disable TLS 1.3. We recommend upgrading to a
  364. version of OpenSSL without this bug when it becomes available.
  365. Closes ticket 28973.
  366. o Minor features (OpenSSL):
  367. - When possible, use RFC5869 HKDF implementation from OpenSSL rather
  368. than our own. Resolves ticket 19979.
  369. o Minor features (performance):
  370. - Remove about 96% of the work from the function that we run at
  371. startup to test our curve25519_basepoint implementation. Since
  372. this function has yet to find an actual failure, we now only run
  373. it for 8 iterations instead of 200. Based on our profile
  374. information, this change should save around 8% of our startup time
  375. on typical desktops, and may have a similar effect on other
  376. platforms. Closes ticket 28838.
  377. - Stop re-validating our hardcoded Diffie-Hellman parameters on
  378. every startup. Doing this wasted time and cycles, especially on
  379. low-powered devices. Closes ticket 28851.
  380. o Minor features (Rust, code quality):
  381. - Improve rust code quality in the rust protover implementation by
  382. making it more idiomatic. Includes changing an internal API to
  383. take &str instead of &String. Closes ticket 26492.
  384. o Minor features (testing):
  385. - Add scripts/test/chutney-git-bisect.sh, for bisecting using
  386. chutney. Implements ticket 27211.
  387. o Minor features (tor-resolve):
  388. - The tor-resolve utility can now be used with IPv6 SOCKS proxies.
  389. Side-effect of the refactoring for ticket 26526.
  390. o Minor features (UI):
  391. - Log each included configuration file or directory as we read it,
  392. to provide more visibility about where Tor is reading from. Patch
  393. from Unto Sten; closes ticket 27186.
  394. - Lower log level of "Scheduler type KIST has been enabled" to INFO.
  395. Closes ticket 26703.
  396. o Minor bugfixes (32-bit OSX and iOS, timing):
  397. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  398. difference algorithm for 32-bit Apple platforms. Previously, it
  399. would overflow when calculating the difference between two times
  400. more than 47 days apart. Fixes part of bug 27139; bugfix
  401. on 0.3.4.1-alpha.
  402. - Improve the precision of our 32-bit millisecond difference
  403. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  404. bugfix on 0.3.4.1-alpha.
  405. - Relax the tolerance on the mainloop/update_time_jumps test when
  406. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  407. on 0.3.4.1-alpha.
  408. o Minor bugfixes (bootstrap):
  409. - Try harder to get descriptors in non-exit test networks, by using
  410. the mid weight for the third hop when there are no exits. Fixes
  411. bug 27237; bugfix on 0.2.6.2-alpha.
  412. o Minor bugfixes (C correctness):
  413. - Avoid casting smartlist index to int implicitly, as it may trigger
  414. a warning (-Wshorten-64-to-32). Fixes bug 26282; bugfix on
  415. 0.2.3.13-alpha, 0.2.7.1-alpha and 0.2.1.1-alpha.
  416. - Use time_t for all values in
  417. predicted_ports_prediction_time_remaining(). Rework the code that
  418. computes difference between durations/timestamps. Fixes bug 27165;
  419. bugfix on 0.3.1.1-alpha.
  420. o Minor bugfixes (client, memory usage):
  421. - When not running as a directory cache, there is no need to store
  422. the text of the current consensus networkstatus in RAM.
  423. Previously, however, clients would store it anyway, at a cost of
  424. over 5 MB. Now, they do not. Fixes bug 27247; bugfix
  425. on 0.3.0.1-alpha.
  426. o Minor bugfixes (client, ReachableAddresses):
  427. - Instead of adding a "reject *:*" line to ReachableAddresses when
  428. loading the configuration, add one to the policy after parsing it
  429. in parse_reachable_addresses(). This prevents extra "reject *.*"
  430. lines from accumulating on reloads. Fixes bug 20874; bugfix on
  431. 0.1.1.5-alpha. Patch by Neel Chauhan.
  432. o Minor bugfixes (code quality):
  433. - Rename sandbox_getaddrinfo() and other functions to no longer
  434. misleadingly suggest that they are sandbox-only. Fixes bug 26525;
  435. bugfix on 0.2.7.1-alpha.
  436. o Minor bugfixes (code safety):
  437. - Rewrite our assertion macros so that they no longer suppress the
  438. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  439. on 0.0.6.
  440. o Minor bugfixes (compilation):
  441. - Initialize a variable unconditionally in aes_new_cipher(), since
  442. some compilers cannot tell that we always initialize it before
  443. use. Fixes bug 28413; bugfix on 0.2.9.3-alpha.
  444. o Minor bugfixes (configuration):
  445. - Refuse to start with relative file paths and RunAsDaemon set
  446. (regression from the fix for bug 22731). Fixes bug 28298; bugfix
  447. on 0.3.3.1-alpha.
  448. o Minor bugfixes (configuration, Onion Services):
  449. - In rend_service_parse_port_config(), disallow any input to remain
  450. after address-port pair was parsed. This will catch address and
  451. port being whitespace-separated by mistake of the user. Fixes bug
  452. 27044; bugfix on 0.2.9.10.
  453. o Minor bugfixes (connection, relay):
  454. - Avoid a logging a BUG() stacktrace when closing connection held
  455. open because the write side is rate limited but not the read side.
  456. Now, the connection read side is simply shut down until Tor is
  457. able to flush the connection and close it. Fixes bug 27750; bugfix
  458. on 0.3.4.1-alpha.
  459. o Minor bugfixes (continuous integration, Windows):
  460. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  461. 27464; bugfix on 0.3.4.1-alpha.
  462. - Install only the necessary mingw packages during our appveyor
  463. builds. This change makes the build a little faster, and prevents
  464. a conflict with a preinstalled mingw openssl that appveyor now
  465. ships. Fixes bugs 27765 and 27943; bugfix on 0.3.4.2-alpha.
  466. - Explicitly specify the path to the OpenSSL library and do not
  467. download OpenSSL from Pacman, but instead use the library that is
  468. already provided by AppVeyor. Fixes bug 28574; bugfix on master.
  469. - Manually configure the zstd compiler options, when building using
  470. mingw on Appveyor Windows CI. The MSYS2 mingw zstd package does
  471. not come with a pkg-config file. Fixes bug 28454; bugfix
  472. on 0.3.4.1-alpha.
  473. - Stop using an external OpenSSL install, and stop installing MSYS2
  474. packages, when building using mingw on Appveyor Windows CI. Fixes
  475. bug 28399; bugfix on 0.3.4.1-alpha.
  476. o Minor bugfixes (controller):
  477. - Consider all routerinfo errors other than "not a server" to be
  478. transient for the purpose of "GETINFO exit-policy/*" controller
  479. request. Print stacktrace in the unlikely case of failing to
  480. recompute routerinfo digest. Fixes bug 27034; bugfix
  481. on 0.3.4.1-alpha.
  482. o Minor bugfixes (correctness):
  483. - Fix an unreached code path where we checked the value of
  484. "hostname" inside send_resolved_hostname_cell(). Previously, we
  485. used it before checking it; now we check it first. Fixes bug
  486. 28879; bugfix on 0.1.2.7-alpha.
  487. o Minor bugfixes (directory connection shutdown):
  488. - Avoid a double-close when shutting down a stalled directory
  489. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  490. o Minor bugfixes (directory permissions):
  491. - When a user requests a group-readable DataDirectory, give it to
  492. them. Previously, when the DataDirectory and the CacheDirectory
  493. were the same, the default setting (0) for
  494. CacheDirectoryGroupReadable would override the setting for
  495. DataDirectoryGroupReadable. Fixes bug 26913; bugfix
  496. on 0.3.3.1-alpha.
  497. o Minor bugfixes (HTTP tunnel):
  498. - Fix a bug warning when closing an HTTP tunnel connection due to an
  499. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  500. on 0.3.2.1-alpha.
  501. o Minor bugfixes (ipv6):
  502. - In addrs_in_same_network_family(), we choose the subnet size based
  503. on the IP version (IPv4 or IPv6). Previously, we chose a fixed
  504. subnet size of /16 for both IPv4 and IPv6 addresses. Fixes bug
  505. 15518; bugfix on 0.2.3.1-alpha. Patch by Neel Chauhan.
  506. o Minor bugfixes (Linux seccomp2 sandbox):
  507. - Permit the "shutdown()" system call, which is apparently used by
  508. OpenSSL under some circumstances. Fixes bug 28183; bugfix
  509. on 0.2.5.1-alpha.
  510. o Minor bugfixes (logging):
  511. - Stop talking about the Named flag in log messages. Clients have
  512. ignored the Named flag since 0.3.2. Fixes bug 28441; bugfix
  513. on 0.3.2.1-alpha.
  514. - As a precaution, do an early return from log_addr_has_changed() if
  515. Tor is running as client. Also, log a stack trace for debugging as
  516. this function should only be called when Tor runs as server. Fixes
  517. bug 26892; bugfix on 0.1.1.9-alpha.
  518. - Refrain from mentioning bug 21018 in the logs, as it is already
  519. fixed. Fixes bug 25477; bugfix on 0.2.9.8.
  520. o Minor bugfixes (logging, documentation):
  521. - When SafeLogging is enabled, scrub IP address in
  522. channel_tls_process_netinfo_cell(). Also, add a note to manpage
  523. that scrubbing is not guaranteed on loglevels below Notice. Fixes
  524. bug 26882; bugfix on 0.2.4.10-alpha.
  525. o Minor bugfixes (memory leaks):
  526. - Fix a harmless memory leak in libtorrunner.a. Fixes bug 28419;
  527. bugfix on 0.3.3.1-alpha. Patch from Martin Kepplinger.
  528. - Fix a small memory leak when calling Tor with --dump-config. Fixes
  529. bug 27893; bugfix on 0.3.2.1-alpha.
  530. o Minor bugfixes (netflow padding):
  531. - Ensure circuitmux queues are empty before scheduling or sending
  532. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  533. o Minor bugfixes (onion service v2):
  534. - Log at level "info", not "warning", in the case that we do not
  535. have a consensus when a .onion request comes in. This can happen
  536. normally while bootstrapping. Fixes bug 27040; bugfix
  537. on 0.2.8.2-alpha.
  538. o Minor bugfixes (onion service v3):
  539. - When deleting an ephemeral onion service (DEL_ONION), do not close
  540. any rendezvous circuits in order to let the existing client
  541. connections finish by themselves or closed by the application. The
  542. HS v2 is doing that already so now we have the same behavior for
  543. all versions. Fixes bug 28619; bugfix on 0.3.3.1-alpha.
  544. - Build the service descriptor's signing key certificate before
  545. uploading, so we always have a fresh one: leaving no chances for
  546. it to expire service side. Fixes bug 27838; bugfix
  547. on 0.3.2.1-alpha.
  548. - Stop dumping a stack trace when trying to connect to an intro
  549. point without having a descriptor for it. Fixes bug 27774; bugfix
  550. on 0.3.2.1-alpha.
  551. - When selecting a v3 rendezvous point, don't only look at the
  552. protover, but also check whether the curve25519 onion key is
  553. present. This way we avoid picking a relay that supports the v3
  554. rendezvous but for which we don't have the microdescriptor. Fixes
  555. bug 27797; bugfix on 0.3.2.1-alpha.
  556. - Close all SOCKS request (for the same .onion) if the newly fetched
  557. descriptor is unusable. Before that, we would close only the first
  558. one leaving the other hanging and let to time out by themselves.
  559. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  560. - When the onion service directory can't be created or has the wrong
  561. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  562. on 0.3.2.1-alpha.
  563. - When replacing a descriptor in the client cache, make sure to
  564. close all client introduction circuits for the old descriptor, so
  565. we don't end up with unusable leftover circuits. Fixes bug 27471;
  566. bugfix on 0.3.2.1-alpha.
  567. o Minor bugfixes (OS compatibility):
  568. - Properly handle configuration changes that move a listener to/from
  569. wildcard IP address. If the first attempt to bind a socket fails,
  570. close the old listener and try binding the socket again. Fixes bug
  571. 17873; bugfix on 0.0.8pre-1.
  572. o Minor bugfixes (performance)::
  573. - Rework node_is_a_configured_bridge() to no longer call
  574. node_get_all_orports(), which was performing too many memory
  575. allocations. Fixes bug 27224; bugfix on 0.2.3.9.
  576. o Minor bugfixes (protover):
  577. - Reject protocol names containing bytes other than alphanumeric
  578. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  579. on 0.2.9.4-alpha.
  580. o Minor bugfixes (protover, rust):
  581. - Reject extra commas in version strings. Fixes bug 27197; bugfix
  582. on 0.3.3.3-alpha.
  583. - protover_all_supported() would attempt to allocate up to 16GB on
  584. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  585. bugfix on 0.3.3.5-rc.
  586. - Compute protover votes correctly in the rust version of the
  587. protover code. Previously, the protover rewrite in 24031 allowed
  588. repeated votes from the same voter for the same protocol version
  589. to be counted multiple times in protover_compute_vote(). Fixes bug
  590. 27649; bugfix on 0.3.3.5-rc.
  591. - Reject protover names that contain invalid characters. Fixes bug
  592. 27687; bugfix on 0.3.3.1-alpha.
  593. o Minor bugfixes (relay shutdown, systemd):
  594. - Notify systemd of ShutdownWaitLength so it can be set to longer
  595. than systemd's TimeoutStopSec. In Tor's systemd service file, set
  596. TimeoutSec to 60 seconds to allow Tor some time to shut down.
  597. Fixes bug 28113; bugfix on 0.2.6.2-alpha.
  598. o Minor bugfixes (relay statistics):
  599. - Update relay descriptor on bandwidth changes only when the uptime
  600. is smaller than 24h, in order to reduce the efficiency of guard
  601. discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
  602. o Minor bugfixes (relay):
  603. - Consider the fact that we'll be making direct connections to our
  604. entry and guard nodes when computing the fraction of nodes that
  605. have their descriptors. Also, if we are using bridges and there is
  606. at least one bridge with a full descriptor, treat the fraction of
  607. guards available as 100%. Fixes bug 25886; bugfix on 0.2.4.10-alpha.
  608. Patch by Neel Chauhan.
  609. - Update the message logged on relays when DirCache is disabled.
  610. Since 0.3.3.5-rc, authorities require DirCache (V2Dir) for the
  611. Guard flag. Fixes bug 24312; bugfix on 0.3.3.5-rc.
  612. o Minor bugfixes (testing):
  613. - Stop running stem's unit tests as part of "make test-stem", but
  614. continue to run stem's unit and online tests during "make test-
  615. stem-full". Fixes bug 28568; bugfix on 0.2.6.3-alpha.
  616. - Stop leaking memory in an entry guard unit test. Fixes bug 28554;
  617. bugfix on 0.3.0.1-alpha.
  618. - Make the hs_service tests use the same time source when creating
  619. the introduction point and when testing it. Now tests work better
  620. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  621. on 0.3.2.1-alpha.
  622. - Revise the "conditionvar_timeout" test so that it succeeds even on
  623. heavily loaded systems where the test threads are not scheduled
  624. within 200 msec. Fixes bug 27073; bugfix on 0.2.6.3-alpha.
  625. - Fix two unit tests to work when HOME environment variable is not
  626. set. Fixes bug 27096; bugfix on 0.2.8.1-alpha.
  627. - If a unit test running in a subprocess exits abnormally or with a
  628. nonzero status code, treat the test as having failed, even if the
  629. test reported success. Without this fix, memory leaks don't cause
  630. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  631. bugfix on 0.2.2.4-alpha.
  632. - When logging a version mismatch in our openssl_version tests,
  633. report the actual offending version strings. Fixes bug 26152;
  634. bugfix on 0.2.9.1-alpha.
  635. - Fix forking tests on Windows when there is a space somewhere in
  636. the path. Fixes bug 26437; bugfix on 0.2.2.4-alpha.
  637. o Minor bugfixes (Windows):
  638. - Correctly identify Windows 8.1, Windows 10, and Windows Server
  639. 2008 and later from their NT versions. Fixes bug 28096; bugfix on
  640. 0.2.2.34; reported by Keifer Bly.
  641. - On recent Windows versions, the GetVersionEx() function may report
  642. an earlier Windows version than the running OS. To avoid user
  643. confusion, add "[or later]" to Tor's version string on affected
  644. versions of Windows. Fixes bug 28096; bugfix on 0.2.2.34; reported
  645. by Keifer Bly.
  646. - Remove Windows versions that were never supported by the
  647. GetVersionEx() function. Stop duplicating the latest Windows
  648. version in get_uname(). Fixes bug 28096; bugfix on 0.2.2.34;
  649. reported by Keifer Bly.
  650. o Code simplification and refactoring:
  651. - When parsing a port configuration, make it more obvious to static
  652. analyzer tools that we always initialize the address. Closes
  653. ticket 28881.
  654. - Divide more large Tor source files -- especially ones that span
  655. multiple areas of functionality -- into smaller parts, including
  656. onion.c and main.c. Closes ticket 26747.
  657. - Divide the "routerparse.c" module into separate modules for each
  658. group of parsed objects. Closes ticket 27924.
  659. - Move protover_rust.c to the same place protover.c was moved to.
  660. Closes ticket 27814.
  661. - Split directory.c into separate pieces for client, server, and
  662. common functionality. Closes ticket 26744.
  663. - Split the non-statistics-related parts from the rephist.c and
  664. geoip.c modules. Closes ticket 27892.
  665. - Split the router.c file into relay-only and shared components, to
  666. help with future modularization. Closes ticket 27864.
  667. - Divide the routerlist.c and dirserv.c modules into smaller parts.
  668. Closes ticket 27799.
  669. - 'updateFallbackDirs.py' now ignores the blacklist file, as it's not
  670. longer needed. Closes ticket 26502.
  671. - Include paths to header files within Tor are now qualified by
  672. directory within the top-level src directory.
  673. - Many structures have been removed from the centralized "or.h"
  674. header, and moved into their own headers. This will allow us to
  675. reduce the number of places in the code that rely on each
  676. structure's contents and layout. Closes ticket 26383.
  677. - Remove ATTR_NONNULL macro from codebase. Resolves ticket 26527.
  678. - Remove GetAdaptersAddresses_fn_t. The code that used it was
  679. removed as part of the 26481 refactor. Closes ticket 27467.
  680. - Rework Tor SOCKS server code to use Trunnel and benefit from
  681. autogenerated functions for parsing and generating SOCKS wire
  682. format. New implementation is cleaner, more maintainable and
  683. should be less prone to heartbleed-style vulnerabilities.
  684. Implements a significant fraction of ticket 3569.
  685. - Split sampled_guards_update_from_consensus() and
  686. select_entry_guard_for_circuit() into subfunctions. In
  687. entry_guards_update_primary() unite three smartlist enumerations
  688. into one and move smartlist comparison code out of the function.
  689. Closes ticket 21349.
  690. - Tor now assumes that you have standards-conformant stdint.h and
  691. inttypes.h headers when compiling. Closes ticket 26626.
  692. - Unify our bloom filter logic. Previously we had two copies of this
  693. code: one for routerlist filtering, and one for address set
  694. calculations. Closes ticket 26510.
  695. - Use the simpler strcmpstart() helper in
  696. rend_parse_v2_service_descriptor instead of strncmp(). Closes
  697. ticket 27630.
  698. - Utility functions that can perform a DNS lookup are now wholly
  699. separated from those that can't, in separate headers and C
  700. modules. Closes ticket 26526.
  701. o Documentation:
  702. - In the tor-resolve(1) manpage, fix the reference to socks-
  703. extensions.txt by adding a web URL. Resolves ticket 27853.
  704. - Mention that we require Python to be 2.7 or newer for some
  705. integration tests that we ship with Tor. Resolves ticket 27677.
  706. - Copy paragraph and URL to Tor's code of conduct document from
  707. CONTRIBUTING to new CODE_OF_CONDUCT file. Resolves ticket 26638.
  708. - Remove old instructions from INSTALL document. Closes ticket 26588.
  709. - Warn users that they should not include MyFamily line(s) in their
  710. torrc when running Tor bridge. Closes ticket 26908.
  711. o Removed features:
  712. - Tor no longer supports building with the dmalloc library. For
  713. debugging memory issues, we suggest using gperftools or msan
  714. instead. Closes ticket 26426.
  715. - Tor no longer attempts to run on Windows environments without the
  716. GetAdaptersAddresses() function. This function has existed since
  717. Windows XP, which is itself already older than we support.
  718. - Remove Tor2web functionality for version 2 onion services. The
  719. Tor2webMode and Tor2webRendezvousPoints options are now obsolete.
  720. (This feature was never shipped in vanilla Tor and it was only
  721. possible to use this feature by building the support at compile
  722. time. Tor2webMode is not implemented for version 3 onion services.)
  723. Closes ticket 26367.
  724. o Testing:
  725. - Increase logging and tag all log entries with timestamps in
  726. test_rebind.py. Provides diagnostics for issue 28229.
  727. o Code simplification and refactoring (shared random, dirauth):
  728. - Change many tor_assert() to use BUG() instead. The idea is to not
  729. crash a dirauth but rather scream loudly with a stacktrace and let
  730. it continue run. The shared random subsystem is very resilient and
  731. if anything wrong happens with it, at worst a non coherent value
  732. will be put in the vote and discarded by the other authorities.
  733. Closes ticket 19566.
  734. o Documentation (onion services):
  735. - Improve HSv3 client authorization by making some options more
  736. explicit and detailed. Closes ticket 28026. Patch by Mike Tigas.
  737. - Document in the man page that changing ClientOnionAuthDir value or
  738. adding a new file in the directory will not work at runtime upon
  739. sending a HUP if Sandbox 1. Closes ticket 28128.
  740. - Note in the man page that the only real way to fully revoke an
  741. onion service v3 client authorization is by restarting the tor
  742. process. Closes ticket 28275.
  743. Changes in version 0.3.4.9 - 2018-11-02
  744. Tor 0.3.4.9 is the second stable release in its series; it backports
  745. numerous fixes, including a fix for a bandwidth management bug that
  746. was causing memory exhaustion on relays. Anyone running an earlier
  747. version of Tor 0.3.4.9 should upgrade.
  748. o Major bugfixes (compilation, backport from 0.3.5.3-alpha):
  749. - Fix compilation on ARM (and other less-used CPUs) when compiling
  750. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  751. o Major bugfixes (mainloop, bootstrap, backport from 0.3.5.3-alpha):
  752. - Make sure Tor bootstraps and works properly if only the
  753. ControlPort is set. Prior to this fix, Tor would only bootstrap
  754. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  755. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  756. o Major bugfixes (relay, backport from 0.3.5.3-alpha):
  757. - When our write bandwidth limit is exhausted, stop writing on the
  758. connection. Previously, we had a typo in the code that would make
  759. us stop reading instead, leading to relay connections being stuck
  760. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  761. on 0.3.4.1-alpha.
  762. o Major bugfixes (restart-in-process, backport from 0.3.5.1-alpha):
  763. - Fix a use-after-free error that could be caused by passing Tor an
  764. impossible set of options that would fail during options_act().
  765. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  766. o Minor features (continuous integration, backport from 0.3.5.1-alpha):
  767. - Don't do a distcheck with --disable-module-dirauth in Travis.
  768. Implements ticket 27252.
  769. - Only run one online rust build in Travis, to reduce network
  770. errors. Skip offline rust builds on Travis for Linux gcc, because
  771. they're redundant. Implements ticket 27252.
  772. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  773. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  774. Linux with default settings, because all the non-default builds
  775. use gcc on Linux. Implements ticket 27252.
  776. o Minor features (continuous integration, backport from 0.3.5.3-alpha):
  777. - Use the Travis Homebrew addon to install packages on macOS during
  778. Travis CI. The package list is the same, but the Homebrew addon
  779. does not do a `brew update` by default. Implements ticket 27738.
  780. o Minor features (geoip):
  781. - Update geoip and geoip6 to the October 9 2018 Maxmind GeoLite2
  782. Country database. Closes ticket 27991.
  783. o Minor bugfixes (32-bit OSX and iOS, timing, backport from 0.3.5.2-alpha):
  784. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  785. difference algorithm for 32-bit Apple platforms. Previously, it
  786. would overflow when calculating the difference between two times
  787. more than 47 days apart. Fixes part of bug 27139; bugfix
  788. on 0.3.4.1-alpha.
  789. - Improve the precision of our 32-bit millisecond difference
  790. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  791. bugfix on 0.3.4.1-alpha.
  792. - Relax the tolerance on the mainloop/update_time_jumps test when
  793. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  794. on 0.3.4.1-alpha.
  795. o Minor bugfixes (C correctness, to appear in 0.3.5.4-alpha):
  796. - Avoid undefined behavior in an end-of-string check when parsing
  797. the BEGIN line in a directory object. Fixes bug 28202; bugfix
  798. on 0.2.0.3-alpha.
  799. o Minor bugfixes (CI, appveyor, to appear in 0.3.5.4-alpha):
  800. - Only install the necessary mingw packages during our appveyor
  801. builds. This change makes the build a little faster, and prevents
  802. a conflict with a preinstalled mingw openssl that appveyor now
  803. ships. Fixes bugs 27943 and 27765; bugfix on 0.3.4.2-alpha.
  804. o Minor bugfixes (code safety, backport from 0.3.5.3-alpha):
  805. - Rewrite our assertion macros so that they no longer suppress the
  806. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  807. o Minor bugfixes (continuous integration, backport from 0.3.5.1-alpha):
  808. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  809. 27464; bugfix on 0.3.4.1-alpha.
  810. o Minor bugfixes (directory authority, to appear in 0.3.5.4-alpha):
  811. - Log additional info when we get a relay that shares an ed25519 ID
  812. with a different relay, instead making a BUG() warning. Fixes bug
  813. 27800; bugfix on 0.3.2.1-alpha.
  814. o Minor bugfixes (directory connection shutdown, backport from 0.3.5.1-alpha):
  815. - Avoid a double-close when shutting down a stalled directory
  816. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  817. o Minor bugfixes (HTTP tunnel, backport from 0.3.5.1-alpha):
  818. - Fix a bug warning when closing an HTTP tunnel connection due to an
  819. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  820. on 0.3.2.1-alpha.
  821. o Minor bugfixes (netflow padding, backport from 0.3.5.1-alpha):
  822. - Ensure circuitmux queues are empty before scheduling or sending
  823. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  824. o Minor bugfixes (onion service v3, backport from 0.3.5.1-alpha):
  825. - When the onion service directory can't be created or has the wrong
  826. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  827. on 0.3.2.1-alpha.
  828. o Minor bugfixes (onion service v3, backport from 0.3.5.2-alpha):
  829. - Close all SOCKS request (for the same .onion) if the newly fetched
  830. descriptor is unusable. Before that, we would close only the first
  831. one leaving the other hanging and let to time out by themselves.
  832. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  833. o Minor bugfixes (onion service v3, backport from 0.3.5.3-alpha):
  834. - When selecting a v3 rendezvous point, don't only look at the
  835. protover, but also check whether the curve25519 onion key is
  836. present. This way we avoid picking a relay that supports the v3
  837. rendezvous but for which we don't have the microdescriptor. Fixes
  838. bug 27797; bugfix on 0.3.2.1-alpha.
  839. o Minor bugfixes (protover, backport from 0.3.5.3-alpha):
  840. - Reject protocol names containing bytes other than alphanumeric
  841. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  842. on 0.2.9.4-alpha.
  843. o Minor bugfixes (rust, backport from 0.3.5.1-alpha):
  844. - Compute protover votes correctly in the rust version of the
  845. protover code. Previously, the protover rewrite in 24031 allowed
  846. repeated votes from the same voter for the same protocol version
  847. to be counted multiple times in protover_compute_vote(). Fixes bug
  848. 27649; bugfix on 0.3.3.5-rc.
  849. - Reject protover names that contain invalid characters. Fixes bug
  850. 27687; bugfix on 0.3.3.1-alpha.
  851. o Minor bugfixes (rust, backport from 0.3.5.2-alpha):
  852. - protover_all_supported() would attempt to allocate up to 16GB on
  853. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  854. bugfix on 0.3.3.5-rc.
  855. o Minor bugfixes (rust, directory authority, to appear in 0.3.5.4-alpha):
  856. - Fix an API mismatch in the rust implementation of
  857. protover_compute_vote(). This bug could have caused crashes on any
  858. directory authorities running Tor with Rust (which we do not yet
  859. recommend). Fixes bug 27741; bugfix on 0.3.3.6.
  860. o Minor bugfixes (rust, to appear in 0.3.5.4-alpha):
  861. - Fix a potential null dereference in protover_all_supported(). Add
  862. a test for it. Fixes bug 27804; bugfix on 0.3.3.1-alpha.
  863. - Return a string that can be safely freed by C code, not one
  864. created by the rust allocator, in protover_all_supported(). Fixes
  865. bug 27740; bugfix on 0.3.3.1-alpha.
  866. o Minor bugfixes (testing, backport from 0.3.5.1-alpha):
  867. - If a unit test running in a subprocess exits abnormally or with a
  868. nonzero status code, treat the test as having failed, even if the
  869. test reported success. Without this fix, memory leaks don't cause
  870. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  871. bugfix on 0.2.2.4-alpha.
  872. o Minor bugfixes (testing, backport from 0.3.5.3-alpha):
  873. - Make the hs_service tests use the same time source when creating
  874. the introduction point and when testing it. Now tests work better
  875. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  876. on 0.3.2.1-alpha.
  877. o Minor bugfixes (testing, to appear in 0.3.5.4-alpha):
  878. - Treat backtrace test failures as expected on BSD-derived systems
  879. (NetBSD, OpenBSD, and macOS/Darwin) until we solve bug 17808.
  880. (FreeBSD failures have been treated as expected since 18204 in
  881. 0.2.8.) Fixes bug 27948; bugfix on 0.2.5.2-alpha.
  882. Changes in version 0.2.9.17 - 2018-09-10
  883. Tor 0.2.9.17 backports numerous bugfixes from later versions of Tor.
  884. o Minor features (compatibility, backport from 0.3.4.8):
  885. - Tell OpenSSL to maintain backward compatibility with previous
  886. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  887. ciphers are disabled by default. Closes ticket 27344.
  888. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  889. - Enable macOS builds in our Travis CI configuration. Closes
  890. ticket 24629.
  891. - Install libcap-dev and libseccomp2-dev so these optional
  892. dependencies get tested on Travis CI. Closes ticket 26560.
  893. - Run asciidoc during Travis CI. Implements ticket 27087.
  894. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  895. o Minor features (geoip):
  896. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  897. Country database. Closes ticket 27089.
  898. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  899. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  900. tell the compiler not to include the system malloc implementation.
  901. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  902. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  903. - Silence a spurious compiler warning on the GetAdaptersAddresses
  904. function pointer cast. This issue is already fixed by 26481 in
  905. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  906. bugfix on 0.2.3.11-alpha.
  907. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  908. supported, and always fails. Some compilers warn about the
  909. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  910. on 0.2.2.23-alpha.
  911. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  912. - Don't link or search for pthreads when building for Windows, even
  913. if we are using build environment (like mingw) that provides a
  914. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  915. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  916. - Skip a pair of unreliable key generation tests on Windows, until
  917. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  918. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  919. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  920. - Pass the module flags to distcheck configure, and log the flags
  921. before running configure. (Backported to 0.2.9 and later as a
  922. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  923. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  924. - When a Travis build fails, and showing a log fails, keep trying to
  925. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  926. - When we use echo in Travis, don't pass a --flag as the first
  927. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  928. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  929. - When voting for recommended versions, make sure that all of the
  930. versions are well-formed and parsable. Fixes bug 26485; bugfix
  931. on 0.1.1.6-alpha.
  932. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  933. - Fix a bug in out sandboxing rules for the openat() syscall.
  934. Previously, no openat() call would be permitted, which would break
  935. filesystem operations on recent glibc versions. Fixes bug 25440;
  936. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  937. o Minor bugfixes (onion services, backport from 0.3.4.8):
  938. - Silence a spurious compiler warning in
  939. rend_client_send_introduction(). Fixes bug 27463; bugfix
  940. on 0.1.1.2-alpha.
  941. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  942. - Log a protocol warning when single onion services or Tor2web clients
  943. fail to authenticate direct connections to relays.
  944. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  945. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  946. - Disable core dumps in test_bt.sh, to avoid failures in "make
  947. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  948. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  949. - Before running make test-network-all, delete old logs and test
  950. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  951. on 0.2.7.3-rc.
  952. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  953. - Our "tortls/cert_matches_key" unit test no longer relies on
  954. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  955. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  956. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  957. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  958. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  959. 27185; bugfix on 0.2.2.2-alpha.
  960. Changes in version 0.3.2.12 - 2018-09-10
  961. Tor 0.3.2.12 backport numerous fixes from later versions of Tor.
  962. o Minor features (compatibility, backport from 0.3.4.8):
  963. - Tell OpenSSL to maintain backward compatibility with previous
  964. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  965. ciphers are disabled by default. Closes ticket 27344.
  966. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  967. - Enable macOS builds in our Travis CI configuration. Closes
  968. ticket 24629.
  969. - Install libcap-dev and libseccomp2-dev so these optional
  970. dependencies get tested on Travis CI. Closes ticket 26560.
  971. - Run asciidoc during Travis CI. Implements ticket 27087.
  972. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  973. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  974. - Use cargo cache in our Travis CI configuration. Closes
  975. ticket 26952.
  976. o Minor features (controller, backport from 0.3.4.6-rc):
  977. - The control port now exposes the list of HTTPTunnelPorts and
  978. ExtOrPorts via GETINFO net/listeners/httptunnel and
  979. net/listeners/extor respectively. Closes ticket 26647.
  980. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  981. - Authorities no longer vote to make the subprotocol version
  982. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  983. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  984. o Minor features (geoip):
  985. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  986. Country database. Closes ticket 27089.
  987. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  988. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  989. tell the compiler not to include the system malloc implementation.
  990. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  991. - Don't try to use a pragma to temporarily disable the
  992. -Wunused-const-variable warning if the compiler doesn't support
  993. it. Fixes bug 26785; bugfix on 0.3.2.11.
  994. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  995. - Silence a spurious compiler warning on the GetAdaptersAddresses
  996. function pointer cast. This issue is already fixed by 26481 in
  997. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  998. bugfix on 0.2.3.11-alpha.
  999. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  1000. supported, and always fails. Some compilers warn about the
  1001. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  1002. on 0.2.2.23-alpha.
  1003. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  1004. - Don't link or search for pthreads when building for Windows, even
  1005. if we are using build environment (like mingw) that provides a
  1006. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  1007. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  1008. - Skip a pair of unreliable key generation tests on Windows, until
  1009. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  1010. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  1011. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  1012. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  1013. - Pass the module flags to distcheck configure, and log the flags
  1014. before running configure. (Backported to 0.2.9 and later as a
  1015. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  1016. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  1017. - When a Travis build fails, and showing a log fails, keep trying to
  1018. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  1019. - When we use echo in Travis, don't pass a --flag as the first
  1020. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  1021. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  1022. - When voting for recommended versions, make sure that all of the
  1023. versions are well-formed and parsable. Fixes bug 26485; bugfix
  1024. on 0.1.1.6-alpha.
  1025. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  1026. - Fix a bug in out sandboxing rules for the openat() syscall.
  1027. Previously, no openat() call would be permitted, which would break
  1028. filesystem operations on recent glibc versions. Fixes bug 25440;
  1029. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  1030. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  1031. - Improve the log message when connection initiators fail to
  1032. authenticate direct connections to relays. Fixes bug 26927; bugfix
  1033. on 0.3.0.1-alpha.
  1034. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  1035. - Fix bug that causes services to not ever rotate their descriptors
  1036. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  1037. on 0.3.2.1-alpha.
  1038. o Minor bugfixes (onion services, backport from 0.3.4.8):
  1039. - Silence a spurious compiler warning in
  1040. rend_client_send_introduction(). Fixes bug 27463; bugfix
  1041. on 0.1.1.2-alpha.
  1042. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  1043. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  1044. on 0.3.1.5-alpha.
  1045. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  1046. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  1047. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  1048. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  1049. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  1050. - Log a protocol warning when single onion services or Tor2web clients
  1051. fail to authenticate direct connections to relays.
  1052. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  1053. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  1054. - Disable core dumps in test_bt.sh, to avoid failures in "make
  1055. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  1056. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  1057. - When running make test-network-all, use the mixed+hs-v2 network.
  1058. (A previous fix to chutney removed v3 onion services from the
  1059. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  1060. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  1061. - Before running make test-network-all, delete old logs and test
  1062. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  1063. on 0.2.7.3-rc.
  1064. o Minor bugfixes (testing, openssl compatibility):
  1065. - Our "tortls/cert_matches_key" unit test no longer relies on OpenSSL
  1066. internals. Previously, it relied on unsupported OpenSSL behavior in
  1067. a way that caused it to crash with OpenSSL 1.0.2p. Fixes bug 27226;
  1068. bugfix on 0.2.5.1-alpha.
  1069. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  1070. - Our "tortls/cert_matches_key" unit test no longer relies on
  1071. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  1072. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  1073. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  1074. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  1075. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  1076. 27185; bugfix on 0.2.2.2-alpha.
  1077. Changes in version 0.3.3.10 - 2018-09-10
  1078. Tor 0.3.3.10 backports numerous fixes from later versions of Tor.
  1079. o Minor features (bug workaround, backport from 0.3.4.7-rc):
  1080. - Compile correctly on systems that provide the C11 stdatomic.h
  1081. header, but where C11 atomic functions don't actually compile.
  1082. Closes ticket 26779; workaround for Debian issue 903709.
  1083. o Minor features (compatibility, backport from 0.3.4.8):
  1084. - Tell OpenSSL to maintain backward compatibility with previous
  1085. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  1086. ciphers are disabled by default. Closes ticket 27344.
  1087. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  1088. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  1089. - Enable macOS builds in our Travis CI configuration. Closes
  1090. ticket 24629.
  1091. - Install libcap-dev and libseccomp2-dev so these optional
  1092. dependencies get tested on Travis CI. Closes ticket 26560.
  1093. - Run asciidoc during Travis CI. Implements ticket 27087.
  1094. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  1095. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  1096. - Use cargo cache in our Travis CI configuration. Closes
  1097. ticket 26952.
  1098. o Minor features (controller, backport from 0.3.4.6-rc):
  1099. - The control port now exposes the list of HTTPTunnelPorts and
  1100. ExtOrPorts via GETINFO net/listeners/httptunnel and
  1101. net/listeners/extor respectively. Closes ticket 26647.
  1102. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  1103. - Authorities no longer vote to make the subprotocol version
  1104. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  1105. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  1106. o Minor features (geoip):
  1107. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  1108. Country database. Closes ticket 27089.
  1109. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  1110. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  1111. tell the compiler not to include the system malloc implementation.
  1112. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  1113. - Don't try to use a pragma to temporarily disable the
  1114. -Wunused-const-variable warning if the compiler doesn't support
  1115. it. Fixes bug 26785; bugfix on 0.3.2.11.
  1116. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  1117. - Silence a spurious compiler warning on the GetAdaptersAddresses
  1118. function pointer cast. This issue is already fixed by 26481 in
  1119. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  1120. bugfix on 0.2.3.11-alpha.
  1121. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  1122. supported, and always fails. Some compilers warn about the
  1123. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  1124. on 0.2.2.23-alpha.
  1125. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  1126. - Don't link or search for pthreads when building for Windows, even
  1127. if we are using build environment (like mingw) that provides a
  1128. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  1129. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  1130. - Skip a pair of unreliable key generation tests on Windows, until
  1131. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  1132. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  1133. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  1134. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  1135. - Pass the module flags to distcheck configure, and log the flags
  1136. before running configure. (Backported to 0.2.9 and later as a
  1137. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  1138. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  1139. - When a Travis build fails, and showing a log fails, keep trying to
  1140. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  1141. - When we use echo in Travis, don't pass a --flag as the first
  1142. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  1143. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  1144. - When voting for recommended versions, make sure that all of the
  1145. versions are well-formed and parsable. Fixes bug 26485; bugfix
  1146. on 0.1.1.6-alpha.
  1147. o Minor bugfixes (in-process restart, backport from 0.3.4.7-rc):
  1148. - Always call tor_free_all() when leaving tor_run_main(). When we
  1149. did not, restarting tor in-process would cause an assertion
  1150. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  1151. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  1152. - Fix a bug in our sandboxing rules for the openat() syscall.
  1153. Previously, no openat() call would be permitted, which would break
  1154. filesystem operations on recent glibc versions. Fixes bug 25440;
  1155. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  1156. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  1157. - Improve the log message when connection initiators fail to
  1158. authenticate direct connections to relays. Fixes bug 26927; bugfix
  1159. on 0.3.0.1-alpha.
  1160. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  1161. - Fix bug that causes services to not ever rotate their descriptors
  1162. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  1163. on 0.3.2.1-alpha.
  1164. o Minor bugfixes (onion services, backport from 0.3.4.8):
  1165. - Silence a spurious compiler warning in
  1166. rend_client_send_introduction(). Fixes bug 27463; bugfix
  1167. on 0.1.1.2-alpha.
  1168. o Minor bugfixes (portability, backport from 0.3.4.6-rc):
  1169. - Work around two different bugs in the OS X 10.10 and later SDKs
  1170. that would prevent us from successfully targeting earlier versions
  1171. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  1172. o Minor bugfixes (portability, backport from 0.3.4.7-rc):
  1173. - Fix compilation of the unit tests on GNU/Hurd, which does not
  1174. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  1175. from "paulusASol".
  1176. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  1177. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  1178. on 0.3.1.5-alpha.
  1179. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  1180. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  1181. - Protover parsing was accepting the presence of whitespace in
  1182. version strings, which the C implementation would choke on, e.g.
  1183. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  1184. - Protover parsing was ignoring a 2nd hyphen and everything after
  1185. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  1186. on 0.3.3.1-alpha.
  1187. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  1188. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  1189. - cd to ${abs_top_builddir}/src/rust before running cargo in
  1190. src/test/test_rust.sh. This makes the working directory consistent
  1191. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  1192. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  1193. - Log a protocol warning when single onion services or Tor2web clients
  1194. fail to authenticate direct connections to relays.
  1195. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  1196. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  1197. - Disable core dumps in test_bt.sh, to avoid failures in "make
  1198. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  1199. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  1200. - When running make test-network-all, use the mixed+hs-v2 network.
  1201. (A previous fix to chutney removed v3 onion services from the
  1202. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  1203. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  1204. - Before running make test-network-all, delete old logs and test
  1205. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  1206. on 0.2.7.3-rc.
  1207. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  1208. - Our "tortls/cert_matches_key" unit test no longer relies on
  1209. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  1210. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  1211. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  1212. o Minor bugfixes (v3 onion services, backport from 0.3.4.6-rc):
  1213. - Stop sending ed25519 link specifiers in v3 onion service introduce
  1214. cells and descriptors, when the rendezvous or introduction point
  1215. doesn't support ed25519 link authentication. Fixes bug 26627;
  1216. bugfix on 0.3.2.4-alpha.
  1217. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  1218. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  1219. 27185; bugfix on 0.2.2.2-alpha.
  1220. Changes in version 0.3.4.8 - 2018-09-10
  1221. Tor 0.3.4.8 is the first stable release in its series; it includes
  1222. compilation and portability fixes.
  1223. The Tor 0.3.4 series includes improvements for running Tor in
  1224. low-power and embedded environments, which should help performance in
  1225. general. We've begun work on better modularity, and included preliminary
  1226. changes on the directory authority side to accommodate a new bandwidth
  1227. measurement system. We've also integrated more continuous-integration
  1228. systems into our development process, and made corresponding changes to
  1229. Tor's testing infrastructure. Finally, we've continued to refine
  1230. our anti-denial-of-service code.
  1231. Below are the changes since 0.3.3.9. For a list of only the changes
  1232. since 0.3.4.7-rc, see the ChangeLog file.
  1233. o New system requirements:
  1234. - Tor no longer tries to support old operating systems without
  1235. mmap() or some local equivalent. Apparently, compilation on such
  1236. systems has been broken for some time, without anybody noticing or
  1237. complaining. Closes ticket 25398.
  1238. o Major features (directory authority, modularization):
  1239. - The directory authority subsystem has been modularized. The code
  1240. is now located in src/or/dirauth/, and is compiled in by default.
  1241. To disable the module, the configure option
  1242. --disable-module-dirauth has been added. This module may be
  1243. disabled by default in some future release. Closes ticket 25610.
  1244. o Major features (main loop, CPU usage):
  1245. - When Tor is disabled (via DisableNetwork or via hibernation), it
  1246. no longer needs to run any per-second events. This change should
  1247. make it easier for mobile applications to disable Tor while the
  1248. device is sleeping, or Tor is not running. Closes ticket 26063.
  1249. - Tor no longer enables all of its periodic events by default.
  1250. Previously, Tor would enable all possible main loop events,
  1251. regardless of whether it needed them. Furthermore, many of these
  1252. events are now disabled when Tor is hibernating or DisableNetwork
  1253. is set. This is a big step towards reducing client CPU usage by
  1254. reducing the amount of wake-ups the daemon does. Closes tickets
  1255. 25376 and 25762.
  1256. - The bandwidth-limitation logic has been refactored so that
  1257. bandwidth calculations are performed on-demand, rather than every
  1258. TokenBucketRefillInterval milliseconds. This change should improve
  1259. the granularity of our bandwidth calculations, and limit the
  1260. number of times that the Tor process needs to wake up when it is
  1261. idle. Closes ticket 25373.
  1262. - Move responsibility for many operations from a once-per-second
  1263. callback to a callback that is only scheduled as needed. Moving
  1264. this functionality has allowed us to disable the callback when
  1265. Tor's network is disabled. Once enough items are removed from our
  1266. once-per-second callback, we can eliminate it entirely to conserve
  1267. CPU when idle. The functionality removed includes: closing
  1268. connections, circuits, and channels (ticket 25932); consensus
  1269. voting (25937); flushing log callbacks (25951); honoring delayed
  1270. SIGNEWNYM requests (25949); rescanning the consensus cache
  1271. (25931); saving the state file to disk (25948); warning relay
  1272. operators about unreachable ports (25952); and keeping track of
  1273. Tor's uptime (26009).
  1274. o Minor features (accounting):
  1275. - When Tor becomes dormant, it now uses a scheduled event to wake up
  1276. at the right time. Previously, we would use the per-second timer
  1277. to check whether to wake up, but we no longer have any per-second
  1278. timers enabled when the network is disabled. Closes ticket 26064.
  1279. o Minor features (bug workaround):
  1280. - Compile correctly on systems that provide the C11 stdatomic.h
  1281. header, but where C11 atomic functions don't actually compile.
  1282. Closes ticket 26779; workaround for Debian issue 903709.
  1283. o Minor features (code quality):
  1284. - Add optional spell-checking for the Tor codebase, using the
  1285. "misspell" program. To use this feature, run "make check-typos".
  1286. Closes ticket 25024.
  1287. o Minor features (compatibility):
  1288. - Tell OpenSSL to maintain backward compatibility with previous
  1289. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  1290. ciphers are disabled by default. Closes ticket 27344.
  1291. - Tor now detects versions of OpenSSL 1.1.0 and later compiled with
  1292. the no-deprecated option, and builds correctly with them. Closes
  1293. tickets 19429, 19981, and 25353.
  1294. o Minor features (compilation):
  1295. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  1296. tell the compiler not to include the system malloc implementation.
  1297. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  1298. - Don't try to use a pragma to temporarily disable the
  1299. -Wunused-const-variable warning if the compiler doesn't support
  1300. it. Fixes bug 26785; bugfix on 0.3.2.11.
  1301. - When building Tor, prefer to use Python 3 over Python 2, and more
  1302. recent (contemplated) versions over older ones. Closes
  1303. ticket 26372.
  1304. o Minor features (compression, zstd):
  1305. - When running with zstd, Tor now considers using advanced functions
  1306. that the zstd maintainers have labeled as potentially unstable. To
  1307. prevent breakage, Tor will only use this functionality when the
  1308. runtime version of the zstd library matches the version with which
  1309. Tor was compiled. Closes ticket 25162.
  1310. o Minor features (configuration):
  1311. - The "DownloadSchedule" options have been renamed to end with
  1312. "DownloadInitialDelay". The old names are still allowed, but will
  1313. produce a warning. Comma-separated lists are still permitted for
  1314. these options, but all values after the first are ignored (as they
  1315. have been since 0.2.9). Closes ticket 23354.
  1316. o Minor features (continuous integration):
  1317. - Log the compiler path and version during Appveyor builds.
  1318. Implements ticket 27449.
  1319. - Show config.log and test-suite.log after failed Appveyor builds.
  1320. Also upload the zipped full logs as a build artifact. Implements
  1321. ticket 27430.
  1322. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  1323. - Enable macOS builds in our Travis CI configuration. Closes
  1324. ticket 24629.
  1325. - Install libcap-dev and libseccomp2-dev so these optional
  1326. dependencies get tested on Travis CI. Closes ticket 26560.
  1327. - Only post Appveyor IRC notifications when the build fails.
  1328. Implements ticket 27275.
  1329. - Run asciidoc during Travis CI. Implements ticket 27087.
  1330. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  1331. - Add the necessary configuration files for continuous integration
  1332. testing on Windows, via the Appveyor platform. Closes ticket
  1333. 25549. Patches from Marcin Cieślak and Isis Lovecruft.
  1334. o Minor features (continuous integration, rust):
  1335. - Use cargo cache in our Travis CI configuration. Closes
  1336. ticket 26952.
  1337. o Minor features (control port):
  1338. - Introduce GETINFO "current-time/{local,utc}" to return the local
  1339. and UTC times respectively in ISO format. This helps a controller
  1340. like Tor Browser detect a time-related error. Closes ticket 25511.
  1341. Patch by Neel Chauhan.
  1342. - Introduce new fields to the CIRC_BW event. There are two new
  1343. fields in each of the read and written directions. The DELIVERED
  1344. fields report the total valid data on the circuit, as measured by
  1345. the payload sizes of verified and error-checked relay command
  1346. cells. The OVERHEAD fields report the total unused bytes in each
  1347. of these cells. Closes ticket 25903.
  1348. o Minor features (controller):
  1349. - The control port now exposes the list of HTTPTunnelPorts and
  1350. ExtOrPorts via GETINFO net/listeners/httptunnel and
  1351. net/listeners/extor respectively. Closes ticket 26647.
  1352. o Minor features (directory authorities):
  1353. - Stop warning about incomplete bw lines before the first complete
  1354. bw line has been found, so that additional header lines can be
  1355. ignored. Fixes bug 25960; bugfix on 0.2.2.1-alpha
  1356. - Authorities no longer vote to make the subprotocol version
  1357. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  1358. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  1359. o Minor features (directory authority):
  1360. - Directory authorities now open their key-pinning files as O_SYNC,
  1361. to limit their chances of accidentally writing partial lines.
  1362. Closes ticket 23909.
  1363. o Minor features (directory authority, forward compatibility):
  1364. - Make the lines of the measured bandwidth file able to contain
  1365. their entries in any order. Previously, the node_id entry needed
  1366. to come first. Closes ticket 26004.
  1367. o Minor features (entry guards):
  1368. - Introduce a new torrc option NumPrimaryGuards for controlling the
  1369. number of primary guards. Closes ticket 25843.
  1370. o Minor features (geoip):
  1371. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  1372. Country database. Closes ticket 27089.
  1373. o Minor features (performance):
  1374. - Avoid a needless call to malloc() when processing an incoming
  1375. relay cell. Closes ticket 24914.
  1376. - Make our timing-wheel code run a tiny bit faster on 32-bit
  1377. platforms, by preferring 32-bit math to 64-bit. Closes
  1378. ticket 24688.
  1379. - Avoid a needless malloc()/free() pair every time we handle an ntor
  1380. handshake. Closes ticket 25150.
  1381. o Minor features (Rust, portability):
  1382. - Rust cross-compilation is now supported. Closes ticket 25895.
  1383. o Minor features (testing):
  1384. - Add a unit test for voting_schedule_get_start_of_next_interval().
  1385. Closes ticket 26014, and helps make unit test coverage
  1386. more deterministic.
  1387. - A new unittests module specifically for testing the functions in
  1388. the (new-ish) bridges.c module has been created with new
  1389. unittests, raising the code coverage percentages. Closes 25425.
  1390. - We now have improved testing for addressmap_get_virtual_address()
  1391. function. This should improve our test coverage, and make our test
  1392. coverage more deterministic. Closes ticket 25993.
  1393. o Minor features (timekeeping, circuit scheduling):
  1394. - When keeping track of how busy each circuit have been recently on
  1395. a given connection, use coarse-grained monotonic timers rather
  1396. than gettimeofday(). This change should marginally increase
  1397. accuracy and performance. Implements part of ticket 25927.
  1398. o Minor features (unit tests):
  1399. - Test complete bandwidth measurements files, and test that
  1400. incomplete bandwidth lines only give warnings when the end of the
  1401. header has not been detected. Fixes bug 25947; bugfix
  1402. on 0.2.2.1-alpha
  1403. o Minor bugfixes (bandwidth management):
  1404. - Consider ourselves "low on write bandwidth" if we have exhausted
  1405. our write bandwidth some time in the last second. This was the
  1406. documented behavior before, but the actual behavior was to change
  1407. this value every TokenBucketRefillInterval. Fixes bug 25828;
  1408. bugfix on 0.2.3.5-alpha.
  1409. o Minor bugfixes (C correctness):
  1410. - Add a missing lock acquisition in the shutdown code of the control
  1411. subsystem. Fixes bug 25675; bugfix on 0.2.7.3-rc. Found by
  1412. Coverity; this is CID 1433643.
  1413. o Minor bugfixes (code style):
  1414. - Fixed multiple includes of transports.h in src/or/connection.c
  1415. Fixes bug 25261; bugfix on 0.2.5.1-alpha.
  1416. - Remove the unused variable n_possible from the function
  1417. channel_get_for_extend(). Fixes bug 25645; bugfix on 0.2.4.4-alpha
  1418. o Minor bugfixes (compilation):
  1419. - Silence a spurious compiler warning on the GetAdaptersAddresses
  1420. function pointer cast. This issue is already fixed by 26481 in
  1421. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  1422. bugfix on 0.2.3.11-alpha.
  1423. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  1424. supported, and always fails. Some compilers warn about the
  1425. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  1426. on 0.2.2.23-alpha.
  1427. - Fix a compilation warning on some versions of GCC when building
  1428. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1429. that the second call will succeed if the first one did. Fixes bug
  1430. 26269; bugfix on 0.2.8.2-alpha.
  1431. - Refrain from compiling unit testing related object files when
  1432. --disable-unittests is set to configure script. Fixes bug 24891;
  1433. bugfix on 0.2.5.1-alpha.
  1434. - The --enable-fatal-warnings flag now affects Rust code as well.
  1435. Closes ticket 26245.
  1436. - Avoid a compiler warning when casting the return value of
  1437. smartlist_len() to double with DEBUG_SMARTLIST enabled. Fixes bug
  1438. 26283; bugfix on 0.2.4.10-alpha.
  1439. o Minor bugfixes (compilation, windows):
  1440. - Don't link or search for pthreads when building for Windows, even
  1441. if we are using build environment (like mingw) that provides a
  1442. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  1443. o Minor bugfixes (continuous integration):
  1444. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  1445. - Skip a pair of unreliable key generation tests on Windows, until
  1446. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  1447. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  1448. o Minor bugfixes (control port):
  1449. - Respond with more human-readable error messages to GETINFO exit-
  1450. policy/* requests. Also, let controller know if an error is
  1451. transient (response code 551) or not (response code 552). Fixes
  1452. bug 25852; bugfix on 0.2.8.1-alpha.
  1453. - Parse the "HSADDRESS=" parameter in HSPOST commands properly.
  1454. Previously, it was misparsed and ignored. Fixes bug 26523; bugfix
  1455. on 0.3.3.1-alpha. Patch by "akwizgran".
  1456. - Make CIRC_BW event reflect the total of all data sent on a
  1457. circuit, including padding and dropped cells. Also fix a mis-
  1458. counting bug when STREAM_BW events were enabled. Fixes bug 25400;
  1459. bugfix on 0.2.5.2-alpha.
  1460. o Minor bugfixes (correctness, flow control):
  1461. - Upon receiving a stream-level SENDME cell, verify that our window
  1462. has not grown too large. Fixes bug 26214; bugfix on svn
  1463. r54 (pre-0.0.1).
  1464. o Minor bugfixes (directory authority):
  1465. - When voting for recommended versions, make sure that all of the
  1466. versions are well-formed and parsable. Fixes bug 26485; bugfix
  1467. on 0.1.1.6-alpha.
  1468. o Minor bugfixes (directory client):
  1469. - When unverified-consensus is verified, rename it to cached-
  1470. consenus. Fixes bug 4187; bugfix on 0.2.0.3-alpha.
  1471. - Fixed launching a certificate fetch always during the scheduled
  1472. periodic consensus fetch by fetching only in those cases when
  1473. consensus are waiting for certs. Fixes bug 24740; bugfix
  1474. on 0.2.9.1-alpha.
  1475. o Minor bugfixes (error reporting):
  1476. - Improve tolerance for directory authorities with skewed clocks.
  1477. Previously, an authority with a clock more than 60 seconds ahead
  1478. could cause a client with a correct clock to warn that the
  1479. client's clock was behind. Now the clocks of a majority of
  1480. directory authorities have to be ahead of the client before this
  1481. warning will occur. Fixes bug 25756; bugfix on 0.2.2.25-alpha.
  1482. o Minor bugfixes (in-process restart):
  1483. - Always call tor_free_all() when leaving tor_run_main(). When we
  1484. did not, restarting tor in-process would cause an assertion
  1485. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  1486. o Minor bugfixes (Linux seccomp2 sandbox):
  1487. - Fix a bug in our sandboxing rules for the openat() syscall.
  1488. Previously, no openat() call would be permitted, which would break
  1489. filesystem operations on recent glibc versions. Fixes bug 25440;
  1490. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  1491. o Minor bugfixes (logging):
  1492. - Improve the log message when connection initiators fail to
  1493. authenticate direct connections to relays. Fixes bug 26927; bugfix
  1494. on 0.3.0.1-alpha.
  1495. o Minor bugfixes (onion services):
  1496. - Silence a spurious compiler warning in
  1497. rend_client_send_introduction(). Fixes bug 27463; bugfix
  1498. on 0.1.1.2-alpha.
  1499. - Fix bug that causes services to not ever rotate their descriptors
  1500. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  1501. on 0.3.2.1-alpha.
  1502. - Recompute some consensus information after detecting a clock jump,
  1503. or after transitioning from a non-live consensus to a live
  1504. consensus. We do this to avoid having an outdated state, and
  1505. miscalculating the index for next-generation onion services. Fixes
  1506. bug 24977; bugfix on 0.3.2.1-alpha.
  1507. o Minor bugfixes (portability):
  1508. - Fix compilation of the unit tests on GNU/Hurd, which does not
  1509. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  1510. from "paulusASol".
  1511. - Work around two different bugs in the OS X 10.10 and later SDKs
  1512. that would prevent us from successfully targeting earlier versions
  1513. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  1514. - Do not align mmap length, as it is not required by POSIX, and the
  1515. getpagesize function is deprecated. Fixes bug 25399; bugfix
  1516. on 0.1.1.23.
  1517. o Minor bugfixes (portability, FreeBSD):
  1518. - In have_enough_mem_for_dircache(), the variable DIRCACHE_MIN_MEM_MB
  1519. does not stringify on FreeBSD, so we switch to tor_asprintf().
  1520. Fixes bug 20887; bugfix on 0.2.8.1-alpha. Patch by Neel Chauhan.
  1521. o Minor bugfixes (relay statistics):
  1522. - When a relay is collecting internal statistics about how many
  1523. create cell requests it has seen of each type, accurately count
  1524. the requests from relays that temporarily fall out of the
  1525. consensus. (To be extra conservative, we were already ignoring
  1526. requests from clients in our counts, and we continue ignoring them
  1527. here.) Fixes bug 24910; bugfix on 0.2.4.17-rc.
  1528. o Minor bugfixes (rust):
  1529. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  1530. on 0.3.1.5-alpha.
  1531. - Protover parsing was accepting the presence of whitespace in
  1532. version strings, which the C implementation would choke on, e.g.
  1533. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  1534. - Protover parsing was ignoring a 2nd hyphen and everything after
  1535. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  1536. on 0.3.3.1-alpha.
  1537. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  1538. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  1539. - cd to ${abs_top_builddir}/src/rust before running cargo in
  1540. src/test/test_rust.sh. This makes the working directory consistent
  1541. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  1542. o Minor bugfixes (single onion services, Tor2web):
  1543. - Log a protocol warning when single onion services or Tor2web
  1544. clients fail to authenticate direct connections to relays. Fixes
  1545. bug 26924; bugfix on 0.2.9.1-alpha.
  1546. o Minor bugfixes (test coverage tools):
  1547. - Update our "cov-diff" script to handle output from the latest
  1548. version of gcov, and to remove extraneous timestamp information
  1549. from its output. Fixes bugs 26101 and 26102; bugfix
  1550. on 0.2.5.1-alpha.
  1551. o Minor bugfixes (testing):
  1552. - Disable core dumps in test_bt.sh, to avoid failures in "make
  1553. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  1554. - When testing workqueue event-cancellation, make sure that we
  1555. actually cancel an event, and that cancel each event with equal
  1556. probability. (It was previously possible, though extremely
  1557. unlikely, for our event-canceling test not to cancel any events.)
  1558. Fixes bug 26008; bugfix on 0.2.6.3-alpha.
  1559. - Repeat part of the test in test_client_pick_intro() a number of
  1560. times, to give it consistent coverage. Fixes bug 25996; bugfix
  1561. on 0.3.2.1-alpha.
  1562. - Remove randomness from the hs_common/responsible_hsdirs test, so
  1563. that it always takes the same path through the function it tests.
  1564. Fixes bug 25997; bugfix on 0.3.2.1-alpha.
  1565. - Change the behavior of the "channel/outbound" test so that it
  1566. never causes a 10-second rollover for the EWMA circuitmux code.
  1567. Previously, this behavior would happen randomly, and result in
  1568. fluctuating test coverage. Fixes bug 25994; bugfix
  1569. on 0.3.3.1-alpha.
  1570. - Use X509_new() to allocate certificates that will be freed later
  1571. with X509_free(). Previously, some parts of the unit tests had
  1572. used tor_malloc_zero(), which is incorrect, and which caused test
  1573. failures on Windows when they were built with extra hardening.
  1574. Fixes bugs 25943 and 25944; bugfix on 0.2.8.1-alpha. Patch by
  1575. Marcin Cieślak.
  1576. - While running the circuit_timeout test, fix the PRNG to a
  1577. deterministic AES stream, so that the test coverage from this test
  1578. will itself be deterministic. Fixes bug 25995; bugfix
  1579. on 0.2.2.2-alpha.
  1580. o Minor bugfixes (testing, bootstrap):
  1581. - When calculating bootstrap progress, check exit policies and the
  1582. exit flag. Previously, Tor would only check the exit flag, which
  1583. caused race conditions in small and fast networks like chutney.
  1584. Fixes bug 27236; bugfix on 0.2.6.3-alpha.
  1585. o Minor bugfixes (testing, chutney):
  1586. - When running make test-network-all, use the mixed+hs-v2 network.
  1587. (A previous fix to chutney removed v3 onion services from the
  1588. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  1589. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  1590. - Before running make test-network-all, delete old logs and test
  1591. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  1592. on 0.2.7.3-rc.
  1593. o Minor bugfixes (testing, openssl compatibility):
  1594. - Our "tortls/cert_matches_key" unit test no longer relies on
  1595. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  1596. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  1597. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  1598. o Minor bugfixes (v3 onion services):
  1599. - Stop sending ed25519 link specifiers in v3 onion service introduce
  1600. cells and descriptors, when the rendezvous or introduction point
  1601. doesn't support ed25519 link authentication. Fixes bug 26627;
  1602. bugfix on 0.3.2.4-alpha.
  1603. o Minor bugfixes (vanguards):
  1604. - Allow the last hop in a vanguard circuit to be the same as our
  1605. first, to prevent the adversary from influencing guard node choice
  1606. by choice of last hop. Also prevent the creation of A - B - A
  1607. paths, or A - A paths, which are forbidden by relays. Fixes bug
  1608. 25870; bugfix on 0.3.3.1-alpha.
  1609. o Minor bugfixes (Windows, compilation):
  1610. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  1611. 27185; bugfix on 0.2.2.2-alpha.
  1612. o Code simplification and refactoring:
  1613. - Remove duplicate code in parse_{c,s}method_line and bootstrap
  1614. their functionalities into a single function. Fixes bug 6236;
  1615. bugfix on 0.2.3.6-alpha.
  1616. - We remove the PortForwsrding and PortForwardingHelper options,
  1617. related functions, and the port_forwarding tests. These options
  1618. were used by the now-deprecated Vidalia to help ordinary users
  1619. become Tor relays or bridges. Closes ticket 25409. Patch by
  1620. Neel Chauhan.
  1621. - In order to make the OR and dir checking function in router.c less
  1622. confusing we renamed some functions and
  1623. consider_testing_reachability() has been split into
  1624. router_should_check_reachability() and
  1625. router_do_reachability_checks(). Also we improved the documentation
  1626. in some functions. Closes ticket 18918.
  1627. - Initial work to isolate Libevent usage to a handful of modules in
  1628. our codebase, to simplify our call structure, and so that we can
  1629. more easily change event loops in the future if needed. Closes
  1630. ticket 23750.
  1631. - Introduce a function to call getsockname() and return tor_addr_t,
  1632. to save a little complexity throughout the codebase. Closes
  1633. ticket 18105.
  1634. - Make hsdir_index in node_t a hsdir_index_t rather than a pointer
  1635. as hsdir_index is always present. Also, we move hsdir_index_t into
  1636. or.h. Closes ticket 23094. Patch by Neel Chauhan.
  1637. - Merge functions used for describing nodes and suppress the
  1638. functions that do not allocate memory for the output buffer
  1639. string. NODE_DESC_BUF_LEN constant and format_node_description()
  1640. function cannot be used externally from router.c module anymore.
  1641. Closes ticket 25432. Patch by valentecaio.
  1642. - Our main loop has been simplified so that all important operations
  1643. happen inside events. Previously, some operations had to happen
  1644. outside the event loop, to prevent infinite sequences of event
  1645. activations. Closes ticket 25374.
  1646. - Put a SHA1 public key digest in hs_service_intro_point_t, and use
  1647. it in register_intro_circ() and service_intro_point_new(). This
  1648. prevents the digest from being re-calculated each time. Closes
  1649. ticket 23107. Patch by Neel Chauhan.
  1650. - Refactor token-bucket implementations to use a common backend.
  1651. Closes ticket 25766.
  1652. - Remove extern declaration of stats_n_seconds_working variable from
  1653. main, protecting its accesses with get_uptime() and reset_uptime()
  1654. functions. Closes ticket 25081, patch by “valentecaio”.
  1655. - Remove our previous logic for "cached gettimeofday()" -- our
  1656. coarse monotonic timers are fast enough for this purpose, and far
  1657. less error-prone. Implements part of ticket 25927.
  1658. - Remove the return value for fascist_firewall_choose_address_base(),
  1659. and sister functions such as fascist_firewall_choose_address_node()
  1660. and fascist_firewall_choose_address_rs(). Also, while we're here,
  1661. initialize the ap argument as leaving it uninitialized can pose a
  1662. security hazard. Closes ticket 24734. Patch by Neel Chauhan.
  1663. - Rename two fields of connection_t struct. timestamp_lastwritten is
  1664. renamed to timestamp_last_write_allowed and timestamp_lastread is
  1665. renamed to timestamp_last_read_allowed. Closes ticket 24714, patch
  1666. by "valentecaio".
  1667. - Since Tor requires C99, remove our old workaround code for libc
  1668. implementations where free(NULL) doesn't work. Closes ticket 24484.
  1669. - Use our standard rate-limiting code to deal with excessive
  1670. libevent failures, rather than the hand-rolled logic we had
  1671. before. Closes ticket 26016.
  1672. - We remove the return value of node_get_prim_orport() and
  1673. node_get_prim_dirport(), and introduce node_get_prim_orport() in
  1674. node_ipv6_or_preferred() and node_ipv6_dir_preferred() in order to
  1675. check for a null address. Closes ticket 23873. Patch by
  1676. Neel Chauhan.
  1677. - We switch to should_record_bridge_info() in
  1678. geoip_note_client_seen() and options_need_geoip_info() instead of
  1679. accessing the configuration values directly. Fixes bug 25290;
  1680. bugfix on 0.2.1.6-alpha. Patch by Neel Chauhan.
  1681. o Deprecated features:
  1682. - As we are not recommending 0.2.5 anymore, we require relays that
  1683. once had an ed25519 key associated with their RSA key to always
  1684. have that key, instead of allowing them to drop back to a version
  1685. that didn't support ed25519. This means they need to use a new RSA
  1686. key if they want to downgrade to an older version of tor without
  1687. ed25519. Closes ticket 20522.
  1688. o Removed features:
  1689. - Directory authorities will no longer support voting according to
  1690. any consensus method before consensus method 25. This keeps
  1691. authorities compatible with all authorities running 0.2.9.8 and
  1692. later, and does not break any clients or relays. Implements ticket
  1693. 24378 and proposal 290.
  1694. - The PortForwarding and PortForwardingHelper features have been
  1695. removed. The reasoning is, given that implementations of NAT
  1696. traversal protocols within common consumer grade routers are
  1697. frequently buggy, and that the target audience for a NAT punching
  1698. feature is a perhaps less-technically-inclined relay operator,
  1699. when the helper fails to setup traversal the problems are usually
  1700. deep, ugly, and very router specific, making them horrendously
  1701. impossible for technical support to reliable assist with, and thus
  1702. resulting in frustration all around. Unfortunately, relay
  1703. operators who would like to run relays behind NATs will need to
  1704. become more familiar with the port forwarding configurations on
  1705. their local router. Closes 25409.
  1706. - The TestingEnableTbEmptyEvent option has been removed. It was used
  1707. in testing simulations to measure how often connection buckets
  1708. were emptied, in order to improve our scheduling, but it has not
  1709. been actively used in years. Closes ticket 25760.
  1710. - The old "round-robin" circuit multiplexer (circuitmux)
  1711. implementation has been removed, along with a fairly large set of
  1712. code that existed to support it. It has not been the default
  1713. circuitmux since we introduced the "EWMA" circuitmux in 0.2.4.x,
  1714. but it still required an unreasonable amount of memory and CPU.
  1715. Closes ticket 25268.
  1716. Changes in version 0.3.3.9 - 2018-07-13
  1717. Tor 0.3.3.9 moves to a new bridge authority, meaning people running
  1718. bridge relays should upgrade.
  1719. o Directory authority changes:
  1720. - The "Bifroest" bridge authority has been retired; the new bridge
  1721. authority is "Serge", and it is operated by George from the
  1722. TorBSD project. Closes ticket 26771.
  1723. Changes in version 0.3.2.11 - 2018-07-13
  1724. Tor 0.3.2.11 moves to a new bridge authority, meaning people running
  1725. bridge relays should upgrade. We also take this opportunity to backport
  1726. other minor fixes.
  1727. o Directory authority changes:
  1728. - The "Bifroest" bridge authority has been retired; the new bridge
  1729. authority is "Serge", and it is operated by George from the
  1730. TorBSD project. Closes ticket 26771.
  1731. o Directory authority changes (backport from 0.3.3.7):
  1732. - Add an IPv6 address for the "dannenberg" directory authority.
  1733. Closes ticket 26343.
  1734. o Major bugfixes (directory authorities, backport from 0.3.4.1-alpha):
  1735. - When directory authorities read a zero-byte bandwidth file, they
  1736. would previously log a warning with the contents of an
  1737. uninitialised buffer. They now log a warning about the empty file
  1738. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  1739. o Major bugfixes (onion service, backport from 0.3.4.1-alpha):
  1740. - Correctly detect when onion services get disabled after HUP. Fixes
  1741. bug 25761; bugfix on 0.3.2.1.
  1742. o Minor features (sandbox, backport from 0.3.3.4-alpha):
  1743. - Explicitly permit the poll() system call when the Linux
  1744. seccomp2-based sandbox is enabled: apparently, some versions of
  1745. libc use poll() when calling getpwnam(). Closes ticket 25313.
  1746. o Minor feature (continuous integration, backport from 0.3.3.5-rc):
  1747. - Update the Travis CI configuration to use the stable Rust channel,
  1748. now that we have decided to require that. Closes ticket 25714.
  1749. o Minor features (continuous integration, backport from 0.3.4.1-alpha):
  1750. - Our .travis.yml configuration now includes support for testing the
  1751. results of "make distcheck". (It's not uncommon for "make check"
  1752. to pass but "make distcheck" to fail.) Closes ticket 25814.
  1753. - Our Travis CI configuration now integrates with the Coveralls
  1754. coverage analysis tool. Closes ticket 25818.
  1755. o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
  1756. - Add several checks to detect whether Tor relays are uploading
  1757. their descriptors without specifying why they regenerated them.
  1758. Diagnostic for ticket 25686.
  1759. o Minor features (compilation, backport from 0.3.4.4-rc):
  1760. - When building Tor, prefer to use Python 3 over Python 2, and more
  1761. recent (contemplated) versions over older ones. Closes
  1762. ticket 26372.
  1763. o Minor features (geoip):
  1764. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  1765. Country database. Closes ticket 26674.
  1766. o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
  1767. - Upon receiving a malformed connected cell, stop processing the
  1768. cell immediately. Previously we would mark the connection for
  1769. close, but continue processing the cell as if the connection were
  1770. open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
  1771. o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
  1772. - Allow the nanosleep() system call, which glibc uses to implement
  1773. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  1774. o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
  1775. - When running the hs_ntor_ref.py test, make sure only to pass
  1776. strings (rather than "bytes" objects) to the Python subprocess
  1777. module. Python 3 on Windows seems to require this. Fixes bug
  1778. 26535; bugfix on 0.3.1.1-alpha.
  1779. - When running the ntor_ref.py test, make sure only to pass strings
  1780. (rather than "bytes" objects) to the Python subprocess module.
  1781. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  1782. on 0.2.5.5-alpha.
  1783. o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
  1784. - Work around a change in OpenSSL 1.1.1 where return values that
  1785. would previously indicate "no password" now indicate an empty
  1786. password. Without this workaround, Tor instances running with
  1787. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  1788. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  1789. o Minor bugfixes (documentation, backport from 0.3.3.5-rc):
  1790. - Document that the PerConnBW{Rate,Burst} options will fall back to
  1791. their corresponding consensus parameters only if those parameters
  1792. are set. Previously we had claimed that these values would always
  1793. be set in the consensus. Fixes bug 25296; bugfix on 0.2.2.7-alpha.
  1794. o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
  1795. - Fix a compilation warning on some versions of GCC when building
  1796. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1797. that the second call will succeed if the first one did. Fixes bug
  1798. 26269; bugfix on 0.2.8.2-alpha.
  1799. o Minor bugfixes (client, backport from 0.3.4.1-alpha):
  1800. - Don't consider Tor running as a client if the ControlPort is open,
  1801. but no actual client ports are open. Fixes bug 26062; bugfix
  1802. on 0.2.9.4-alpha.
  1803. o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
  1804. - Prevent a possible out-of-bounds smartlist read in
  1805. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  1806. o Minor bugfixes (C correctness, backport from 0.3.3.4-alpha):
  1807. - Fix a very unlikely (impossible, we believe) null pointer
  1808. dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
  1809. Coverity; this is CID 1430932.
  1810. o Minor bugfixes (onion service, backport from 0.3.4.1-alpha):
  1811. - Fix a memory leak when a v3 onion service is configured and gets a
  1812. SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
  1813. - When parsing the descriptor signature, look for the token plus an
  1814. extra white-space at the end. This is more correct but also will
  1815. allow us to support new fields that might start with "signature".
  1816. Fixes bug 26069; bugfix on 0.3.0.1-alpha.
  1817. o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
  1818. - Relays now correctly block attempts to re-extend to the previous
  1819. relay by Ed25519 identity. Previously they would warn in this
  1820. case, but not actually reject the attempt. Fixes bug 26158; bugfix
  1821. on 0.3.0.1-alpha.
  1822. o Minor bugfixes (relay, crash, backport from 0.3.4.1-alpha):
  1823. - Avoid a crash when running with DirPort set but ORPort turned off.
  1824. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
  1825. o Minor bugfixes (compilation, backport from 0.3.4.2-alpha):
  1826. - Silence unused-const-variable warnings in zstd.h with some GCC
  1827. versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
  1828. o Minor bugfixes (testing, backport from 0.3.3.4-alpha):
  1829. - Avoid intermittent test failures due to a test that had relied on
  1830. onion service introduction point creation finishing within 5
  1831. seconds of real clock time. Fixes bug 25450; bugfix
  1832. on 0.3.1.3-alpha.
  1833. o Minor bugfixes (compilation, backport from 0.3.3.4-alpha):
  1834. - Fix a C99 compliance issue in our configuration script that caused
  1835. compilation issues when compiling Tor with certain versions of
  1836. xtools. Fixes bug 25474; bugfix on 0.3.2.5-alpha.
  1837. o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
  1838. - Fix a number of small memory leaks identified by coverity. Fixes
  1839. bug 26467; bugfix on numerous Tor versions.
  1840. o Code simplification and refactoring (backport from 0.3.3.5-rc):
  1841. - Move the list of default directory authorities to its own file.
  1842. Closes ticket 24854. Patch by "beastr0".
  1843. Changes in version 0.2.9.16 - 2018-07-13
  1844. Tor 0.2.9.16 moves to a new bridge authority, meaning people running
  1845. bridge relays should upgrade. We also take this opportunity to backport
  1846. other minor fixes.
  1847. o Directory authority changes:
  1848. - The "Bifroest" bridge authority has been retired; the new bridge
  1849. authority is "Serge", and it is operated by George from the
  1850. TorBSD project. Closes ticket 26771.
  1851. o Directory authority changes (backport from 0.3.3.7):
  1852. - Add an IPv6 address for the "dannenberg" directory authority.
  1853. Closes ticket 26343.
  1854. o Major bugfixes (directory authorities, backport from 0.3.4.1-alpha):
  1855. - When directory authorities read a zero-byte bandwidth file, they
  1856. would previously log a warning with the contents of an
  1857. uninitialised buffer. They now log a warning about the empty file
  1858. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  1859. o Minor features (sandbox, backport from 0.3.3.4-alpha):
  1860. - Explicitly permit the poll() system call when the Linux
  1861. seccomp2-based sandbox is enabled: apparently, some versions of
  1862. libc use poll() when calling getpwnam(). Closes ticket 25313.
  1863. o Minor features (continuous integration, backport from 0.3.4.1-alpha):
  1864. - Our .travis.yml configuration now includes support for testing the
  1865. results of "make distcheck". (It's not uncommon for "make check"
  1866. to pass but "make distcheck" to fail.) Closes ticket 25814.
  1867. - Our Travis CI configuration now integrates with the Coveralls
  1868. coverage analysis tool. Closes ticket 25818.
  1869. o Minor features (compilation, backport from 0.3.4.4-rc):
  1870. - When building Tor, prefer to use Python 3 over Python 2, and more
  1871. recent (contemplated) versions over older ones. Closes
  1872. ticket 26372.
  1873. o Minor features (geoip):
  1874. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  1875. Country database. Closes ticket 26674.
  1876. o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
  1877. - Upon receiving a malformed connected cell, stop processing the
  1878. cell immediately. Previously we would mark the connection for
  1879. close, but continue processing the cell as if the connection were
  1880. open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
  1881. o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
  1882. - Allow the nanosleep() system call, which glibc uses to implement
  1883. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  1884. o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
  1885. - When running the ntor_ref.py test, make sure only to pass strings
  1886. (rather than "bytes" objects) to the Python subprocess module.
  1887. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  1888. on 0.2.5.5-alpha.
  1889. o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
  1890. - Work around a change in OpenSSL 1.1.1 where return values that
  1891. would previously indicate "no password" now indicate an empty
  1892. password. Without this workaround, Tor instances running with
  1893. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  1894. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  1895. o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
  1896. - Fix a compilation warning on some versions of GCC when building
  1897. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1898. that the second call will succeed if the first one did. Fixes bug
  1899. 26269; bugfix on 0.2.8.2-alpha.
  1900. o Minor bugfixes (client, backport from 0.3.4.1-alpha):
  1901. - Don't consider Tor running as a client if the ControlPort is open,
  1902. but no actual client ports are open. Fixes bug 26062; bugfix
  1903. on 0.2.9.4-alpha.
  1904. o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
  1905. - Prevent a possible out-of-bounds smartlist read in
  1906. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  1907. o Minor bugfixes (C correctness, backport from 0.3.3.4-alpha):
  1908. - Fix a very unlikely (impossible, we believe) null pointer
  1909. dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
  1910. Coverity; this is CID 1430932.
  1911. o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
  1912. - Fix a number of small memory leaks identified by coverity. Fixes
  1913. bug 26467; bugfix on numerous Tor versions.
  1914. o Code simplification and refactoring (backport from 0.3.3.5-rc):
  1915. - Move the list of default directory authorities to its own file.
  1916. Closes ticket 24854. Patch by "beastr0".
  1917. Changes in version 0.3.3.8 - 2018-07-09
  1918. Tor 0.3.3.8 backports several changes from the 0.3.4.x series, including
  1919. fixes for a memory leak affecting directory authorities.
  1920. o Major bugfixes (directory authority, backport from 0.3.4.3-alpha):
  1921. - Stop leaking memory on directory authorities when planning to
  1922. vote. This bug was crashing authorities by exhausting their
  1923. memory. Fixes bug 26435; bugfix on 0.3.3.6.
  1924. o Major bugfixes (rust, testing, backport from 0.3.4.3-alpha):
  1925. - Make sure that failing tests in Rust will actually cause the build
  1926. to fail: previously, they were ignored. Fixes bug 26258; bugfix
  1927. on 0.3.3.4-alpha.
  1928. o Minor features (compilation, backport from 0.3.4.4-rc):
  1929. - When building Tor, prefer to use Python 3 over Python 2, and more
  1930. recent (contemplated) versions over older ones. Closes
  1931. ticket 26372.
  1932. o Minor features (geoip):
  1933. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  1934. Country database. Closes ticket 26674.
  1935. o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
  1936. - Add several checks to detect whether Tor relays are uploading
  1937. their descriptors without specifying why they regenerated them.
  1938. Diagnostic for ticket 25686.
  1939. o Minor bugfixes (circuit path selection, backport from 0.3.4.1-alpha):
  1940. - Don't count path selection failures as circuit build failures.
  1941. This change should eliminate cases where Tor blames its guard or
  1942. the network for situations like insufficient microdescriptors
  1943. and/or overly restrictive torrc settings. Fixes bug 25705; bugfix
  1944. on 0.3.3.1-alpha.
  1945. o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
  1946. - Fix a compilation warning on some versions of GCC when building
  1947. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1948. that the second call will succeed if the first one did. Fixes bug
  1949. 26269; bugfix on 0.2.8.2-alpha.
  1950. o Minor bugfixes (control port, backport from 0.3.4.4-rc):
  1951. - Handle the HSADDRESS= argument to the HSPOST command properly.
  1952. (Previously, this argument was misparsed and thus ignored.) Fixes
  1953. bug 26523; bugfix on 0.3.3.1-alpha. Patch by "akwizgran".
  1954. o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
  1955. - Fix a number of small memory leaks identified by coverity. Fixes
  1956. bug 26467; bugfix on numerous Tor versions.
  1957. o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
  1958. - Relays now correctly block attempts to re-extend to the previous
  1959. relay by Ed25519 identity. Previously they would warn in this
  1960. case, but not actually reject the attempt. Fixes bug 26158; bugfix
  1961. on 0.3.0.1-alpha.
  1962. o Minor bugfixes (restart-in-process, backport from 0.3.4.1-alpha):
  1963. - When shutting down, Tor now clears all the flags in the control.c
  1964. module. This should prevent a bug where authentication cookies are
  1965. not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
  1966. o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
  1967. - When running the hs_ntor_ref.py test, make sure only to pass
  1968. strings (rather than "bytes" objects) to the Python subprocess
  1969. module. Python 3 on Windows seems to require this. Fixes bug
  1970. 26535; bugfix on 0.3.1.1-alpha.
  1971. - When running the ntor_ref.py test, make sure only to pass strings
  1972. (rather than "bytes" objects) to the Python subprocess module.
  1973. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  1974. on 0.2.5.5-alpha.
  1975. Changes in version 0.3.3.7 - 2018-06-12
  1976. Tor 0.3.3.7 backports several changes from the 0.3.4.x series, including
  1977. fixes for bugs affecting compatibility and stability.
  1978. o Directory authority changes:
  1979. - Add an IPv6 address for the "dannenberg" directory authority.
  1980. Closes ticket 26343.
  1981. o Minor features (geoip):
  1982. - Update geoip and geoip6 to the June 7 2018 Maxmind GeoLite2
  1983. Country database. Closes ticket 26351.
  1984. o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
  1985. - Work around a change in OpenSSL 1.1.1 where return values that
  1986. would previously indicate "no password" now indicate an empty
  1987. password. Without this workaround, Tor instances running with
  1988. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  1989. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  1990. o Minor bugfixes (compilation, backport from 0.3.4.2-alpha):
  1991. - Silence unused-const-variable warnings in zstd.h with some GCC
  1992. versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
  1993. o Minor bugfixes (controller, backport from 0.3.4.2-alpha):
  1994. - Improve accuracy of the BUILDTIMEOUT_SET control port event's
  1995. TIMEOUT_RATE and CLOSE_RATE fields. (We were previously
  1996. miscounting the total number of circuits for these field values.)
  1997. Fixes bug 26121; bugfix on 0.3.3.1-alpha.
  1998. o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
  1999. - Prevent a possible out-of-bounds smartlist read in
  2000. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  2001. o Minor bugfixes (path selection, backport from 0.3.4.1-alpha):
  2002. - Only select relays when they have the descriptors we prefer to use
  2003. for them. This change fixes a bug where we could select a relay
  2004. because it had _some_ descriptor, but reject it later with a
  2005. nonfatal assertion error because it didn't have the exact one we
  2006. wanted. Fixes bugs 25691 and 25692; bugfix on 0.3.3.4-alpha.
  2007. Changes in version 0.3.3.6 - 2018-05-22
  2008. Tor 0.3.3.6 is the first stable release in the 0.3.3 series. It
  2009. backports several important fixes from the 0.3.4.1-alpha.
  2010. The Tor 0.3.3 series includes controller support and other
  2011. improvements for v3 onion services, official support for embedding Tor
  2012. within other applications, and our first non-trivial module written in
  2013. the Rust programming language. (Rust is still not enabled by default
  2014. when building Tor.) And as usual, there are numerous other smaller
  2015. bugfixes, features, and improvements.
  2016. Below are the changes since 0.3.2.10. For a list of only the changes
  2017. since 0.3.3.5-rc, see the ChangeLog file.
  2018. o New system requirements:
  2019. - When built with Rust, Tor now depends on version 0.2.39 of the
  2020. libc crate. Closes tickets 25310 and 25664.
  2021. o Major features (embedding):
  2022. - There is now a documented stable API for programs that need to
  2023. embed Tor. See tor_api.h for full documentation and known bugs.
  2024. Closes ticket 23684.
  2025. - Tor now has support for restarting in the same process.
  2026. Controllers that run Tor using the "tor_api.h" interface can now
  2027. restart Tor after Tor has exited. This support is incomplete,
  2028. however: we fixed crash bugs that prevented it from working at
  2029. all, but many bugs probably remain, including a possibility of
  2030. security issues. Implements ticket 24581.
  2031. o Major features (IPv6, directory documents):
  2032. - Add consensus method 27, which adds IPv6 ORPorts to the microdesc
  2033. consensus. This information makes it easier for IPv6 clients to
  2034. bootstrap and choose reachable entry guards. Implements
  2035. ticket 23826.
  2036. - Add consensus method 28, which removes IPv6 ORPorts from
  2037. microdescriptors. Now that the consensus contains IPv6 ORPorts,
  2038. they are redundant in microdescs. This change will be used by Tor
  2039. clients on 0.2.8.x and later. (That is to say, with all Tor
  2040. clients that have IPv6 bootstrap and guard support.) Implements
  2041. ticket 23828.
  2042. - Expand the documentation for AuthDirHasIPv6Connectivity when it is
  2043. set by different numbers of authorities. Fixes 23870
  2044. on 0.2.4.1-alpha.
  2045. o Major features (onion service v3, control port):
  2046. - The control port now supports commands and events for v3 onion
  2047. services. It is now possible to create ephemeral v3 services using
  2048. ADD_ONION. Additionally, several events (HS_DESC, HS_DESC_CONTENT,
  2049. CIRC and CIRC_MINOR) and commands (GETINFO, HSPOST, ADD_ONION and
  2050. DEL_ONION) have been extended to support v3 onion services. Closes
  2051. ticket 20699; implements proposal 284.
  2052. o Major features (onion services):
  2053. - Provide torrc options to pin the second and third hops of onion
  2054. service circuits to a list of nodes. The option HSLayer2Guards
  2055. pins the second hop, and the option HSLayer3Guards pins the third
  2056. hop. These options are for use in conjunction with experiments
  2057. with "vanguards" for preventing guard enumeration attacks. Closes
  2058. ticket 13837.
  2059. - When v3 onion service clients send introduce cells, they now
  2060. include the IPv6 address of the rendezvous point, if it has one.
  2061. Current v3 onion services running 0.3.2 ignore IPv6 addresses, but
  2062. in future Tor versions, IPv6-only v3 single onion services will be
  2063. able to use IPv6 addresses to connect directly to the rendezvous
  2064. point. Closes ticket 23577. Patch by Neel Chauhan.
  2065. o Major features (relay):
  2066. - Implement an option, ReducedExitPolicy, to allow an Tor exit relay
  2067. operator to use a more reasonable ("reduced") exit policy, rather
  2068. than the default one. If you want to run an exit node without
  2069. thinking too hard about which ports to allow, this one is for you.
  2070. Closes ticket 13605. Patch from Neel Chauhan.
  2071. o Major features (rust, portability, experimental):
  2072. - Tor now ships with an optional implementation of one of its
  2073. smaller modules (protover.c) in the Rust programming language. To
  2074. try it out, install a Rust build environment, and configure Tor
  2075. with "--enable-rust --enable-cargo-online-mode". This should not
  2076. cause any user-visible changes, but should help us gain more
  2077. experience with Rust, and plan future Rust integration work.
  2078. Implementation by Chelsea Komlo. Closes ticket 22840.
  2079. o Major bugfixes (directory authorities, security, backport from 0.3.4.1-alpha):
  2080. - When directory authorities read a zero-byte bandwidth file, they
  2081. would previously log a warning with the contents of an
  2082. uninitialised buffer. They now log a warning about the empty file
  2083. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  2084. o Major bugfixes (security, directory authority, denial-of-service):
  2085. - Fix a bug that could have allowed an attacker to force a directory
  2086. authority to use up all its RAM by passing it a maliciously
  2087. crafted protocol versions string. Fixes bug 25517; bugfix on
  2088. 0.2.9.4-alpha. This issue is also tracked as TROVE-2018-005.
  2089. o Major bugfixes (crash, backport from 0.3.4.1-alpha):
  2090. - Avoid a rare assertion failure in the circuit build timeout code
  2091. if we fail to allow any circuits to actually complete. Fixes bug
  2092. 25733; bugfix on 0.2.2.2-alpha.
  2093. o Major bugfixes (netflow padding):
  2094. - Stop adding unneeded channel padding right after we finish
  2095. flushing to a connection that has been trying to flush for many
  2096. seconds. Instead, treat all partial or complete flushes as
  2097. activity on the channel, which will defer the time until we need
  2098. to add padding. This fix should resolve confusing and scary log
  2099. messages like "Channel padding timeout scheduled 221453ms in the
  2100. past." Fixes bug 22212; bugfix on 0.3.1.1-alpha.
  2101. o Major bugfixes (networking):
  2102. - Tor will no longer reject IPv6 address strings from Tor Browser
  2103. when they are passed as hostnames in SOCKS5 requests. Fixes bug
  2104. 25036, bugfix on Tor 0.3.1.2.
  2105. o Major bugfixes (onion service, backport from 0.3.4.1-alpha):
  2106. - Correctly detect when onion services get disabled after HUP. Fixes
  2107. bug 25761; bugfix on 0.3.2.1.
  2108. o Major bugfixes (performance, load balancing):
  2109. - Directory authorities no longer vote in favor of the Guard flag
  2110. for relays without directory support. Starting in Tor
  2111. 0.3.0.1-alpha, clients have been avoiding using such relays in the
  2112. Guard position, leading to increasingly broken load balancing for
  2113. the 5%-or-so of Guards that don't advertise directory support.
  2114. Fixes bug 22310; bugfix on 0.3.0.6.
  2115. o Major bugfixes (relay):
  2116. - If we have failed to connect to a relay and received a connection
  2117. refused, timeout, or similar error (at the TCP level), do not try
  2118. that same address/port again for 60 seconds after the failure has
  2119. occurred. Fixes bug 24767; bugfix on 0.0.6.
  2120. o Major bugfixes (relay, denial of service, backport from 0.3.4.1-alpha):
  2121. - Impose a limit on circuit cell queue size. The limit can be
  2122. controlled by a consensus parameter. Fixes bug 25226; bugfix
  2123. on 0.2.4.14-alpha.
  2124. o Minor features (cleanup):
  2125. - Tor now deletes the CookieAuthFile and ExtORPortCookieAuthFile
  2126. when it stops. Closes ticket 23271.
  2127. o Minor features (compatibility, backport from 0.3.4.1-alpha):
  2128. - Avoid some compilation warnings with recent versions of LibreSSL.
  2129. Closes ticket 26006.
  2130. o Minor features (config options):
  2131. - Change the way the default value for MaxMemInQueues is calculated.
  2132. We now use 40% of the hardware RAM if the system has 8 GB RAM or
  2133. more. Otherwise we use the former value of 75%. Closes
  2134. ticket 24782.
  2135. o Minor features (continuous integration):
  2136. - Update the Travis CI configuration to use the stable Rust channel,
  2137. now that we have decided to require that. Closes ticket 25714.
  2138. o Minor features (continuous integration, backport from 0.3.4.1-alpha):
  2139. - Our .travis.yml configuration now includes support for testing the
  2140. results of "make distcheck". (It's not uncommon for "make check"
  2141. to pass but "make distcheck" to fail.) Closes ticket 25814.
  2142. - Our Travis CI configuration now integrates with the Coveralls
  2143. coverage analysis tool. Closes ticket 25818.
  2144. o Minor features (defensive programming):
  2145. - Most of the functions in Tor that free objects have been replaced
  2146. with macros that free the objects and set the corresponding
  2147. pointers to NULL. This change should help prevent a large class of
  2148. dangling pointer bugs. Closes ticket 24337.
  2149. - Where possible, the tor_free() macro now only evaluates its input
  2150. once. Part of ticket 24337.
  2151. - Check that microdesc ed25519 ids are non-zero in
  2152. node_get_ed25519_id() before returning them. Implements ticket
  2153. 24001, patch by "aruna1234".
  2154. o Minor features (directory authority):
  2155. - When directory authorities are unable to add signatures to a
  2156. pending consensus, log the reason why. Closes ticket 24849.
  2157. o Minor features (embedding):
  2158. - Tor can now start with a preauthenticated control connection
  2159. created by the process that launched it. This feature is meant for
  2160. use by programs that want to launch and manage a Tor process
  2161. without allowing other programs to manage it as well. For more
  2162. information, see the __OwningControllerFD option documented in
  2163. control-spec.txt. Closes ticket 23900.
  2164. - On most errors that would cause Tor to exit, it now tries to
  2165. return from the tor_main() function, rather than calling the
  2166. system exit() function. Most users won't notice a difference here,
  2167. but it should be significant for programs that run Tor inside a
  2168. separate thread: they should now be able to survive Tor's exit
  2169. conditions rather than having Tor shut down the entire process.
  2170. Closes ticket 23848.
  2171. - Applications that want to embed Tor can now tell Tor not to
  2172. register any of its own POSIX signal handlers, using the
  2173. __DisableSignalHandlers option. Closes ticket 24588.
  2174. o Minor features (fallback directory list):
  2175. - Avoid selecting fallbacks that change their IP addresses too
  2176. often. Select more fallbacks by ignoring the Guard flag, and
  2177. allowing lower cutoffs for the Running and V2Dir flags. Also allow
  2178. a lower bandwidth, and a higher number of fallbacks per operator
  2179. (5% of the list). Implements ticket 24785.
  2180. - Update the fallback whitelist and blacklist based on opt-ins and
  2181. relay changes. Closes tickets 22321, 24678, 22527, 24135,
  2182. and 24695.
  2183. o Minor features (fallback directory mirror configuration):
  2184. - Add a nickname to each fallback in a C comment. This makes it
  2185. easier for operators to find their relays, and allows stem to use
  2186. nicknames to identify fallbacks. Implements ticket 24600.
  2187. - Add a type and version header to the fallback directory mirror
  2188. file. Also add a delimiter to the end of each fallback entry. This
  2189. helps external parsers like stem and Relay Search. Implements
  2190. ticket 24725.
  2191. - Add an extrainfo cache flag for each fallback in a C comment. This
  2192. allows stem to use fallbacks to fetch extra-info documents, rather
  2193. than using authorities. Implements ticket 22759.
  2194. - Add the generateFallbackDirLine.py script for automatically
  2195. generating fallback directory mirror lines from relay fingerprints.
  2196. No more typos! Add the lookupFallbackDirContact.py script for
  2197. automatically looking up operator contact info from relay
  2198. fingerprints. Implements ticket 24706, patch by teor and atagar.
  2199. - Reject any fallback directory mirror that serves an expired
  2200. consensus. Implements ticket 20942, patch by "minik".
  2201. - Remove commas and equals signs from external string inputs to the
  2202. fallback list. This avoids format confusion attacks. Implements
  2203. ticket 24726.
  2204. - Remove the "weight=10" line from fallback directory mirror
  2205. entries. Ticket 24681 will maintain the current fallback weights
  2206. by changing Tor's default fallback weight to 10. Implements
  2207. ticket 24679.
  2208. - Stop logging excessive information about fallback netblocks.
  2209. Implements ticket 24791.
  2210. o Minor features (forward-compatibility):
  2211. - If a relay supports some link authentication protocol that we do
  2212. not recognize, then include that relay's ed25519 key when telling
  2213. other relays to extend to it. Previously, we treated future
  2214. versions as if they were too old to support ed25519 link
  2215. authentication. Closes ticket 20895.
  2216. o Minor features (geoip):
  2217. - Update geoip and geoip6 to the May 1 2018 Maxmind GeoLite2 Country
  2218. database. Closes ticket 26104.
  2219. o Minor features (heartbeat):
  2220. - Add onion service information to our heartbeat logs, displaying
  2221. stats about the activity of configured onion services. Closes
  2222. ticket 24896.
  2223. o Minor features (instrumentation, development):
  2224. - Add the MainloopStats option to allow developers to get
  2225. instrumentation information from the main event loop via the
  2226. heartbeat messages. We hope to use this to improve Tor's behavior
  2227. when it's trying to sleep. Closes ticket 24605.
  2228. o Minor features (IPv6):
  2229. - Make IPv6-only clients wait for microdescs for relays, even if we
  2230. were previously using descriptors (or were using them as a bridge)
  2231. and have a cached descriptor for them. Implements ticket 23827.
  2232. - When a consensus has IPv6 ORPorts, make IPv6-only clients use
  2233. them, rather than waiting to download microdescriptors. Implements
  2234. ticket 23827.
  2235. o Minor features (log messages):
  2236. - Improve log message in the out-of-memory handler to include
  2237. information about memory usage from the different compression
  2238. backends. Closes ticket 25372.
  2239. - Improve a warning message that happens when we fail to re-parse an
  2240. old router because of an expired certificate. Closes ticket 20020.
  2241. - Make the log more quantitative when we hit MaxMemInQueues
  2242. threshold exposing some values. Closes ticket 24501.
  2243. o Minor features (logging):
  2244. - Clarify the log messages produced when getrandom() or a related
  2245. entropy-generation mechanism gives an error. Closes ticket 25120.
  2246. - Added support for the Android logging subsystem. Closes
  2247. ticket 24362.
  2248. o Minor features (performance):
  2249. - Support predictive circuit building for onion service circuits
  2250. with multiple layers of guards. Closes ticket 23101.
  2251. - Use stdatomic.h where available, rather than mutexes, to implement
  2252. atomic_counter_t. Closes ticket 23953.
  2253. o Minor features (performance, 32-bit):
  2254. - Improve performance on 32-bit systems by avoiding 64-bit division
  2255. when calculating the timestamp in milliseconds for channel padding
  2256. computations. Implements ticket 24613.
  2257. - Improve performance on 32-bit systems by avoiding 64-bit division
  2258. when timestamping cells and buffer chunks for OOM calculations.
  2259. Implements ticket 24374.
  2260. o Minor features (performance, OSX, iOS):
  2261. - Use the mach_approximate_time() function (when available) to
  2262. implement coarse monotonic time. Having a coarse time function
  2263. should avoid a large number of system calls, and improve
  2264. performance slightly, especially under load. Closes ticket 24427.
  2265. o Minor features (performance, windows):
  2266. - Improve performance on Windows Vista and Windows 7 by adjusting
  2267. TCP send window size according to the recommendation from
  2268. SIO_IDEAL_SEND_BACKLOG_QUERY. Closes ticket 22798. Patch
  2269. from Vort.
  2270. o Minor features (sandbox):
  2271. - Explicitly permit the poll() system call when the Linux
  2272. seccomp2-based sandbox is enabled: apparently, some versions of
  2273. libc use poll() when calling getpwnam(). Closes ticket 25313.
  2274. o Minor features (storage, configuration):
  2275. - Users can store cached directory documents somewhere other than
  2276. the DataDirectory by using the CacheDirectory option. Similarly,
  2277. the storage location for relay's keys can be overridden with the
  2278. KeyDirectory option. Closes ticket 22703.
  2279. o Minor features (testing):
  2280. - Add a "make test-rust" target to run the rust tests only. Closes
  2281. ticket 25071.
  2282. o Minor features (testing, debugging, embedding):
  2283. - For development purposes, Tor now has a mode in which it runs for
  2284. a few seconds, then stops, and starts again without exiting the
  2285. process. This mode is meant to help us debug various issues with
  2286. ticket 23847. To use this feature, compile with
  2287. --enable-restart-debugging, and set the TOR_DEBUG_RESTART
  2288. environment variable. This is expected to crash a lot, and is
  2289. really meant for developers only. It will likely be removed in a
  2290. future release. Implements ticket 24583.
  2291. o Minor bugfixes (build, rust):
  2292. - Fix output of autoconf checks to display success messages for Rust
  2293. dependencies and a suitable rustc compiler version. Fixes bug
  2294. 24612; bugfix on 0.3.1.3-alpha.
  2295. - Don't pass the --quiet option to cargo: it seems to suppress some
  2296. errors, which is not what we want to do when building. Fixes bug
  2297. 24518; bugfix on 0.3.1.7.
  2298. - Build correctly when building from outside Tor's source tree with
  2299. the TOR_RUST_DEPENDENCIES option set. Fixes bug 22768; bugfix
  2300. on 0.3.1.7.
  2301. o Minor bugfixes (C correctness):
  2302. - Fix a very unlikely (impossible, we believe) null pointer
  2303. dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
  2304. Coverity; this is CID 1430932.
  2305. o Minor bugfixes (channel, client):
  2306. - Better identify client connection when reporting to the geoip
  2307. client cache. Fixes bug 24904; bugfix on 0.3.1.7.
  2308. o Minor bugfixes (circuit, cannibalization):
  2309. - Don't cannibalize preemptively-built circuits if we no longer
  2310. recognize their first hop. This situation can happen if our Guard
  2311. relay went off the consensus after the circuit was created. Fixes
  2312. bug 24469; bugfix on 0.0.6.
  2313. o Minor bugfixes (client, backport from 0.3.4.1-alpha):
  2314. - Don't consider Tor running as a client if the ControlPort is open,
  2315. but no actual client ports are open. Fixes bug 26062; bugfix
  2316. on 0.2.9.4-alpha.
  2317. o Minor bugfixes (compilation):
  2318. - Fix a C99 compliance issue in our configuration script that caused
  2319. compilation issues when compiling Tor with certain versions of
  2320. xtools. Fixes bug 25474; bugfix on 0.3.2.5-alpha.
  2321. o Minor bugfixes (controller):
  2322. - Restore the correct operation of the RESOLVE command, which had
  2323. been broken since we added the ability to enable/disable DNS on
  2324. specific listener ports. Fixes bug 25617; bugfix on 0.2.9.3-alpha.
  2325. - Avoid a (nonfatal) assertion failure when extending a one-hop
  2326. circuit from the controller to become a multihop circuit. Fixes
  2327. bug 24903; bugfix on 0.2.5.2-alpha.
  2328. o Minor bugfixes (correctness):
  2329. - Remove a nonworking, unnecessary check to see whether a circuit
  2330. hop's identity digest was set when the circuit failed. Fixes bug
  2331. 24927; bugfix on 0.2.4.4-alpha.
  2332. o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
  2333. - Upon receiving a malformed connected cell, stop processing the
  2334. cell immediately. Previously we would mark the connection for
  2335. close, but continue processing the cell as if the connection were
  2336. open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
  2337. o Minor bugfixes (directory authorities, IPv6):
  2338. - When creating a routerstatus (vote) from a routerinfo (descriptor),
  2339. set the IPv6 address to the unspecified IPv6 address, and
  2340. explicitly initialize the port to zero. Fixes bug 24488; bugfix
  2341. on 0.2.4.1-alpha.
  2342. o Minor bugfixes (documentation):
  2343. - Document that the PerConnBW{Rate,Burst} options will fall back to
  2344. their corresponding consensus parameters only if those parameters
  2345. are set. Previously we had claimed that these values would always
  2346. be set in the consensus. Fixes bug 25296; bugfix on 0.2.2.7-alpha.
  2347. o Minor bugfixes (documentation, backport from 0.3.4.1-alpha):
  2348. - Stop saying in the manual that clients cache ipv4 dns answers from
  2349. exit relays. We haven't used them since 0.2.6.3-alpha, and in
  2350. ticket 24050 we stopped even caching them as of 0.3.2.6-alpha, but
  2351. we forgot to say so in the man page. Fixes bug 26052; bugfix
  2352. on 0.3.2.6-alpha.
  2353. o Minor bugfixes (exit relay DNS retries):
  2354. - Re-attempt timed-out DNS queries 3 times before failure, since our
  2355. timeout is 5 seconds for them, but clients wait 10-15. Also allow
  2356. slightly more timeouts per resolver when an exit has multiple
  2357. resolvers configured. Fixes bug 21394; bugfix on 0.3.1.9.
  2358. o Minor bugfixes (fallback directory mirrors):
  2359. - Make updateFallbackDirs.py search harder for python. (Some OSs
  2360. don't put it in /usr/bin.) Fixes bug 24708; bugfix
  2361. on 0.2.8.1-alpha.
  2362. o Minor bugfixes (hibernation, bandwidth accounting, shutdown):
  2363. - When hibernating, close connections normally and allow them to
  2364. flush. Fixes bug 23571; bugfix on 0.2.4.7-alpha. Also fixes
  2365. bug 7267.
  2366. - Do not attempt to launch self-reachability tests when entering
  2367. hibernation. Fixes a case of bug 12062; bugfix on 0.0.9pre5.
  2368. - Resolve several bugs related to descriptor fetching on bridge
  2369. clients with bandwidth accounting enabled. (This combination is
  2370. not recommended!) Fixes a case of bug 12062; bugfix
  2371. on 0.2.0.3-alpha.
  2372. - When hibernating, do not attempt to launch DNS checks. Fixes a
  2373. case of bug 12062; bugfix on 0.1.2.2-alpha.
  2374. - When hibernating, do not try to upload or download descriptors.
  2375. Fixes a case of bug 12062; bugfix on 0.0.9pre5.
  2376. o Minor bugfixes (IPv6, bridges):
  2377. - Tor now always sets IPv6 preferences for bridges. Fixes bug 24573;
  2378. bugfix on 0.2.8.2-alpha.
  2379. - Tor now sets IPv6 address in the routerstatus as well as in the
  2380. router descriptors when updating addresses for a bridge. Closes
  2381. ticket 24572; bugfix on 0.2.4.5-alpha. Patch by "ffmancera".
  2382. o Minor bugfixes (Linux seccomp2 sandbox):
  2383. - When running with the sandbox enabled, reload configuration files
  2384. correctly even when %include was used. Previously we would crash.
  2385. Fixes bug 22605; bugfix on 0.3.1. Patch from Daniel Pinto.
  2386. o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
  2387. - Allow the nanosleep() system call, which glibc uses to implement
  2388. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  2389. o Minor bugfixes (logging):
  2390. - Fix a (mostly harmless) race condition when invoking
  2391. LOG_PROTOCOL_WARN message from a subthread while the torrc options
  2392. are changing. Fixes bug 23954; bugfix on 0.1.1.9-alpha.
  2393. o Minor bugfixes (man page, SocksPort):
  2394. - Remove dead code from the old "SocksSocket" option, and rename
  2395. SocksSocketsGroupWritable to UnixSocksGroupWritable. The old
  2396. option still works, but is deprecated. Fixes bug 24343; bugfix
  2397. on 0.2.6.3.
  2398. o Minor bugfixes (memory leaks):
  2399. - Avoid possible at-exit memory leaks related to use of Libevent's
  2400. event_base_once() function. (This function tends to leak memory if
  2401. the event_base is closed before the event fires.) Fixes bug 24584;
  2402. bugfix on 0.2.8.1-alpha.
  2403. - Fix a harmless memory leak in tor-resolve. Fixes bug 24582; bugfix
  2404. on 0.2.1.1-alpha.
  2405. o Minor bugfixes (network IPv6 test):
  2406. - Tor's test scripts now check if "ping -6 ::1" works when the user
  2407. runs "make test-network-all". Fixes bug 24677; bugfix on
  2408. 0.2.9.3-alpha. Patch by "ffmancera".
  2409. o Minor bugfixes (networking):
  2410. - string_is_valid_hostname() will not consider IP strings to be
  2411. valid hostnames. Fixes bug 25055; bugfix on Tor 0.2.5.5.
  2412. o Minor bugfixes (onion service v3):
  2413. - Avoid an assertion failure when the next onion service descriptor
  2414. rotation type is out of sync with the consensus's valid-after
  2415. time. Instead, log a warning message with extra information, so we
  2416. can better hunt down the cause of this assertion. Fixes bug 25306;
  2417. bugfix on 0.3.2.1-alpha.
  2418. o Minor bugfixes (onion service, backport from 0.3.4.1-alpha):
  2419. - Fix a memory leak when a v3 onion service is configured and gets a
  2420. SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
  2421. - When parsing the descriptor signature, look for the token plus an
  2422. extra white-space at the end. This is more correct but also will
  2423. allow us to support new fields that might start with "signature".
  2424. Fixes bug 26069; bugfix on 0.3.0.1-alpha.
  2425. o Minor bugfixes (onion services):
  2426. - If we are configured to offer a single onion service, don't log
  2427. long-term established one hop rendezvous points in the heartbeat.
  2428. Fixes bug 25116; bugfix on 0.2.9.6-rc.
  2429. o Minor bugfixes (performance):
  2430. - Reduce the number of circuits that will be opened at once during
  2431. the circuit build timeout phase. This is done by increasing the
  2432. idle timeout to 3 minutes, and lowering the maximum number of
  2433. concurrent learning circuits to 10. Fixes bug 24769; bugfix
  2434. on 0.3.1.1-alpha.
  2435. - Avoid calling protocol_list_supports_protocol() from inside tight
  2436. loops when running with cached routerinfo_t objects. Instead,
  2437. summarize the relevant protocols as flags in the routerinfo_t, as
  2438. we do for routerstatus_t objects. This change simplifies our code
  2439. a little, and saves a large amount of short-term memory allocation
  2440. operations. Fixes bug 25008; bugfix on 0.2.9.4-alpha.
  2441. o Minor bugfixes (performance, timeouts):
  2442. - Consider circuits for timeout as soon as they complete a hop. This
  2443. is more accurate than applying the timeout in
  2444. circuit_expire_building() because that function is only called
  2445. once per second, which is now too slow for typical timeouts on the
  2446. current network. Fixes bug 23114; bugfix on 0.2.2.2-alpha.
  2447. - Use onion service circuits (and other circuits longer than 3 hops)
  2448. to calculate a circuit build timeout. Previously, Tor only
  2449. calculated its build timeout based on circuits that planned to be
  2450. exactly 3 hops long. With this change, we include measurements
  2451. from all circuits at the point where they complete their third
  2452. hop. Fixes bug 23100; bugfix on 0.2.2.2-alpha.
  2453. o Minor bugfixes (relay, crash, backport from 0.3.4.1-alpha):
  2454. - Avoid a crash when running with DirPort set but ORPort turned off.
  2455. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
  2456. o Minor bugfixes (Rust FFI):
  2457. - Fix a minor memory leak which would happen whenever the C code
  2458. would call the Rust implementation of
  2459. protover_get_supported_protocols(). This was due to the C version
  2460. returning a static string, whereas the Rust version newly allocated
  2461. a CString to pass across the FFI boundary. Consequently, the C
  2462. code was not expecting to need to free() what it was given. Fixes
  2463. bug 25127; bugfix on 0.3.2.1-alpha.
  2464. o Minor bugfixes (spelling):
  2465. - Use the "misspell" tool to detect and fix typos throughout the
  2466. source code. Fixes bug 23650; bugfix on various versions of Tor.
  2467. Patch from Deepesh Pathak.
  2468. o Minor bugfixes (testing):
  2469. - Avoid intermittent test failures due to a test that had relied on
  2470. onion service introduction point creation finishing within 5
  2471. seconds of real clock time. Fixes bug 25450; bugfix
  2472. on 0.3.1.3-alpha.
  2473. - Give out Exit flags in bootstrapping networks. Fixes bug 24137;
  2474. bugfix on 0.2.3.1-alpha.
  2475. o Minor bugfixes (unit test, monotonic time):
  2476. - Increase a constant (1msec to 10msec) in the monotonic time test
  2477. that makes sure the nsec/usec/msec times read are synchronized.
  2478. This change was needed to accommodate slow systems like armel or
  2479. when the clock_gettime() is not a VDSO on the running kernel.
  2480. Fixes bug 25113; bugfix on 0.2.9.1.
  2481. o Code simplification and refactoring:
  2482. - Move the list of default directory authorities to its own file.
  2483. Closes ticket 24854. Patch by "beastr0".
  2484. - Remove the old (deterministic) directory retry logic entirely:
  2485. We've used exponential backoff exclusively for some time. Closes
  2486. ticket 23814.
  2487. - Remove the unused nodelist_recompute_all_hsdir_indices(). Closes
  2488. ticket 25108.
  2489. - Remove a series of counters used to track circuit extend attempts
  2490. and connection status but that in reality we aren't using for
  2491. anything other than stats logged by a SIGUSR1 signal. Closes
  2492. ticket 25163.
  2493. - Remove /usr/athena from search path in configure.ac. Closes
  2494. ticket 24363.
  2495. - Remove duplicate code in node_has_curve25519_onion_key() and
  2496. node_get_curve25519_onion_key(), and add a check for a zero
  2497. microdesc curve25519 onion key. Closes ticket 23966, patch by
  2498. "aruna1234" and teor.
  2499. - Rewrite channel_rsa_id_group_set_badness to reduce temporary
  2500. memory allocations with large numbers of OR connections (e.g.
  2501. relays). Closes ticket 24119.
  2502. - Separate the function that deletes ephemeral files when Tor
  2503. stops gracefully.
  2504. - Small changes to Tor's buf_t API to make it suitable for use as a
  2505. general-purpose safe string constructor. Closes ticket 22342.
  2506. - Switch -Wnormalized=id to -Wnormalized=nfkc in configure.ac to
  2507. avoid source code identifier confusion. Closes ticket 24467.
  2508. - The tor_git_revision[] constant no longer needs to be redeclared
  2509. by everything that links against the rest of Tor. Done as part of
  2510. ticket 23845, to simplify our external API.
  2511. - We make extend_info_from_node() use node_get_curve25519_onion_key()
  2512. introduced in ticket 23577 to access the curve25519 public keys
  2513. rather than accessing it directly. Closes ticket 23760. Patch by
  2514. Neel Chauhan.
  2515. - Add a function to log channels' scheduler state changes to aid
  2516. debugging efforts. Closes ticket 24531.
  2517. o Documentation:
  2518. - Improved the documentation of AccountingStart parameter. Closes
  2519. ticket 23635.
  2520. - Update the documentation for "Log" to include the current list of
  2521. logging domains. Closes ticket 25378.
  2522. - Add documentation on how to build tor with Rust dependencies
  2523. without having to be online. Closes ticket 22907; bugfix
  2524. on 0.3.0.3-alpha.
  2525. - Clarify the behavior of RelayBandwidth{Rate,Burst} with client
  2526. traffic. Closes ticket 24318.
  2527. - Document that OutboundBindAddress doesn't apply to DNS requests.
  2528. Closes ticket 22145. Patch from Aruna Maurya.
  2529. o Code simplification and refactoring (channels):
  2530. - Remove the incoming and outgoing channel queues. These were never
  2531. used, but still took up a step in our fast path.
  2532. - The majority of the channel unit tests have been rewritten and the
  2533. code coverage has now been raised to 83.6% for channel.c. Closes
  2534. ticket 23709.
  2535. - Remove other dead code from the channel subsystem: All together,
  2536. this cleanup has removed more than 1500 lines of code overall and
  2537. adding very little except for unit test.
  2538. o Code simplification and refactoring (circuit rendezvous):
  2539. - Split the client-side rendezvous circuit lookup into two
  2540. functions: one that returns only established circuits and another
  2541. that returns all kinds of circuits. Closes ticket 23459.
  2542. o Code simplification and refactoring (controller):
  2543. - Make most of the variables in networkstatus_getinfo_by_purpose()
  2544. const. Implements ticket 24489.
  2545. o Documentation (backport from 0.3.4.1-alpha):
  2546. - Correct an IPv6 error in the documentation for ExitPolicy. Closes
  2547. ticket 25857. Patch from "CTassisF".
  2548. o Documentation (man page):
  2549. - The HiddenServiceVersion torrc option accepts only one number:
  2550. either version 2 or 3. Closes ticket 25026; bugfix
  2551. on 0.3.2.2-alpha.
  2552. o Documentation (manpage, denial of service):
  2553. - Provide more detail about the denial-of-service options, by
  2554. listing each mitigation and explaining how they relate. Closes
  2555. ticket 25248.
  2556. Changes in version 0.3.1.10 - 2018-03-03
  2557. Tor 0.3.1.10 backports a number of bugfixes, including important fixes for
  2558. security issues.
  2559. It includes an important security fix for a remote crash attack
  2560. against directory authorities, tracked as TROVE-2018-001.
  2561. This release also backports our new system for improved resistance to
  2562. denial-of-service attacks against relays.
  2563. This release also fixes several minor bugs and annoyances from
  2564. earlier releases.
  2565. All directory authorities should upgrade to one of the versions
  2566. released today. Relays running 0.3.1.x may wish to update to one of
  2567. the versions released today, for the DoS mitigations.
  2568. Please note: according to our release calendar, Tor 0.3.1 will no
  2569. longer be supported after 1 July 2018. If you will be running Tor
  2570. after that date, you should make sure to plan to upgrade to the latest
  2571. stable version, or downgrade to 0.2.9 (which will receive long-term
  2572. support).
  2573. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  2574. - Fix a protocol-list handling bug that could be used to remotely crash
  2575. directory authorities with a null-pointer exception. Fixes bug 25074;
  2576. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  2577. CVE-2018-0490.
  2578. o Major features (denial-of-service mitigation, backport from 0.3.3.2-alpha):
  2579. - Give relays some defenses against the recent network overload. We
  2580. start with three defenses (default parameters in parentheses).
  2581. First: if a single client address makes too many concurrent
  2582. connections (>100), hang up on further connections. Second: if a
  2583. single client address makes circuits too quickly (more than 3 per
  2584. second, with an allowed burst of 90) while also having too many
  2585. connections open (3), refuse new create cells for the next while
  2586. (1-2 hours). Third: if a client asks to establish a rendezvous
  2587. point to you directly, ignore the request. These defenses can be
  2588. manually controlled by new torrc options, but relays will also
  2589. take guidance from consensus parameters, so there's no need to
  2590. configure anything manually. Implements ticket 24902.
  2591. o Minor features (linux seccomp2 sandbox, backport from 0.3.2.5-alpha):
  2592. - Update the sandbox rules so that they should now work correctly
  2593. with Glibc 2.26. Closes ticket 24315.
  2594. o Major bugfixes (onion services, retry behavior, backport from 0.3.3.1-alpha):
  2595. - Fix an "off by 2" error in counting rendezvous failures on the
  2596. onion service side. While we thought we would stop the rendezvous
  2597. attempt after one failed circuit, we were actually making three
  2598. circuit attempts before giving up. Now switch to a default of 2,
  2599. and allow the consensus parameter "hs_service_max_rdv_failures" to
  2600. override. Fixes bug 24895; bugfix on 0.0.6.
  2601. o Major bugfixes (protocol versions, backport from 0.3.3.2-alpha):
  2602. - Add Link protocol version 5 to the supported protocols list. Fixes
  2603. bug 25070; bugfix on 0.3.1.1-alpha.
  2604. o Major bugfixes (relay, backport from 0.3.3.1-alpha):
  2605. - Fix a set of false positives where relays would consider
  2606. connections to other relays as being client-only connections (and
  2607. thus e.g. deserving different link padding schemes) if those
  2608. relays fell out of the consensus briefly. Now we look only at the
  2609. initial handshake and whether the connection authenticated as a
  2610. relay. Fixes bug 24898; bugfix on 0.3.1.1-alpha.
  2611. o Minor features (denial-of-service avoidance, backport from 0.3.3.2-alpha):
  2612. - Make our OOM handler aware of the geoip client history cache so it
  2613. doesn't fill up the memory. This check is important for IPv6 and
  2614. our DoS mitigation subsystem. Closes ticket 25122.
  2615. o Minor feature (relay statistics, backport from 0.3.2.6-alpha):
  2616. - Change relay bandwidth reporting stats interval from 4 hours to 24
  2617. hours in order to reduce the efficiency of guard discovery
  2618. attacks. Fixes ticket 23856.
  2619. o Minor features (compatibility, OpenSSL, backport from 0.3.3.3-alpha):
  2620. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  2621. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  2622. since they neither disabled TLS 1.3 nor enabled any of the
  2623. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  2624. Closes ticket 24978.
  2625. o Minor features (fallback directory mirrors, backport from 0.3.2.9):
  2626. - The fallback directory list has been re-generated based on the
  2627. current status of the network. Tor uses fallback directories to
  2628. bootstrap when it doesn't yet have up-to-date directory
  2629. information. Closes ticket 24801.
  2630. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  2631. prefer to bootstrap from fallback directory mirrors. This is a
  2632. follow-up to 24679, which removed weights from the default
  2633. fallbacks. Implements ticket 24681.
  2634. o Minor features (geoip):
  2635. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  2636. Country database.
  2637. o Minor bugfix (channel connection, backport from 0.3.3.2-alpha):
  2638. - Use the actual observed address of an incoming relay connection,
  2639. not the canonical address of the relay from its descriptor, when
  2640. making decisions about how to handle the incoming connection.
  2641. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  2642. o Minor bugfix (directory authority, backport from 0.3.3.2-alpha):
  2643. - Directory authorities, when refusing a descriptor from a rejected
  2644. relay, now explicitly tell the relay (in its logs) to set a valid
  2645. ContactInfo address and contact the bad-relays@ mailing list.
  2646. Fixes bug 25170; bugfix on 0.2.9.1.
  2647. o Minor bugfixes (address selection, backport from 0.3.2.9):
  2648. - When the fascist_firewall_choose_address_ functions don't find a
  2649. reachable address, set the returned address to the null address
  2650. and port. This is a precautionary measure, because some callers do
  2651. not check the return value. Fixes bug 24736; bugfix
  2652. on 0.2.8.2-alpha.
  2653. o Major bugfixes (bootstrapping, backport from 0.3.2.5-alpha):
  2654. - Fetch descriptors aggressively whenever we lack enough to build
  2655. circuits, regardless of how many descriptors we are missing.
  2656. Previously, we would delay launching the fetch when we had fewer
  2657. than 15 missing descriptors, even if some of those descriptors
  2658. were blocking circuits from building. Fixes bug 23985; bugfix on
  2659. 0.1.1.11-alpha. The effects of this bug became worse in
  2660. 0.3.0.3-alpha, when we began treating missing descriptors from our
  2661. primary guards as a reason to delay circuits.
  2662. - Don't try fetching microdescriptors from relays that have failed
  2663. to deliver them in the past. Fixes bug 23817; bugfix
  2664. on 0.3.0.1-alpha.
  2665. o Minor bugfixes (compilation, backport from 0.3.2.7-rc):
  2666. - Fix a signed/unsigned comparison warning introduced by our fix to
  2667. TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
  2668. o Minor bugfixes (control port, linux seccomp2 sandbox, backport from 0.3.2.5-alpha):
  2669. - Avoid a crash when attempting to use the seccomp2 sandbox together
  2670. with the OwningControllerProcess feature. Fixes bug 24198; bugfix
  2671. on 0.2.5.1-alpha.
  2672. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  2673. - Fix a possible crash on malformed consensus. If a consensus had
  2674. contained an unparseable protocol line, it could have made clients
  2675. and relays crash with a null-pointer exception. To exploit this
  2676. issue, however, an attacker would need to be able to subvert the
  2677. directory authority system. Fixes bug 25251; bugfix on
  2678. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  2679. o Minor bugfixes (directory cache, backport from 0.3.2.5-alpha):
  2680. - Recover better from empty or corrupt files in the consensus cache
  2681. directory. Fixes bug 24099; bugfix on 0.3.1.1-alpha.
  2682. - When a consensus diff calculation is only partially successful,
  2683. only record the successful parts as having succeeded. Partial
  2684. success can happen if (for example) one compression method fails
  2685. but the others succeed. Previously we misrecorded all the
  2686. calculations as having succeeded, which would later cause a
  2687. nonfatal assertion failure. Fixes bug 24086; bugfix
  2688. on 0.3.1.1-alpha.
  2689. o Minor bugfixes (entry guards, backport from 0.3.2.3-alpha):
  2690. - Tor now updates its guard state when it reads a consensus
  2691. regardless of whether it's missing descriptors. That makes tor use
  2692. its primary guards to fetch descriptors in some edge cases where
  2693. it would previously have used fallback directories. Fixes bug
  2694. 23862; bugfix on 0.3.0.1-alpha.
  2695. o Minor bugfixes (logging, backport from 0.3.3.2-alpha):
  2696. - Don't treat inability to store a cached consensus object as a bug:
  2697. it can happen normally when we are out of disk space. Fixes bug
  2698. 24859; bugfix on 0.3.1.1-alpha.
  2699. o Minor bugfixes (memory usage, backport from 0.3.2.8-rc):
  2700. - When queuing DESTROY cells on a channel, only queue the circuit-id
  2701. and reason fields: not the entire 514-byte cell. This fix should
  2702. help mitigate any bugs or attacks that fill up these queues, and
  2703. free more RAM for other uses. Fixes bug 24666; bugfix
  2704. on 0.2.5.1-alpha.
  2705. o Minor bugfixes (network layer, backport from 0.3.2.5-alpha):
  2706. - When closing a connection via close_connection_immediately(), we
  2707. mark it as "not blocked on bandwidth", to prevent later calls from
  2708. trying to unblock it, and give it permission to read. This fixes a
  2709. backtrace warning that can happen on relays under various
  2710. circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
  2711. o Minor bugfixes (path selection, backport from 0.3.2.4-alpha):
  2712. - When selecting relays by bandwidth, avoid a rounding error that
  2713. could sometimes cause load to be imbalanced incorrectly.
  2714. Previously, we would always round upwards; now, we round towards
  2715. the nearest integer. This had the biggest effect when a relay's
  2716. weight adjustments should have given it weight 0, but it got
  2717. weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
  2718. - When calculating the fraction of nodes that have descriptors, and
  2719. all nodes in the network have zero bandwidths, count the number of
  2720. nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
  2721. - Actually log the total bandwidth in compute_weighted_bandwidths().
  2722. Fixes bug 24170; bugfix on 0.2.4.3-alpha.
  2723. o Minor bugfixes (performance, fragile-hardening, backport from 0.3.3.1-alpha):
  2724. - Improve the performance of our consensus-diff application code
  2725. when Tor is built with the --enable-fragile-hardening option set.
  2726. Fixes bug 24826; bugfix on 0.3.1.1-alpha.
  2727. o Minor bugfixes (OSX, backport from 0.3.3.1-alpha):
  2728. - Don't exit the Tor process if setrlimit() fails to change the file
  2729. limit (which can happen sometimes on some versions of OSX). Fixes
  2730. bug 21074; bugfix on 0.0.9pre5.
  2731. o Minor bugfixes (portability, msvc, backport from 0.3.2.9):
  2732. - Fix a bug in the bit-counting parts of our timing-wheel code on
  2733. MSVC. (Note that MSVC is still not a supported build platform, due
  2734. to cyptographic timing channel risks.) Fixes bug 24633; bugfix
  2735. on 0.2.9.1-alpha.
  2736. o Minor bugfixes (relay, partial backport):
  2737. - Make the internal channel_is_client() function look at what sort
  2738. of connection handshake the other side used, rather than whether
  2739. the other side ever sent a create_fast cell to us. Backports part
  2740. of the fixes from bugs 22805 and 24898.
  2741. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  2742. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  2743. 0.2.9.4-alpha.
  2744. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  2745. bugfix on 0.2.9.4-alpha.
  2746. o Code simplification and refactoring (backport from 0.3.3.3-alpha):
  2747. - Update the "rust dependencies" submodule to be a project-level
  2748. repository, rather than a user repository. Closes ticket 25323.
  2749. Changes in version 0.2.9.15 - 2018-03-03
  2750. Tor 0.2.9.15 backports important security and stability bugfixes from
  2751. later Tor releases.
  2752. It includes an important security fix for a remote crash attack
  2753. against directory authorities, tracked as TROVE-2018-001.
  2754. This release also backports our new system for improved resistance to
  2755. denial-of-service attacks against relays.
  2756. This release also fixes several minor bugs and annoyances from
  2757. earlier releases.
  2758. All directory authorities should upgrade to one of the versions
  2759. released today. Relays running 0.2.9.x may wish to update to one of
  2760. the versions released today, for the DoS mitigations.
  2761. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  2762. - Fix a protocol-list handling bug that could be used to remotely crash
  2763. directory authorities with a null-pointer exception. Fixes bug 25074;
  2764. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  2765. CVE-2018-0490.
  2766. o Major features (denial-of-service mitigation):
  2767. - Give relays some defenses against the recent network overload. We
  2768. start with three defenses (default parameters in parentheses).
  2769. First: if a single client address makes too many concurrent
  2770. connections (>100), hang up on further connections. Second: if a
  2771. single client address makes circuits too quickly (more than 3 per
  2772. second, with an allowed burst of 90) while also having too many
  2773. connections open (3), refuse new create cells for the next while
  2774. (1-2 hours). Third: if a client asks to establish a rendezvous
  2775. point to you directly, ignore the request. These defenses can be
  2776. manually controlled by new torrc options, but relays will also
  2777. take guidance from consensus parameters, so there's no need to
  2778. configure anything manually. Implements ticket 24902.
  2779. o Major bugfixes (bootstrapping):
  2780. - Fetch descriptors aggressively whenever we lack enough to build
  2781. circuits, regardless of how many descriptors we are missing.
  2782. Previously, we would delay launching the fetch when we had fewer
  2783. than 15 missing descriptors, even if some of those descriptors
  2784. were blocking circuits from building. Fixes bug 23985; bugfix on
  2785. 0.1.1.11-alpha. The effects of this bug became worse in
  2786. 0.3.0.3-alpha, when we began treating missing descriptors from our
  2787. primary guards as a reason to delay circuits.
  2788. o Major bugfixes (onion services, retry behavior):
  2789. - Fix an "off by 2" error in counting rendezvous failures on the
  2790. onion service side. While we thought we would stop the rendezvous
  2791. attempt after one failed circuit, we were actually making three
  2792. circuit attempts before giving up. Now switch to a default of 2,
  2793. and allow the consensus parameter "hs_service_max_rdv_failures" to
  2794. override. Fixes bug 24895; bugfix on 0.0.6.
  2795. o Minor feature (relay statistics):
  2796. - Change relay bandwidth reporting stats interval from 4 hours to 24
  2797. hours in order to reduce the efficiency of guard discovery
  2798. attacks. Fixes ticket 23856.
  2799. o Minor features (compatibility, OpenSSL):
  2800. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  2801. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  2802. since they neither disabled TLS 1.3 nor enabled any of the
  2803. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  2804. Closes ticket 24978.
  2805. o Minor features (denial-of-service avoidance):
  2806. - Make our OOM handler aware of the geoip client history cache so it
  2807. doesn't fill up the memory. This check is important for IPv6 and
  2808. our DoS mitigation subsystem. Closes ticket 25122.
  2809. o Minor features (fallback directory mirrors):
  2810. - The fallback directory list has been re-generated based on the
  2811. current status of the network. Tor uses fallback directories to
  2812. bootstrap when it doesn't yet have up-to-date directory
  2813. information. Closes ticket 24801.
  2814. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  2815. prefer to bootstrap from fallback directory mirrors. This is a
  2816. follow-up to 24679, which removed weights from the default
  2817. fallbacks. Implements ticket 24681.
  2818. o Minor features (geoip):
  2819. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  2820. Country database.
  2821. o Minor features (linux seccomp2 sandbox):
  2822. - Update the sandbox rules so that they should now work correctly
  2823. with Glibc 2.26. Closes ticket 24315.
  2824. o Minor bugfix (channel connection):
  2825. - Use the actual observed address of an incoming relay connection,
  2826. not the canonical address of the relay from its descriptor, when
  2827. making decisions about how to handle the incoming connection.
  2828. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  2829. o Minor bugfix (directory authority):
  2830. - Directory authorities, when refusing a descriptor from a rejected
  2831. relay, now explicitly tell the relay (in its logs) to set a valid
  2832. ContactInfo address and contact the bad-relays@ mailing list.
  2833. Fixes bug 25170; bugfix on 0.2.9.1.
  2834. o Minor bugfixes (address selection):
  2835. - When the fascist_firewall_choose_address_ functions don't find a
  2836. reachable address, set the returned address to the null address
  2837. and port. This is a precautionary measure, because some callers do
  2838. not check the return value. Fixes bug 24736; bugfix
  2839. on 0.2.8.2-alpha.
  2840. o Minor bugfixes (compilation):
  2841. - Fix a signed/unsigned comparison warning introduced by our fix to
  2842. TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
  2843. o Minor bugfixes (control port, linux seccomp2 sandbox):
  2844. - Avoid a crash when attempting to use the seccomp2 sandbox together
  2845. with the OwningControllerProcess feature. Fixes bug 24198; bugfix
  2846. on 0.2.5.1-alpha.
  2847. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  2848. - Fix a possible crash on malformed consensus. If a consensus had
  2849. contained an unparseable protocol line, it could have made clients
  2850. and relays crash with a null-pointer exception. To exploit this
  2851. issue, however, an attacker would need to be able to subvert the
  2852. directory authority system. Fixes bug 25251; bugfix on
  2853. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  2854. o Minor bugfixes (memory usage):
  2855. - When queuing DESTROY cells on a channel, only queue the circuit-id
  2856. and reason fields: not the entire 514-byte cell. This fix should
  2857. help mitigate any bugs or attacks that fill up these queues, and
  2858. free more RAM for other uses. Fixes bug 24666; bugfix
  2859. on 0.2.5.1-alpha.
  2860. o Minor bugfixes (network layer):
  2861. - When closing a connection via close_connection_immediately(), we
  2862. mark it as "not blocked on bandwidth", to prevent later calls from
  2863. trying to unblock it, and give it permission to read. This fixes a
  2864. backtrace warning that can happen on relays under various
  2865. circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
  2866. o Minor bugfixes (OSX):
  2867. - Don't exit the Tor process if setrlimit() fails to change the file
  2868. limit (which can happen sometimes on some versions of OSX). Fixes
  2869. bug 21074; bugfix on 0.0.9pre5.
  2870. o Minor bugfixes (path selection):
  2871. - When selecting relays by bandwidth, avoid a rounding error that
  2872. could sometimes cause load to be imbalanced incorrectly.
  2873. Previously, we would always round upwards; now, we round towards
  2874. the nearest integer. This had the biggest effect when a relay's
  2875. weight adjustments should have given it weight 0, but it got
  2876. weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
  2877. - When calculating the fraction of nodes that have descriptors, and
  2878. all nodes in the network have zero bandwidths, count the number of
  2879. nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
  2880. - Actually log the total bandwidth in compute_weighted_bandwidths().
  2881. Fixes bug 24170; bugfix on 0.2.4.3-alpha.
  2882. o Minor bugfixes (portability, msvc):
  2883. - Fix a bug in the bit-counting parts of our timing-wheel code on
  2884. MSVC. (Note that MSVC is still not a supported build platform, due
  2885. to cryptographic timing channel risks.) Fixes bug 24633; bugfix
  2886. on 0.2.9.1-alpha.
  2887. o Minor bugfixes (relay):
  2888. - Make the internal channel_is_client() function look at what sort
  2889. of connection handshake the other side used, rather than whether
  2890. the other side ever sent a create_fast cell to us. Backports part
  2891. of the fixes from bugs 22805 and 24898.
  2892. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  2893. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  2894. 0.2.9.4-alpha.
  2895. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  2896. bugfix on 0.2.9.4-alpha.
  2897. Changes in version 0.3.2.10 - 2018-03-03
  2898. Tor 0.3.2.10 is the second stable release in the 0.3.2 series. It
  2899. backports a number of bugfixes, including important fixes for security
  2900. issues.
  2901. It includes an important security fix for a remote crash attack
  2902. against directory authorities, tracked as TROVE-2018-001.
  2903. Additionally, it backports a fix for a bug whose severity we have
  2904. upgraded: Bug 24700, which was fixed in 0.3.3.2-alpha, can be remotely
  2905. triggered in order to crash relays with a use-after-free pattern. As
  2906. such, we are now tracking that bug as TROVE-2018-002 and
  2907. CVE-2018-0491, and backporting it to earlier releases. This bug
  2908. affected versions 0.3.2.1-alpha through 0.3.2.9, as well as version
  2909. 0.3.3.1-alpha.
  2910. This release also backports our new system for improved resistance to
  2911. denial-of-service attacks against relays.
  2912. This release also fixes several minor bugs and annoyances from
  2913. earlier releases.
  2914. Relays running 0.3.2.x SHOULD upgrade to one of the versions released
  2915. today, for the fix to TROVE-2018-002. Directory authorities should
  2916. also upgrade. (Relays on earlier versions might want to update too for
  2917. the DoS mitigations.)
  2918. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  2919. - Fix a protocol-list handling bug that could be used to remotely crash
  2920. directory authorities with a null-pointer exception. Fixes bug 25074;
  2921. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  2922. CVE-2018-0490.
  2923. o Major bugfixes (scheduler, KIST, denial-of-service, backport from 0.3.3.2-alpha):
  2924. - Avoid adding the same channel twice in the KIST scheduler pending
  2925. list, which could lead to remote denial-of-service use-after-free
  2926. attacks against relays. Fixes bug 24700; bugfix on 0.3.2.1-alpha.
  2927. o Major features (denial-of-service mitigation, backport from 0.3.3.2-alpha):
  2928. - Give relays some defenses against the recent network overload. We
  2929. start with three defenses (default parameters in parentheses).
  2930. First: if a single client address makes too many concurrent
  2931. connections (>100), hang up on further connections. Second: if a
  2932. single client address makes circuits too quickly (more than 3 per
  2933. second, with an allowed burst of 90) while also having too many
  2934. connections open (3), refuse new create cells for the next while
  2935. (1-2 hours). Third: if a client asks to establish a rendezvous
  2936. point to you directly, ignore the request. These defenses can be
  2937. manually controlled by new torrc options, but relays will also
  2938. take guidance from consensus parameters, so there's no need to
  2939. configure anything manually. Implements ticket 24902.
  2940. o Major bugfixes (onion services, retry behavior, backport from 0.3.3.1-alpha):
  2941. - Fix an "off by 2" error in counting rendezvous failures on the
  2942. onion service side. While we thought we would stop the rendezvous
  2943. attempt after one failed circuit, we were actually making three
  2944. circuit attempts before giving up. Now switch to a default of 2,
  2945. and allow the consensus parameter "hs_service_max_rdv_failures" to
  2946. override. Fixes bug 24895; bugfix on 0.0.6.
  2947. - New-style (v3) onion services now obey the "max rendezvous circuit
  2948. attempts" logic. Previously they would make as many rendezvous
  2949. circuit attempts as they could fit in the MAX_REND_TIMEOUT second
  2950. window before giving up. Fixes bug 24894; bugfix on 0.3.2.1-alpha.
  2951. o Major bugfixes (protocol versions, backport from 0.3.3.2-alpha):
  2952. - Add Link protocol version 5 to the supported protocols list. Fixes
  2953. bug 25070; bugfix on 0.3.1.1-alpha.
  2954. o Major bugfixes (relay, backport from 0.3.3.1-alpha):
  2955. - Fix a set of false positives where relays would consider
  2956. connections to other relays as being client-only connections (and
  2957. thus e.g. deserving different link padding schemes) if those
  2958. relays fell out of the consensus briefly. Now we look only at the
  2959. initial handshake and whether the connection authenticated as a
  2960. relay. Fixes bug 24898; bugfix on 0.3.1.1-alpha.
  2961. o Major bugfixes (scheduler, consensus, backport from 0.3.3.2-alpha):
  2962. - The scheduler subsystem was failing to promptly notice changes in
  2963. consensus parameters, making it harder to switch schedulers
  2964. network-wide. Fixes bug 24975; bugfix on 0.3.2.1-alpha.
  2965. o Minor features (denial-of-service avoidance, backport from 0.3.3.2-alpha):
  2966. - Make our OOM handler aware of the geoip client history cache so it
  2967. doesn't fill up the memory. This check is important for IPv6 and
  2968. our DoS mitigation subsystem. Closes ticket 25122.
  2969. o Minor features (compatibility, OpenSSL, backport from 0.3.3.3-alpha):
  2970. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  2971. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  2972. since they neither disabled TLS 1.3 nor enabled any of the
  2973. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  2974. Closes ticket 24978.
  2975. o Minor features (geoip):
  2976. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  2977. Country database.
  2978. o Minor features (logging, diagnostic, backport from 0.3.3.2-alpha):
  2979. - When logging a failure to create an onion service's descriptor,
  2980. also log what the problem with the descriptor was. Diagnostic
  2981. for ticket 24972.
  2982. o Minor bugfix (channel connection, backport from 0.3.3.2-alpha):
  2983. - Use the actual observed address of an incoming relay connection,
  2984. not the canonical address of the relay from its descriptor, when
  2985. making decisions about how to handle the incoming connection.
  2986. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  2987. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  2988. - Fix a possible crash on malformed consensus. If a consensus had
  2989. contained an unparseable protocol line, it could have made clients
  2990. and relays crash with a null-pointer exception. To exploit this
  2991. issue, however, an attacker would need to be able to subvert the
  2992. directory authority system. Fixes bug 25251; bugfix on
  2993. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  2994. o Minor bugfix (directory authority, backport from 0.3.3.2-alpha):
  2995. - Directory authorities, when refusing a descriptor from a rejected
  2996. relay, now explicitly tell the relay (in its logs) to set a valid
  2997. ContactInfo address and contact the bad-relays@ mailing list.
  2998. Fixes bug 25170; bugfix on 0.2.9.1.
  2999. o Minor bugfixes (build, rust, backport from 0.3.3.1-alpha):
  3000. - When building with Rust on OSX, link against libresolv, to work
  3001. around the issue at https://github.com/rust-lang/rust/issues/46797.
  3002. Fixes bug 24652; bugfix on 0.3.1.1-alpha.
  3003. o Minor bugfixes (onion services, backport from 0.3.3.2-alpha):
  3004. - Remove a BUG() statement when a client fetches an onion descriptor
  3005. that has a lower revision counter than the one in its cache. This
  3006. can happen in normal circumstances due to HSDir desync. Fixes bug
  3007. 24976; bugfix on 0.3.2.1-alpha.
  3008. o Minor bugfixes (logging, backport from 0.3.3.2-alpha):
  3009. - Don't treat inability to store a cached consensus object as a bug:
  3010. it can happen normally when we are out of disk space. Fixes bug
  3011. 24859; bugfix on 0.3.1.1-alpha.
  3012. o Minor bugfixes (performance, fragile-hardening, backport from 0.3.3.1-alpha):
  3013. - Improve the performance of our consensus-diff application code
  3014. when Tor is built with the --enable-fragile-hardening option set.
  3015. Fixes bug 24826; bugfix on 0.3.1.1-alpha.
  3016. o Minor bugfixes (OSX, backport from 0.3.3.1-alpha):
  3017. - Don't exit the Tor process if setrlimit() fails to change the file
  3018. limit (which can happen sometimes on some versions of OSX). Fixes
  3019. bug 21074; bugfix on 0.0.9pre5.
  3020. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  3021. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  3022. 0.2.9.4-alpha.
  3023. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  3024. bugfix on 0.2.9.4-alpha.
  3025. o Minor bugfixes (testing, backport from 0.3.3.1-alpha):
  3026. - Fix a memory leak in the scheduler/loop_kist unit test. Fixes bug
  3027. 25005; bugfix on 0.3.2.7-rc.
  3028. o Minor bugfixes (v3 onion services, backport from 0.3.3.2-alpha):
  3029. - Look at the "HSRend" protocol version, not the "HSDir" protocol
  3030. version, when deciding whether a consensus entry can support the
  3031. v3 onion service protocol as a rendezvous point. Fixes bug 25105;
  3032. bugfix on 0.3.2.1-alpha.
  3033. o Code simplification and refactoring (backport from 0.3.3.3-alpha):
  3034. - Update the "rust dependencies" submodule to be a project-level
  3035. repository, rather than a user repository. Closes ticket 25323.
  3036. o Documentation (backport from 0.3.3.1-alpha)
  3037. - Document that operators who run more than one relay or bridge are
  3038. expected to set MyFamily and ContactInfo correctly. Closes
  3039. ticket 24526.
  3040. Changes in version 0.3.2.9 - 2018-01-09
  3041. Tor 0.3.2.9 is the first stable release in the 0.3.2 series.
  3042. The 0.3.2 series includes our long-anticipated new onion service
  3043. design, with numerous security features. (For more information, see
  3044. our blog post at https://blog.torproject.org/fall-harvest.) We also
  3045. have a new circuit scheduler algorithm for improved performance on
  3046. relays everywhere (see https://blog.torproject.org/kist-and-tell),
  3047. along with many smaller features and bugfixes.
  3048. Per our stable release policy, we plan to support each stable release
  3049. series for at least the next nine months, or for three months after
  3050. the first stable release of the next series: whichever is longer. If
  3051. you need a release with long-term support, we recommend that you stay
  3052. with the 0.2.9 series.
  3053. Below is a list of the changes since 0.3.1.7. For a list of all
  3054. changes since 0.3.2.8-rc, see the ChangeLog file.
  3055. o Directory authority changes:
  3056. - Add "Bastet" as a ninth directory authority to the default list.
  3057. Closes ticket 23910.
  3058. - The directory authority "Longclaw" has changed its IP address.
  3059. Closes ticket 23592.
  3060. - Remove longclaw's IPv6 address, as it will soon change. Authority
  3061. IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
  3062. 3/8 directory authorities with IPv6 addresses, but there are also
  3063. 52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
  3064. - Add an IPv6 address for the "bastet" directory authority. Closes
  3065. ticket 24394.
  3066. o Major features (next-generation onion services):
  3067. - Tor now supports the next-generation onion services protocol for
  3068. clients and services! As part of this release, the core of
  3069. proposal 224 has been implemented and is available for
  3070. experimentation and testing by our users. This newer version of
  3071. onion services ("v3") features many improvements over the legacy
  3072. system, including:
  3073. a) Better crypto (replaced SHA1/DH/RSA1024
  3074. with SHA3/ed25519/curve25519)
  3075. b) Improved directory protocol, leaking much less information to
  3076. directory servers.
  3077. c) Improved directory protocol, with smaller surface for
  3078. targeted attacks.
  3079. d) Better onion address security against impersonation.
  3080. e) More extensible introduction/rendezvous protocol.
  3081. f) A cleaner and more modular codebase.
  3082. You can identify a next-generation onion address by its length:
  3083. they are 56 characters long, as in
  3084. "4acth47i6kxnvkewtm6q7ib2s3ufpo5sqbsnzjpbi7utijcltosqemad.onion".
  3085. In the future, we will release more options and features for v3
  3086. onion services, but we first need a testing period, so that the
  3087. current codebase matures and becomes more robust. Planned features
  3088. include: offline keys, advanced client authorization, improved
  3089. guard algorithms, and statistics. For full details, see
  3090. proposal 224.
  3091. Legacy ("v2") onion services will still work for the foreseeable
  3092. future, and will remain the default until this new codebase gets
  3093. tested and hardened. Service operators who want to experiment with
  3094. the new system can use the 'HiddenServiceVersion 3' torrc
  3095. directive along with the regular onion service configuration
  3096. options. For more information, see our blog post at
  3097. "https://blog.torproject.org/fall-harvest". Enjoy!
  3098. o Major feature (scheduler, channel):
  3099. - Tor now uses new schedulers to decide which circuits should
  3100. deliver cells first, in order to improve congestion at relays. The
  3101. first type is called "KIST" ("Kernel Informed Socket Transport"),
  3102. and is only available on Linux-like systems: it uses feedback from
  3103. the kernel to prevent the kernel's TCP buffers from growing too
  3104. full. The second new scheduler type is called "KISTLite": it
  3105. behaves the same as KIST, but runs on systems without kernel
  3106. support for inspecting TCP implementation details. The old
  3107. scheduler is still available, under the name "Vanilla". To change
  3108. the default scheduler preference order, use the new "Schedulers"
  3109. option. (The default preference order is "KIST,KISTLite,Vanilla".)
  3110. Matt Traudt implemented KIST, based on research by Rob Jansen,
  3111. John Geddes, Christ Wacek, Micah Sherr, and Paul Syverson. For
  3112. more information, see the design paper at
  3113. http://www.robgjansen.com/publications/kist-sec2014.pdf and the
  3114. followup implementation paper at https://arxiv.org/abs/1709.01044.
  3115. Closes ticket 12541. For more information, see our blog post at
  3116. "https://blog.torproject.org/kist-and-tell".
  3117. o Major bugfixes (security, general):
  3118. - Fix a denial of service bug where an attacker could use a
  3119. malformed directory object to cause a Tor instance to pause while
  3120. OpenSSL would try to read a passphrase from the terminal. (Tor
  3121. instances run without a terminal, which is the case for most Tor
  3122. packages, are not impacted.) Fixes bug 24246; bugfix on every
  3123. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  3124. Found by OSS-Fuzz as testcase 6360145429790720.
  3125. o Major bugfixes (security, directory authority):
  3126. - Fix a denial of service issue where an attacker could crash a
  3127. directory authority using a malformed router descriptor. Fixes bug
  3128. 24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
  3129. and CVE-2017-8820.
  3130. o Major bugfixes (security, onion service v2):
  3131. - Fix a use-after-free error that could crash v2 Tor onion services
  3132. when they failed to open circuits while expiring introduction
  3133. points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
  3134. also tracked as TROVE-2017-013 and CVE-2017-8823.
  3135. - When checking for replays in the INTRODUCE1 cell data for a
  3136. (legacy) onion service, correctly detect replays in the RSA-
  3137. encrypted part of the cell. We were previously checking for
  3138. replays on the entire cell, but those can be circumvented due to
  3139. the malleability of Tor's legacy hybrid encryption. This fix helps
  3140. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  3141. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  3142. and CVE-2017-8819.
  3143. o Major bugfixes (security, relay):
  3144. - When running as a relay, make sure that we never build a path
  3145. through ourselves, even in the case where we have somehow lost the
  3146. version of our descriptor appearing in the consensus. Fixes part
  3147. of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
  3148. as TROVE-2017-012 and CVE-2017-8822.
  3149. - When running as a relay, make sure that we never choose ourselves
  3150. as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
  3151. issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
  3152. o Major bugfixes (bootstrapping):
  3153. - Fetch descriptors aggressively whenever we lack enough to build
  3154. circuits, regardless of how many descriptors we are missing.
  3155. Previously, we would delay launching the fetch when we had fewer
  3156. than 15 missing descriptors, even if some of those descriptors
  3157. were blocking circuits from building. Fixes bug 23985; bugfix on
  3158. 0.1.1.11-alpha. The effects of this bug became worse in
  3159. 0.3.0.3-alpha, when we began treating missing descriptors from our
  3160. primary guards as a reason to delay circuits.
  3161. - Don't try fetching microdescriptors from relays that have failed
  3162. to deliver them in the past. Fixes bug 23817; bugfix
  3163. on 0.3.0.1-alpha.
  3164. o Major bugfixes (circuit prediction):
  3165. - Fix circuit prediction logic so that a client doesn't treat a port
  3166. as being "handled" by a circuit if that circuit already has
  3167. isolation settings on it. This change should make Tor clients more
  3168. responsive by improving their chances of having a pre-created
  3169. circuit ready for use when a request arrives. Fixes bug 18859;
  3170. bugfix on 0.2.3.3-alpha.
  3171. o Major bugfixes (exit relays, DNS):
  3172. - Fix an issue causing DNS to fail on high-bandwidth exit nodes,
  3173. making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
  3174. 0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
  3175. identifying and finding a workaround to this bug and to Moritz,
  3176. Arthur Edelstein, and Roger for helping to track it down and
  3177. analyze it.
  3178. o Major bugfixes (relay, crash, assertion failure):
  3179. - Fix a timing-based assertion failure that could occur when the
  3180. circuit out-of-memory handler freed a connection's output buffer.
  3181. Fixes bug 23690; bugfix on 0.2.6.1-alpha.
  3182. o Major bugfixes (usability, control port):
  3183. - Report trusted clock skew indications as bootstrap errors, so
  3184. controllers can more easily alert users when their clocks are
  3185. wrong. Fixes bug 23506; bugfix on 0.1.2.6-alpha.
  3186. o Minor features (bridge):
  3187. - Bridge relays can now set the BridgeDistribution config option to
  3188. add a "bridge-distribution-request" line to their bridge
  3189. descriptor, which tells BridgeDB how they'd like their bridge
  3190. address to be given out. (Note that as of Oct 2017, BridgeDB does
  3191. not yet implement this feature.) As a side benefit, this feature
  3192. provides a way to distinguish bridge descriptors from non-bridge
  3193. descriptors. Implements tickets 18329.
  3194. - When handling the USERADDR command on an ExtOrPort, warn when the
  3195. transports provides a USERADDR with no port. In a future version,
  3196. USERADDR commands of this format may be rejected. Detects problems
  3197. related to ticket 23080.
  3198. o Minor features (bug detection):
  3199. - Log a warning message with a stack trace for any attempt to call
  3200. get_options() during option validation. This pattern has caused
  3201. subtle bugs in the past. Closes ticket 22281.
  3202. o Minor features (build, compilation):
  3203. - The "check-changes" feature is now part of the "make check" tests;
  3204. we'll use it to try to prevent misformed changes files from
  3205. accumulating. Closes ticket 23564.
  3206. - Tor builds should now fail if there are any mismatches between the
  3207. C type representing a configuration variable and the C type the
  3208. data-driven parser uses to store a value there. Previously, we
  3209. needed to check these by hand, which sometimes led to mistakes.
  3210. Closes ticket 23643.
  3211. o Minor features (client):
  3212. - You can now use Tor as a tunneled HTTP proxy: use the new
  3213. HTTPTunnelPort option to open a port that accepts HTTP CONNECT
  3214. requests. Closes ticket 22407.
  3215. - Add an extra check to make sure that we always use the newer guard
  3216. selection code for picking our guards. Closes ticket 22779.
  3217. - When downloading (micro)descriptors, don't split the list into
  3218. multiple requests unless we want at least 32 descriptors.
  3219. Previously, we split at 4, not 32, which led to significant
  3220. overhead in HTTP request size and degradation in compression
  3221. performance. Closes ticket 23220.
  3222. - Improve log messages when missing descriptors for primary guards.
  3223. Resolves ticket 23670.
  3224. o Minor features (command line):
  3225. - Add a new commandline option, --key-expiration, which prints when
  3226. the current signing key is going to expire. Implements ticket
  3227. 17639; patch by Isis Lovecruft.
  3228. o Minor features (control port):
  3229. - If an application tries to use the control port as an HTTP proxy,
  3230. respond with a meaningful "This is the Tor control port" message,
  3231. and log the event. Closes ticket 1667. Patch from Ravi
  3232. Chandra Padmala.
  3233. - Provide better error message for GETINFO desc/(id|name) when not
  3234. fetching router descriptors. Closes ticket 5847. Patch by
  3235. Kevin Butler.
  3236. - Add GETINFO "{desc,md}/download-enabled", to inform the controller
  3237. whether Tor will try to download router descriptors and
  3238. microdescriptors respectively. Closes ticket 22684.
  3239. - Added new GETINFO targets "ip-to-country/{ipv4,ipv6}-available",
  3240. so controllers can tell whether the geoip databases are loaded.
  3241. Closes ticket 23237.
  3242. - Adds a timestamp field to the CIRC_BW and STREAM_BW bandwidth
  3243. events. Closes ticket 19254. Patch by "DonnchaC".
  3244. o Minor features (development support):
  3245. - Developers can now generate a call-graph for Tor using the
  3246. "calltool" python program, which post-processes object dumps. It
  3247. should work okay on many Linux and OSX platforms, and might work
  3248. elsewhere too. To run it, install calltool from
  3249. https://gitweb.torproject.org/user/nickm/calltool.git and run
  3250. "make callgraph". Closes ticket 19307.
  3251. o Minor features (directory authority):
  3252. - Make the "Exit" flag assignment only depend on whether the exit
  3253. policy allows connections to ports 80 and 443. Previously relays
  3254. would get the Exit flag if they allowed connections to one of
  3255. these ports and also port 6667. Resolves ticket 23637.
  3256. o Minor features (ed25519):
  3257. - Add validation function to checks for torsion components in
  3258. ed25519 public keys, used by prop224 client-side code. Closes
  3259. ticket 22006. Math help by Ian Goldberg.
  3260. o Minor features (exit relay, DNS):
  3261. - Improve the clarity and safety of the log message from evdns when
  3262. receiving an apparently spoofed DNS reply. Closes ticket 3056.
  3263. o Minor features (fallback directory mirrors):
  3264. - The fallback directory list has been re-generated based on the
  3265. current status of the network. Tor uses fallback directories to
  3266. bootstrap when it doesn't yet have up-to-date directory
  3267. information. Closes ticket 24801.
  3268. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  3269. prefer to bootstrap from fallback directory mirrors. This is a
  3270. follow-up to 24679, which removed weights from the default
  3271. fallbacks. Implements ticket 24681.
  3272. o Minor features (geoip):
  3273. - Update geoip and geoip6 to the January 5 2018 Maxmind GeoLite2
  3274. Country database.
  3275. o Minor features (integration, hardening):
  3276. - Add a new NoExec option to prevent Tor from running other
  3277. programs. When this option is set to 1, Tor will never try to run
  3278. another program, regardless of the settings of
  3279. PortForwardingHelper, ClientTransportPlugin, or
  3280. ServerTransportPlugin. Once NoExec is set, it cannot be disabled
  3281. without restarting Tor. Closes ticket 22976.
  3282. o Minor features (linux seccomp2 sandbox):
  3283. - Update the sandbox rules so that they should now work correctly
  3284. with Glibc 2.26. Closes ticket 24315.
  3285. o Minor features (logging):
  3286. - Provide better warnings when the getrandom() syscall fails. Closes
  3287. ticket 24500.
  3288. - Downgrade a pair of log messages that could occur when an exit's
  3289. resolver gave us an unusual (but not forbidden) response. Closes
  3290. ticket 24097.
  3291. - Improve the message we log when re-enabling circuit build timeouts
  3292. after having received a consensus. Closes ticket 20963.
  3293. - Log more circuit information whenever we are about to try to
  3294. package a relay cell on a circuit with a nonexistent n_chan.
  3295. Attempt to diagnose ticket 8185.
  3296. - Improve info-level log identification of particular circuits, to
  3297. help with debugging. Closes ticket 23645.
  3298. - Improve the warning message for specifying a relay by nickname.
  3299. The previous message implied that nickname registration was still
  3300. part of the Tor network design, which it isn't. Closes
  3301. ticket 20488.
  3302. - If the sandbox filter fails to load, suggest to the user that
  3303. their kernel might not support seccomp2. Closes ticket 23090.
  3304. o Minor features (onion service, circuit, logging):
  3305. - Improve logging of many callsite in the circuit subsystem to print
  3306. the circuit identifier(s).
  3307. - Log when we cleanup an intro point from a service so we know when
  3308. and for what reason it happened. Closes ticket 23604.
  3309. o Minor features (portability):
  3310. - Tor now compiles correctly on arm64 with libseccomp-dev installed.
  3311. (It doesn't yet work with the sandbox enabled.) Closes
  3312. ticket 24424.
  3313. - Check at configure time whether uint8_t is the same type as
  3314. unsigned char. Lots of existing code already makes this
  3315. assumption, and there could be strict aliasing issues if the
  3316. assumption is violated. Closes ticket 22410.
  3317. o Minor features (relay):
  3318. - When choosing which circuits can be expired as unused, consider
  3319. circuits from clients even if those clients used regular CREATE
  3320. cells to make them; and do not consider circuits from relays even
  3321. if they were made with CREATE_FAST. Part of ticket 22805.
  3322. - Reject attempts to use relative file paths when RunAsDaemon is
  3323. set. Previously, Tor would accept these, but the directory-
  3324. changing step of RunAsDaemon would give strange and/or confusing
  3325. results. Closes ticket 22731.
  3326. o Minor features (relay statistics):
  3327. - Change relay bandwidth reporting stats interval from 4 hours to 24
  3328. hours in order to reduce the efficiency of guard discovery
  3329. attacks. Fixes ticket 23856.
  3330. o Minor features (reverted deprecations):
  3331. - The ClientDNSRejectInternalAddresses flag can once again be set in
  3332. non-testing Tor networks, so long as they do not use the default
  3333. directory authorities. This change also removes the deprecation of
  3334. this flag from 0.2.9.2-alpha. Closes ticket 21031.
  3335. o Minor features (robustness):
  3336. - Change several fatal assertions when flushing buffers into non-
  3337. fatal assertions, to prevent any recurrence of 23690.
  3338. o Minor features (startup, safety):
  3339. - When configured to write a PID file, Tor now exits if it is unable
  3340. to do so. Previously, it would warn and continue. Closes
  3341. ticket 20119.
  3342. o Minor features (static analysis):
  3343. - The BUG() macro has been changed slightly so that Coverity no
  3344. longer complains about dead code if the bug is impossible. Closes
  3345. ticket 23054.
  3346. o Minor features (testing):
  3347. - Our fuzzing tests now test the encrypted portions of v3 onion
  3348. service descriptors. Implements more of 21509.
  3349. - Add a unit test to make sure that our own generated platform
  3350. string will be accepted by directory authorities. Closes
  3351. ticket 22109.
  3352. - The default chutney network tests now include tests for the v3
  3353. onion service design. Make sure you have the latest version of
  3354. chutney if you want to run these. Closes ticket 22437.
  3355. - Add a unit test to verify that we can parse a hardcoded v2 onion
  3356. service descriptor. Closes ticket 15554.
  3357. o Minor bugfixes (address selection):
  3358. - When the fascist_firewall_choose_address_ functions don't find a
  3359. reachable address, set the returned address to the null address
  3360. and port. This is a precautionary measure, because some callers do
  3361. not check the return value. Fixes bug 24736; bugfix
  3362. on 0.2.8.2-alpha.
  3363. o Minor bugfixes (bootstrapping):
  3364. - When warning about state file clock skew, report the correct
  3365. direction for the detected skew. Fixes bug 23606; bugfix
  3366. on 0.2.8.1-alpha.
  3367. o Minor bugfixes (bridge clients, bootstrap):
  3368. - Retry directory downloads when we get our first bridge descriptor
  3369. during bootstrap or while reconnecting to the network. Keep
  3370. retrying every time we get a bridge descriptor, until we have a
  3371. reachable bridge. Fixes part of bug 24367; bugfix on 0.2.0.3-alpha.
  3372. - Stop delaying bridge descriptor fetches when we have cached bridge
  3373. descriptors. Instead, only delay bridge descriptor fetches when we
  3374. have at least one reachable bridge. Fixes part of bug 24367;
  3375. bugfix on 0.2.0.3-alpha.
  3376. - Stop delaying directory fetches when we have cached bridge
  3377. descriptors. Instead, only delay bridge descriptor fetches when
  3378. all our bridges are definitely unreachable. Fixes part of bug
  3379. 24367; bugfix on 0.2.0.3-alpha.
  3380. o Minor bugfixes (bridge):
  3381. - Overwrite the bridge address earlier in the process of retrieving
  3382. its descriptor, to make sure we reach it on the configured
  3383. address. Fixes bug 20532; bugfix on 0.2.0.10-alpha.
  3384. o Minor bugfixes (build, compilation):
  3385. - Fix a compilation warning when building with zstd support on
  3386. 32-bit platforms. Fixes bug 23568; bugfix on 0.3.1.1-alpha. Found
  3387. and fixed by Andreas Stieger.
  3388. - When searching for OpenSSL, don't accept any OpenSSL library that
  3389. lacks TLSv1_1_method(): Tor doesn't build with those versions.
  3390. Additionally, look in /usr/local/opt/openssl, if it's present.
  3391. These changes together repair the default build on OSX systems
  3392. with Homebrew installed. Fixes bug 23602; bugfix on 0.2.7.2-alpha.
  3393. - Fix a signed/unsigned comparison warning introduced by our fix to
  3394. TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
  3395. - Fix a memory leak warning in one of the libevent-related
  3396. configuration tests that could occur when manually specifying
  3397. -fsanitize=address. Fixes bug 24279; bugfix on 0.3.0.2-alpha.
  3398. Found and patched by Alex Xu.
  3399. - Fix unused-variable warnings in donna's Curve25519 SSE2 code.
  3400. Fixes bug 22895; bugfix on 0.2.7.2-alpha.
  3401. o Minor bugfixes (certificate handling):
  3402. - Fix a time handling bug in Tor certificates set to expire after
  3403. the year 2106. Fixes bug 23055; bugfix on 0.3.0.1-alpha. Found by
  3404. Coverity as CID 1415728.
  3405. o Minor bugfixes (client):
  3406. - By default, do not enable storage of client-side DNS values. These
  3407. values were unused by default previously, but they should not have
  3408. been cached at all. Fixes bug 24050; bugfix on 0.2.6.3-alpha.
  3409. o Minor bugfixes (client, usability):
  3410. - Refrain from needlessly rejecting SOCKS5-with-hostnames and
  3411. SOCKS4a requests that contain IP address strings, even when
  3412. SafeSocks in enabled, as this prevents user from connecting to
  3413. known IP addresses without relying on DNS for resolving. SafeSocks
  3414. still rejects SOCKS connections that connect to IP addresses when
  3415. those addresses are _not_ encoded as hostnames. Fixes bug 22461;
  3416. bugfix on Tor 0.2.6.2-alpha.
  3417. o Minor bugfixes (code correctness):
  3418. - Call htons() in extend_cell_format() for encoding a 16-bit value.
  3419. Previously we used ntohs(), which happens to behave the same on
  3420. all the platforms we support, but which isn't really correct.
  3421. Fixes bug 23106; bugfix on 0.2.4.8-alpha.
  3422. - For defense-in-depth, make the controller's write_escaped_data()
  3423. function robust to extremely long inputs. Fixes bug 19281; bugfix
  3424. on 0.1.1.1-alpha. Reported by Guido Vranken.
  3425. - Fix several places in our codebase where a C compiler would be
  3426. likely to eliminate a check, based on assuming that undefined
  3427. behavior had not happened elsewhere in the code. These cases are
  3428. usually a sign of redundant checking or dubious arithmetic. Found
  3429. by Georg Koppen using the "STACK" tool from Wang, Zeldovich,
  3430. Kaashoek, and Solar-Lezama. Fixes bug 24423; bugfix on various
  3431. Tor versions.
  3432. o Minor bugfixes (compression):
  3433. - Handle a pathological case when decompressing Zstandard data when
  3434. the output buffer size is zero. Fixes bug 23551; bugfix
  3435. on 0.3.1.1-alpha.
  3436. o Minor bugfixes (consensus expiry):
  3437. - Check for adequate directory information correctly. Previously, Tor
  3438. would reconsider whether it had sufficient directory information
  3439. every 2 minutes. Fixes bug 23091; bugfix on 0.2.0.19-alpha.
  3440. o Minor bugfixes (control port, linux seccomp2 sandbox):
  3441. - Avoid a crash when attempting to use the seccomp2 sandbox together
  3442. with the OwningControllerProcess feature. Fixes bug 24198; bugfix
  3443. on 0.2.5.1-alpha.
  3444. o Minor bugfixes (control port, onion services):
  3445. - Report "FAILED" instead of "UPLOAD_FAILED" "FAILED" for the
  3446. HS_DESC event when a service is not able to upload a descriptor.
  3447. Fixes bug 24230; bugfix on 0.2.7.1-alpha.
  3448. o Minor bugfixes (directory cache):
  3449. - Recover better from empty or corrupt files in the consensus cache
  3450. directory. Fixes bug 24099; bugfix on 0.3.1.1-alpha.
  3451. - When a consensus diff calculation is only partially successful,
  3452. only record the successful parts as having succeeded. Partial
  3453. success can happen if (for example) one compression method fails
  3454. but the others succeed. Previously we misrecorded all the
  3455. calculations as having succeeded, which would later cause a
  3456. nonfatal assertion failure. Fixes bug 24086; bugfix
  3457. on 0.3.1.1-alpha.
  3458. o Minor bugfixes (directory client):
  3459. - On failure to download directory information, delay retry attempts
  3460. by a random amount based on the "decorrelated jitter" algorithm.
  3461. Our previous delay algorithm tended to produce extra-long delays
  3462. too easily. Fixes bug 23816; bugfix on 0.2.9.1-alpha.
  3463. o Minor bugfixes (directory protocol):
  3464. - Directory servers now include a "Date:" http header for response
  3465. codes other than 200. Clients starting with a skewed clock and a
  3466. recent consensus were getting "304 Not modified" responses from
  3467. directory authorities, so without the Date header, the client
  3468. would never hear about a wrong clock. Fixes bug 23499; bugfix
  3469. on 0.0.8rc1.
  3470. - Make clients wait for 6 seconds before trying to download a
  3471. consensus from an authority. Fixes bug 17750; bugfix
  3472. on 0.2.8.1-alpha.
  3473. o Minor bugfixes (documentation):
  3474. - Document better how to read gcov, and what our gcov postprocessing
  3475. scripts do. Fixes bug 23739; bugfix on 0.2.9.1-alpha.
  3476. - Fix manpage to not refer to the obsolete (and misspelled)
  3477. UseEntryGuardsAsDirectoryGuards parameter in the description of
  3478. NumDirectoryGuards. Fixes bug 23611; bugfix on 0.2.4.8-alpha.
  3479. o Minor bugfixes (DoS-resistance):
  3480. - If future code asks if there are any running bridges, without
  3481. checking if bridges are enabled, log a BUG warning rather than
  3482. crashing. Fixes bug 23524; bugfix on 0.3.0.1-alpha.
  3483. o Minor bugfixes (entry guards):
  3484. - Tor now updates its guard state when it reads a consensus
  3485. regardless of whether it's missing descriptors. That makes tor use
  3486. its primary guards to fetch descriptors in some edge cases where
  3487. it would previously have used fallback directories. Fixes bug
  3488. 23862; bugfix on 0.3.0.1-alpha.
  3489. o Minor bugfixes (format strictness):
  3490. - Restrict several data formats to decimal. Previously, the
  3491. BuildTimeHistogram entries in the state file, the "bw=" entries in
  3492. the bandwidth authority file, and the process IDs passed to the
  3493. __OwningControllerProcess option could all be specified in hex or
  3494. octal as well as in decimal. This was not an intentional feature.
  3495. Fixes bug 22802; bugfixes on 0.2.2.1-alpha, 0.2.2.2-alpha,
  3496. and 0.2.2.28-beta.
  3497. o Minor bugfixes (heartbeat):
  3498. - If we fail to write a heartbeat message, schedule a retry for the
  3499. minimum heartbeat interval number of seconds in the future. Fixes
  3500. bug 19476; bugfix on 0.2.3.1-alpha.
  3501. o Minor bugfixes (logging):
  3502. - Suppress a log notice when relay descriptors arrive. We already
  3503. have a bootstrap progress for this so no need to log notice
  3504. everytime tor receives relay descriptors. Microdescriptors behave
  3505. the same. Fixes bug 23861; bugfix on 0.2.8.2-alpha.
  3506. - Remove duplicate log messages regarding opening non-local
  3507. SocksPorts upon parsing config and opening listeners at startup.
  3508. Fixes bug 4019; bugfix on 0.2.3.3-alpha.
  3509. - Use a more comprehensible log message when telling the user
  3510. they've excluded every running exit node. Fixes bug 7890; bugfix
  3511. on 0.2.2.25-alpha.
  3512. - When logging the number of descriptors we intend to download per
  3513. directory request, do not log a number higher than then the number
  3514. of descriptors we're fetching in total. Fixes bug 19648; bugfix
  3515. on 0.1.1.8-alpha.
  3516. - When warning about a directory owned by the wrong user, log the
  3517. actual name of the user owning the directory. Previously, we'd log
  3518. the name of the process owner twice. Fixes bug 23487; bugfix
  3519. on 0.2.9.1-alpha.
  3520. - Fix some messages on unexpected errors from the seccomp2 library.
  3521. Fixes bug 22750; bugfix on 0.2.5.1-alpha. Patch from "cypherpunks".
  3522. - The tor specification says hop counts are 1-based, so fix two log
  3523. messages that mistakenly logged 0-based hop counts. Fixes bug
  3524. 18982; bugfix on 0.2.6.2-alpha and 0.2.4.5-alpha. Patch by teor.
  3525. Credit to Xiaofan Li for reporting this issue.
  3526. o Minor bugfixes (logging, relay shutdown, annoyance):
  3527. - When a circuit is marked for close, do not attempt to package any
  3528. cells for channels on that circuit. Previously, we would detect
  3529. this condition lower in the call stack, when we noticed that the
  3530. circuit had no attached channel, and log an annoying message.
  3531. Fixes bug 8185; bugfix on 0.2.5.4-alpha.
  3532. o Minor bugfixes (memory safety, defensive programming):
  3533. - Clear the target address when node_get_prim_orport() returns
  3534. early. Fixes bug 23874; bugfix on 0.2.8.2-alpha.
  3535. o Minor bugfixes (memory usage):
  3536. - When queuing DESTROY cells on a channel, only queue the circuit-id
  3537. and reason fields: not the entire 514-byte cell. This fix should
  3538. help mitigate any bugs or attacks that fill up these queues, and
  3539. free more RAM for other uses. Fixes bug 24666; bugfix
  3540. on 0.2.5.1-alpha.
  3541. o Minor bugfixes (network layer):
  3542. - When closing a connection via close_connection_immediately(), we
  3543. mark it as "not blocked on bandwidth", to prevent later calls from
  3544. trying to unblock it, and give it permission to read. This fixes a
  3545. backtrace warning that can happen on relays under various
  3546. circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
  3547. o Minor bugfixes (onion services):
  3548. - The introduction circuit was being timed out too quickly while
  3549. waiting for the rendezvous circuit to complete. Keep the intro
  3550. circuit around longer instead of timing out and reopening new ones
  3551. constantly. Fixes bug 23681; bugfix on 0.2.4.8-alpha.
  3552. - Rename the consensus parameter "hsdir-interval" to "hsdir_interval"
  3553. so it matches dir-spec.txt. Fixes bug 24262; bugfix
  3554. on 0.3.1.1-alpha.
  3555. - When handling multiple SOCKS request for the same .onion address,
  3556. only fetch the service descriptor once.
  3557. - Avoid a possible double close of a circuit by the intro point on
  3558. error of sending the INTRO_ESTABLISHED cell. Fixes bug 23610;
  3559. bugfix on 0.3.0.1-alpha.
  3560. - When reloading configured onion services, copy all information
  3561. from the old service object. Previously, some data was omitted,
  3562. causing delays in descriptor upload, and other bugs. Fixes bug
  3563. 23790; bugfix on 0.2.1.9-alpha.
  3564. o Minor bugfixes (path selection):
  3565. - When selecting relays by bandwidth, avoid a rounding error that
  3566. could sometimes cause load to be imbalanced incorrectly.
  3567. Previously, we would always round upwards; now, we round towards
  3568. the nearest integer. This had the biggest effect when a relay's
  3569. weight adjustments should have given it weight 0, but it got
  3570. weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
  3571. - When calculating the fraction of nodes that have descriptors, and
  3572. all nodes in the network have zero bandwidths, count the number of
  3573. nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
  3574. - Actually log the total bandwidth in compute_weighted_bandwidths().
  3575. Fixes bug 24170; bugfix on 0.2.4.3-alpha.
  3576. o Minor bugfixes (portability):
  3577. - Stop using the PATH_MAX variable, which is not defined on GNU
  3578. Hurd. Fixes bug 23098; bugfix on 0.3.1.1-alpha.
  3579. - Fix a bug in the bit-counting parts of our timing-wheel code on
  3580. MSVC. (Note that MSVC is still not a supported build platform, due
  3581. to cryptographic timing channel risks.) Fixes bug 24633; bugfix
  3582. on 0.2.9.1-alpha.
  3583. o Minor bugfixes (relay):
  3584. - When uploading our descriptor for the first time after startup,
  3585. report the reason for uploading as "Tor just started" rather than
  3586. leaving it blank. Fixes bug 22885; bugfix on 0.2.3.4-alpha.
  3587. - Avoid unnecessary calls to directory_fetches_from_authorities() on
  3588. relays, to prevent spurious address resolutions and descriptor
  3589. rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
  3590. bugfix on in 0.2.8.1-alpha.
  3591. - Avoid a crash when transitioning from client mode to bridge mode.
  3592. Previously, we would launch the worker threads whenever our
  3593. "public server" mode changed, but not when our "server" mode
  3594. changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
  3595. o Minor bugfixes (testing):
  3596. - Fix a spurious fuzzing-only use of an uninitialized value. Found
  3597. by Brian Carpenter. Fixes bug 24082; bugfix on 0.3.0.3-alpha.
  3598. - Test that IPv6-only clients can use microdescriptors when running
  3599. "make test-network-all". Requires chutney master 61c28b9 or later.
  3600. Closes ticket 24109.
  3601. - Prevent scripts/test/coverage from attempting to move gcov output
  3602. to the root directory. Fixes bug 23741; bugfix on 0.2.5.1-alpha.
  3603. - Capture and detect several "Result does not fit" warnings in unit
  3604. tests on platforms with 32-bit time_t. Fixes bug 21800; bugfix
  3605. on 0.2.9.3-alpha.
  3606. - Fix additional channelpadding unit test failures by using mocked
  3607. time instead of actual time for all tests. Fixes bug 23608; bugfix
  3608. on 0.3.1.1-alpha.
  3609. - Fix a bug in our fuzzing mock replacement for crypto_pk_checksig(),
  3610. to correctly handle cases where a caller gives it an RSA key of
  3611. under 160 bits. (This is not actually a bug in Tor itself, but
  3612. rather in our fuzzing code.) Fixes bug 24247; bugfix on
  3613. 0.3.0.3-alpha. Found by OSS-Fuzz as issue 4177.
  3614. - Fix a broken unit test for the OutboundAddress option: the parsing
  3615. function was never returning an error on failure. Fixes bug 23366;
  3616. bugfix on 0.3.0.3-alpha.
  3617. - Fix a signed-integer overflow in the unit tests for
  3618. dir/download_status_random_backoff, which was untriggered until we
  3619. fixed bug 17750. Fixes bug 22924; bugfix on 0.2.9.1-alpha.
  3620. o Minor bugfixes (usability, control port):
  3621. - Stop making an unnecessary routerlist check in NETINFO clock skew
  3622. detection; this was preventing clients from reporting NETINFO clock
  3623. skew to controllers. Fixes bug 23532; bugfix on 0.2.4.4-alpha.
  3624. o Code simplification and refactoring:
  3625. - Remove various ways of testing circuits and connections for
  3626. "clientness"; instead, favor channel_is_client(). Part of
  3627. ticket 22805.
  3628. - Extract the code for handling newly-open channels into a separate
  3629. function from the general code to handle channel state
  3630. transitions. This change simplifies our callgraph, reducing the
  3631. size of the largest strongly connected component by roughly a
  3632. factor of two. Closes ticket 22608.
  3633. - Remove dead code for largely unused statistics on the number of
  3634. times we've attempted various public key operations. Fixes bug
  3635. 19871; bugfix on 0.1.2.4-alpha. Fix by Isis Lovecruft.
  3636. - Remove several now-obsolete functions for asking about old
  3637. variants directory authority status. Closes ticket 22311; patch
  3638. from "huyvq".
  3639. - Remove some of the code that once supported "Named" and "Unnamed"
  3640. routers. Authorities no longer vote for these flags. Closes
  3641. ticket 22215.
  3642. - Rename the obsolete malleable hybrid_encrypt functions used in TAP
  3643. and old hidden services, to indicate that they aren't suitable for
  3644. new protocols or formats. Closes ticket 23026.
  3645. - Replace our STRUCT_OFFSET() macro with offsetof(). Closes ticket
  3646. 22521. Patch from Neel Chauhan.
  3647. - Split the enormous circuit_send_next_onion_skin() function into
  3648. multiple subfunctions. Closes ticket 22804.
  3649. - Split the portions of the buffer.c module that handle particular
  3650. protocols into separate modules. Part of ticket 23149.
  3651. - Use our test macros more consistently, to produce more useful
  3652. error messages when our unit tests fail. Add coccinelle patches to
  3653. allow us to re-check for test macro uses. Closes ticket 22497.
  3654. o Deprecated features:
  3655. - The ReachableDirAddresses and ClientPreferIPv6DirPort options are
  3656. now deprecated; they do not apply to relays, and they have had no
  3657. effect on clients since 0.2.8.x. Closes ticket 19704.
  3658. - Deprecate HTTPProxy/HTTPProxyAuthenticator config options. They
  3659. only applies to direct unencrypted HTTP connections to your
  3660. directory server, which your Tor probably isn't using. Closes
  3661. ticket 20575.
  3662. o Documentation:
  3663. - Add notes in man page regarding OS support for the various
  3664. scheduler types. Attempt to use less jargon in the scheduler
  3665. section. Closes ticket 24254.
  3666. - Clarify that the Address option is entirely about setting an
  3667. advertised IPv4 address. Closes ticket 18891.
  3668. - Clarify the manpage's use of the term "address" to clarify what
  3669. kind of address is intended. Closes ticket 21405.
  3670. - Document that onion service subdomains are allowed, and ignored.
  3671. Closes ticket 18736.
  3672. - Clarify in the manual that "Sandbox 1" is only supported on Linux
  3673. kernels. Closes ticket 22677.
  3674. - Document all values of PublishServerDescriptor in the manpage.
  3675. Closes ticket 15645.
  3676. - Improve the documentation for the directory port part of the
  3677. DirAuthority line. Closes ticket 20152.
  3678. - Restore documentation for the authorities' "approved-routers"
  3679. file. Closes ticket 21148.
  3680. o Removed features:
  3681. - The AllowDotExit option has been removed as unsafe. It has been
  3682. deprecated since 0.2.9.2-alpha. Closes ticket 23426.
  3683. - The ClientDNSRejectInternalAddresses flag can no longer be set on
  3684. non-testing networks. It has been deprecated since 0.2.9.2-alpha.
  3685. Closes ticket 21031.
  3686. - The controller API no longer includes an AUTHDIR_NEWDESCS event:
  3687. nobody was using it any longer. Closes ticket 22377.
  3688. Changes in version 0.3.1.9 - 2017-12-01:
  3689. Tor 0.3.1.9 backports important security and stability fixes from the
  3690. 0.3.2 development series. All Tor users should upgrade to this
  3691. release, or to another of the releases coming out today.
  3692. o Major bugfixes (security, backport from 0.3.2.6-alpha):
  3693. - Fix a denial of service bug where an attacker could use a
  3694. malformed directory object to cause a Tor instance to pause while
  3695. OpenSSL would try to read a passphrase from the terminal. (Tor
  3696. instances run without a terminal, which is the case for most Tor
  3697. packages, are not impacted.) Fixes bug 24246; bugfix on every
  3698. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  3699. Found by OSS-Fuzz as testcase 6360145429790720.
  3700. - Fix a denial of service issue where an attacker could crash a
  3701. directory authority using a malformed router descriptor. Fixes bug
  3702. 24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
  3703. and CVE-2017-8820.
  3704. - When checking for replays in the INTRODUCE1 cell data for a
  3705. (legacy) onion service, correctly detect replays in the RSA-
  3706. encrypted part of the cell. We were previously checking for
  3707. replays on the entire cell, but those can be circumvented due to
  3708. the malleability of Tor's legacy hybrid encryption. This fix helps
  3709. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  3710. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  3711. and CVE-2017-8819.
  3712. o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
  3713. - Fix a use-after-free error that could crash v2 Tor onion services
  3714. when they failed to open circuits while expiring introduction
  3715. points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
  3716. also tracked as TROVE-2017-013 and CVE-2017-8823.
  3717. o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
  3718. - When running as a relay, make sure that we never build a path
  3719. through ourselves, even in the case where we have somehow lost the
  3720. version of our descriptor appearing in the consensus. Fixes part
  3721. of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
  3722. as TROVE-2017-012 and CVE-2017-8822.
  3723. - When running as a relay, make sure that we never choose ourselves
  3724. as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
  3725. issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
  3726. o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
  3727. - Fix an issue causing DNS to fail on high-bandwidth exit nodes,
  3728. making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
  3729. 0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
  3730. identifying and finding a workaround to this bug and to Moritz,
  3731. Arthur Edelstein, and Roger for helping to track it down and
  3732. analyze it.
  3733. o Minor features (bridge):
  3734. - Bridges now include notice in their descriptors that they are
  3735. bridges, and notice of their distribution status, based on their
  3736. publication settings. Implements ticket 18329. For more fine-
  3737. grained control of how a bridge is distributed, upgrade to 0.3.2.x
  3738. or later.
  3739. o Minor features (directory authority, backport from 0.3.2.6-alpha):
  3740. - Add an IPv6 address for the "bastet" directory authority. Closes
  3741. ticket 24394.
  3742. o Minor features (geoip):
  3743. - Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
  3744. Country database.
  3745. o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
  3746. - Avoid unnecessary calls to directory_fetches_from_authorities() on
  3747. relays, to prevent spurious address resolutions and descriptor
  3748. rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
  3749. bugfix on in 0.2.8.1-alpha.
  3750. o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
  3751. - Fix unused variable warnings in donna's Curve25519 SSE2 code.
  3752. Fixes bug 22895; bugfix on 0.2.7.2-alpha.
  3753. o Minor bugfixes (logging, relay shutdown, annoyance, backport from 0.3.2.2-alpha):
  3754. - When a circuit is marked for close, do not attempt to package any
  3755. cells for channels on that circuit. Previously, we would detect
  3756. this condition lower in the call stack, when we noticed that the
  3757. circuit had no attached channel, and log an annoying message.
  3758. Fixes bug 8185; bugfix on 0.2.5.4-alpha.
  3759. o Minor bugfixes (onion service, backport from 0.3.2.5-alpha):
  3760. - Rename the consensus parameter "hsdir-interval" to "hsdir_interval"
  3761. so it matches dir-spec.txt. Fixes bug 24262; bugfix
  3762. on 0.3.1.1-alpha.
  3763. o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
  3764. - Avoid a crash when transitioning from client mode to bridge mode.
  3765. Previously, we would launch the worker threads whenever our
  3766. "public server" mode changed, but not when our "server" mode
  3767. changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
  3768. Changes in version 0.3.0.13 - 2017-12-01
  3769. Tor 0.3.0.13 backports important security and stability bugfixes from
  3770. later Tor releases. All Tor users should upgrade to this release, or
  3771. to another of the releases coming out today.
  3772. Note: the Tor 0.3.0 series will no longer be supported after 26 Jan
  3773. 2018. If you need a release with long-term support, please stick with
  3774. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  3775. o Major bugfixes (security, backport from 0.3.2.6-alpha):
  3776. - Fix a denial of service bug where an attacker could use a
  3777. malformed directory object to cause a Tor instance to pause while
  3778. OpenSSL would try to read a passphrase from the terminal. (Tor
  3779. instances run without a terminal, which is the case for most Tor
  3780. packages, are not impacted.) Fixes bug 24246; bugfix on every
  3781. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  3782. Found by OSS-Fuzz as testcase 6360145429790720.
  3783. - Fix a denial of service issue where an attacker could crash a
  3784. directory authority using a malformed router descriptor. Fixes bug
  3785. 24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
  3786. and CVE-2017-8820.
  3787. - When checking for replays in the INTRODUCE1 cell data for a
  3788. (legacy) onion service, correctly detect replays in the RSA-
  3789. encrypted part of the cell. We were previously checking for
  3790. replays on the entire cell, but those can be circumvented due to
  3791. the malleability of Tor's legacy hybrid encryption. This fix helps
  3792. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  3793. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  3794. and CVE-2017-8819.
  3795. o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
  3796. - Fix a use-after-free error that could crash v2 Tor onion services
  3797. when they failed to open circuits while expiring introduction
  3798. points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
  3799. also tracked as TROVE-2017-013 and CVE-2017-8823.
  3800. o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
  3801. - When running as a relay, make sure that we never build a path
  3802. through ourselves, even in the case where we have somehow lost the
  3803. version of our descriptor appearing in the consensus. Fixes part
  3804. of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
  3805. as TROVE-2017-012 and CVE-2017-8822.
  3806. - When running as a relay, make sure that we never choose ourselves
  3807. as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
  3808. issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
  3809. o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
  3810. - Fix an issue causing DNS to fail on high-bandwidth exit nodes,
  3811. making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
  3812. 0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
  3813. identifying and finding a workaround to this bug and to Moritz,
  3814. Arthur Edelstein, and Roger for helping to track it down and
  3815. analyze it.
  3816. o Minor features (security, windows, backport from 0.3.1.1-alpha):
  3817. - Enable a couple of pieces of Windows hardening: one
  3818. (HeapEnableTerminationOnCorruption) that has been on-by-default
  3819. since Windows 8, and unavailable before Windows 7; and one
  3820. (PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn't
  3821. affect us, but shouldn't do any harm. Closes ticket 21953.
  3822. o Minor features (bridge, backport from 0.3.1.9):
  3823. - Bridges now include notice in their descriptors that they are
  3824. bridges, and notice of their distribution status, based on their
  3825. publication settings. Implements ticket 18329. For more fine-
  3826. grained control of how a bridge is distributed, upgrade to 0.3.2.x
  3827. or later.
  3828. o Minor features (directory authority, backport from 0.3.2.6-alpha):
  3829. - Add an IPv6 address for the "bastet" directory authority. Closes
  3830. ticket 24394.
  3831. o Minor features (geoip):
  3832. - Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
  3833. Country database.
  3834. o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
  3835. - Avoid unnecessary calls to directory_fetches_from_authorities() on
  3836. relays, to prevent spurious address resolutions and descriptor
  3837. rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
  3838. bugfix on in 0.2.8.1-alpha.
  3839. o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
  3840. - Fix unused variable warnings in donna's Curve25519 SSE2 code.
  3841. Fixes bug 22895; bugfix on 0.2.7.2-alpha.
  3842. o Minor bugfixes (logging, relay shutdown, annoyance, backport from 0.3.2.2-alpha):
  3843. - When a circuit is marked for close, do not attempt to package any
  3844. cells for channels on that circuit. Previously, we would detect
  3845. this condition lower in the call stack, when we noticed that the
  3846. circuit had no attached channel, and log an annoying message.
  3847. Fixes bug 8185; bugfix on 0.2.5.4-alpha.
  3848. o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
  3849. - Avoid a crash when transitioning from client mode to bridge mode.
  3850. Previously, we would launch the worker threads whenever our
  3851. "public server" mode changed, but not when our "server" mode
  3852. changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
  3853. o Minor bugfixes (testing, backport from 0.3.1.6-rc):
  3854. - Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
  3855. bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
  3856. Changes in version 0.2.9.14 - 2017-12-01
  3857. Tor 0.3.0.13 backports important security and stability bugfixes from
  3858. later Tor releases. All Tor users should upgrade to this release, or
  3859. to another of the releases coming out today.
  3860. o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
  3861. - Fix an issue causing DNS to fail on high-bandwidth exit nodes,
  3862. making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
  3863. 0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
  3864. identifying and finding a workaround to this bug and to Moritz,
  3865. Arthur Edelstein, and Roger for helping to track it down and
  3866. analyze it.
  3867. o Major bugfixes (security, backport from 0.3.2.6-alpha):
  3868. - Fix a denial of service bug where an attacker could use a
  3869. malformed directory object to cause a Tor instance to pause while
  3870. OpenSSL would try to read a passphrase from the terminal. (Tor
  3871. instances run without a terminal, which is the case for most Tor
  3872. packages, are not impacted.) Fixes bug 24246; bugfix on every
  3873. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  3874. Found by OSS-Fuzz as testcase 6360145429790720.
  3875. - Fix a denial of service issue where an attacker could crash a
  3876. directory authority using a malformed router descriptor. Fixes bug
  3877. 24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
  3878. and CVE-2017-8820.
  3879. - When checking for replays in the INTRODUCE1 cell data for a
  3880. (legacy) onion service, correctly detect replays in the RSA-
  3881. encrypted part of the cell. We were previously checking for
  3882. replays on the entire cell, but those can be circumvented due to
  3883. the malleability of Tor's legacy hybrid encryption. This fix helps
  3884. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  3885. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  3886. and CVE-2017-8819.
  3887. o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
  3888. - Fix a use-after-free error that could crash v2 Tor onion services
  3889. when they failed to open circuits while expiring introduction
  3890. points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
  3891. also tracked as TROVE-2017-013 and CVE-2017-8823.
  3892. o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
  3893. - When running as a relay, make sure that we never build a path
  3894. through ourselves, even in the case where we have somehow lost the
  3895. version of our descriptor appearing in the consensus. Fixes part
  3896. of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
  3897. as TROVE-2017-012 and CVE-2017-8822.
  3898. o Minor features (bridge, backport from 0.3.1.9):
  3899. - Bridges now include notice in their descriptors that they are
  3900. bridges, and notice of their distribution status, based on their
  3901. publication settings. Implements ticket 18329. For more fine-
  3902. grained control of how a bridge is distributed, upgrade to 0.3.2.x
  3903. or later.
  3904. o Minor features (directory authority, backport from 0.3.2.6-alpha):
  3905. - Add an IPv6 address for the "bastet" directory authority. Closes
  3906. ticket 24394.
  3907. o Minor features (geoip):
  3908. - Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
  3909. Country database.
  3910. o Minor features (security, windows, backport from 0.3.1.1-alpha):
  3911. - Enable a couple of pieces of Windows hardening: one
  3912. (HeapEnableTerminationOnCorruption) that has been on-by-default
  3913. since Windows 8, and unavailable before Windows 7; and one
  3914. (PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn't
  3915. affect us, but shouldn't do any harm. Closes ticket 21953.
  3916. o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
  3917. - Avoid unnecessary calls to directory_fetches_from_authorities() on
  3918. relays, to prevent spurious address resolutions and descriptor
  3919. rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
  3920. bugfix on in 0.2.8.1-alpha.
  3921. o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
  3922. - Fix unused variable warnings in donna's Curve25519 SSE2 code.
  3923. Fixes bug 22895; bugfix on 0.2.7.2-alpha.
  3924. o Minor bugfixes (logging, relay shutdown, annoyance, backport from 0.3.2.2-alpha):
  3925. - When a circuit is marked for close, do not attempt to package any
  3926. cells for channels on that circuit. Previously, we would detect
  3927. this condition lower in the call stack, when we noticed that the
  3928. circuit had no attached channel, and log an annoying message.
  3929. Fixes bug 8185; bugfix on 0.2.5.4-alpha.
  3930. o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
  3931. - Avoid a crash when transitioning from client mode to bridge mode.
  3932. Previously, we would launch the worker threads whenever our
  3933. "public server" mode changed, but not when our "server" mode
  3934. changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
  3935. o Minor bugfixes (testing, backport from 0.3.1.6-rc):
  3936. - Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
  3937. bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
  3938. Changes in version 0.2.8.17 - 2017-12-01
  3939. Tor 0.2.8.17 backports important security and stability bugfixes from
  3940. later Tor releases. All Tor users should upgrade to this release, or
  3941. to another of the releases coming out today.
  3942. Note: the Tor 0.2.8 series will no longer be supported after 1 Jan
  3943. 2018. If you need a release with long-term support, please upgrade with
  3944. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  3945. o Major bugfixes (security, backport from 0.3.2.6-alpha):
  3946. - Fix a denial of service bug where an attacker could use a
  3947. malformed directory object to cause a Tor instance to pause while
  3948. OpenSSL would try to read a passphrase from the terminal. (Tor
  3949. instances run without a terminal, which is the case for most Tor
  3950. packages, are not impacted.) Fixes bug 24246; bugfix on every
  3951. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  3952. Found by OSS-Fuzz as testcase 6360145429790720.
  3953. - When checking for replays in the INTRODUCE1 cell data for a
  3954. (legacy) onion service, correctly detect replays in the RSA-
  3955. encrypted part of the cell. We were previously checking for
  3956. replays on the entire cell, but those can be circumvented due to
  3957. the malleability of Tor's legacy hybrid encryption. This fix helps
  3958. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  3959. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  3960. and CVE-2017-8819.
  3961. o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
  3962. - Fix a use-after-free error that could crash v2 Tor onion services
  3963. when they failed to open circuits while expiring introduction
  3964. points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
  3965. also tracked as TROVE-2017-013 and CVE-2017-8823.
  3966. o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
  3967. - When running as a relay, make sure that we never build a path through
  3968. ourselves, even in the case where we have somehow lost the version of
  3969. our descriptor appearing in the consensus. Fixes part of bug 21534;
  3970. bugfix on 0.2.0.1-alpha. This issue is also tracked as TROVE-2017-012
  3971. and CVE-2017-8822.
  3972. o Minor features (bridge, backport from 0.3.1.9):
  3973. - Bridges now include notice in their descriptors that they are
  3974. bridges, and notice of their distribution status, based on their
  3975. publication settings. Implements ticket 18329. For more fine-
  3976. grained control of how a bridge is distributed, upgrade to 0.3.2.x
  3977. or later.
  3978. o Minor features (directory authority, backport from 0.3.2.6-alpha):
  3979. - Add an IPv6 address for the "bastet" directory authority. Closes
  3980. ticket 24394.
  3981. o Minor features (geoip):
  3982. - Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
  3983. Country database.
  3984. o Minor bugfixes (testing, backport from 0.3.1.6-rc):
  3985. - Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
  3986. bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
  3987. Changes in version 0.2.5.16 - 2017-12-01
  3988. Tor 0.2.5.13 backports important security and stability bugfixes from
  3989. later Tor releases. All Tor users should upgrade to this release, or
  3990. to another of the releases coming out today.
  3991. Note: the Tor 0.2.5 series will no longer be supported after 1 May
  3992. 2018. If you need a release with long-term support, please upgrade to
  3993. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  3994. o Major bugfixes (security, backport from 0.3.2.6-alpha):
  3995. - Fix a denial of service bug where an attacker could use a
  3996. malformed directory object to cause a Tor instance to pause while
  3997. OpenSSL would try to read a passphrase from the terminal. (Tor
  3998. instances run without a terminal, which is the case for most Tor
  3999. packages, are not impacted.) Fixes bug 24246; bugfix on every
  4000. version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
  4001. Found by OSS-Fuzz as testcase 6360145429790720.
  4002. - When checking for replays in the INTRODUCE1 cell data for a
  4003. (legacy) onion service, correctly detect replays in the RSA-
  4004. encrypted part of the cell. We were previously checking for
  4005. replays on the entire cell, but those can be circumvented due to
  4006. the malleability of Tor's legacy hybrid encryption. This fix helps
  4007. prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
  4008. 0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
  4009. and CVE-2017-8819.
  4010. o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
  4011. - When running as a relay, make sure that we never build a path
  4012. through ourselves, even in the case where we have somehow lost the
  4013. version of our descriptor appearing in the consensus. Fixes part
  4014. of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
  4015. as TROVE-2017-012 and CVE-2017-8822.
  4016. o Minor features (bridge, backport from 0.3.1.9):
  4017. - Bridges now include notice in their descriptors that they are
  4018. bridges, and notice of their distribution status, based on their
  4019. publication settings. Implements ticket 18329. For more fine-
  4020. grained control of how a bridge is distributed, upgrade to 0.3.2.x
  4021. or later.
  4022. o Minor features (geoip):
  4023. - Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
  4024. Country database.
  4025. Changes in version 0.2.5.15 - 2017-10-25
  4026. Tor 0.2.5.15 backports a collection of bugfixes from later Tor release
  4027. series. It also adds a new directory authority, Bastet.
  4028. Note: the Tor 0.2.5 series will no longer be supported after 1 May
  4029. 2018. If you need a release with long-term support, please upgrade to
  4030. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  4031. o Directory authority changes:
  4032. - Add "Bastet" as a ninth directory authority to the default list.
  4033. Closes ticket 23910.
  4034. - The directory authority "Longclaw" has changed its IP address.
  4035. Closes ticket 23592.
  4036. o Major bugfixes (openbsd, denial-of-service, backport from 0.3.1.5-alpha):
  4037. - Avoid an assertion failure bug affecting our implementation of
  4038. inet_pton(AF_INET6) on certain OpenBSD systems whose strtol()
  4039. handling of "0xx" differs from what we had expected. Fixes bug
  4040. 22789; bugfix on 0.2.3.8-alpha. Also tracked as TROVE-2017-007.
  4041. o Minor features (geoip):
  4042. - Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
  4043. Country database.
  4044. o Minor bugfixes (defensive programming, undefined behavior, backport from 0.3.1.4-alpha):
  4045. - Fix a memset() off the end of an array when packing cells. This
  4046. bug should be harmless in practice, since the corrupted bytes are
  4047. still in the same structure, and are always padding bytes,
  4048. ignored, or immediately overwritten, depending on compiler
  4049. behavior. Nevertheless, because the memset()'s purpose is to make
  4050. sure that any other cell-handling bugs can't expose bytes to the
  4051. network, we need to fix it. Fixes bug 22737; bugfix on
  4052. 0.2.4.11-alpha. Fixes CID 1401591.
  4053. o Build features (backport from 0.3.1.5-alpha):
  4054. - Tor's repository now includes a Travis Continuous Integration (CI)
  4055. configuration file (.travis.yml). This is meant to help new
  4056. developers and contributors who fork Tor to a Github repository be
  4057. better able to test their changes, and understand what we expect
  4058. to pass. To use this new build feature, you must fork Tor to your
  4059. Github account, then go into the "Integrations" menu in the
  4060. repository settings for your fork and enable Travis, then push
  4061. your changes. Closes ticket 22636.
  4062. Changes in version 0.2.8.16 - 2017-10-25
  4063. Tor 0.2.8.16 backports a collection of bugfixes from later Tor release
  4064. series, including a bugfix for a crash issue that had affected relays
  4065. under memory pressure. It also adds a new directory authority, Bastet.
  4066. Note: the Tor 0.2.8 series will no longer be supported after 1 Jan
  4067. 2018. If you need a release with long-term support, please stick with
  4068. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  4069. o Directory authority changes:
  4070. - Add "Bastet" as a ninth directory authority to the default list.
  4071. Closes ticket 23910.
  4072. - The directory authority "Longclaw" has changed its IP address.
  4073. Closes ticket 23592.
  4074. o Major bugfixes (relay, crash, assertion failure, backport from 0.3.2.2-alpha):
  4075. - Fix a timing-based assertion failure that could occur when the
  4076. circuit out-of-memory handler freed a connection's output buffer.
  4077. Fixes bug 23690; bugfix on 0.2.6.1-alpha.
  4078. o Minor features (directory authorities, backport from 0.3.2.2-alpha):
  4079. - Remove longclaw's IPv6 address, as it will soon change. Authority
  4080. IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
  4081. 3/8 directory authorities with IPv6 addresses, but there are also
  4082. 52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
  4083. o Minor features (geoip):
  4084. - Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
  4085. Country database.
  4086. Changes in version 0.2.9.13 - 2017-10-25
  4087. Tor 0.2.9.13 backports a collection of bugfixes from later Tor release
  4088. series, including a bugfix for a crash issue that had affected relays
  4089. under memory pressure. It also adds a new directory authority, Bastet.
  4090. o Directory authority changes:
  4091. - Add "Bastet" as a ninth directory authority to the default list.
  4092. Closes ticket 23910.
  4093. - The directory authority "Longclaw" has changed its IP address.
  4094. Closes ticket 23592.
  4095. o Major bugfixes (relay, crash, assertion failure, backport from 0.3.2.2-alpha):
  4096. - Fix a timing-based assertion failure that could occur when the
  4097. circuit out-of-memory handler freed a connection's output buffer.
  4098. Fixes bug 23690; bugfix on 0.2.6.1-alpha.
  4099. o Minor features (directory authorities, backport from 0.3.2.2-alpha):
  4100. - Remove longclaw's IPv6 address, as it will soon change. Authority
  4101. IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
  4102. 3/8 directory authorities with IPv6 addresses, but there are also
  4103. 52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
  4104. o Minor features (geoip):
  4105. - Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
  4106. Country database.
  4107. o Minor bugfixes (directory authority, backport from 0.3.1.5-alpha):
  4108. - When a directory authority rejects a descriptor or extrainfo with
  4109. a given digest, mark that digest as undownloadable, so that we do
  4110. not attempt to download it again over and over. We previously
  4111. tried to avoid downloading such descriptors by other means, but we
  4112. didn't notice if we accidentally downloaded one anyway. This
  4113. behavior became problematic in 0.2.7.2-alpha, when authorities
  4114. began pinning Ed25519 keys. Fixes bug 22349; bugfix
  4115. on 0.2.1.19-alpha.
  4116. o Minor bugfixes (memory safety, backport from 0.3.2.3-alpha):
  4117. - Clear the address when node_get_prim_orport() returns early.
  4118. Fixes bug 23874; bugfix on 0.2.8.2-alpha.
  4119. o Minor bugfixes (Windows service, backport from 0.3.1.6-rc):
  4120. - When running as a Windows service, set the ID of the main thread
  4121. correctly. Failure to do so made us fail to send log messages to
  4122. the controller in 0.2.1.16-rc, slowed down controller event
  4123. delivery in 0.2.7.3-rc and later, and crash with an assertion
  4124. failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha.
  4125. Patch and diagnosis from "Vort".
  4126. Changes in version 0.3.0.12 - 2017-10-25
  4127. Tor 0.3.0.12 backports a collection of bugfixes from later Tor release
  4128. series, including a bugfix for a crash issue that had affected relays
  4129. under memory pressure. It also adds a new directory authority, Bastet.
  4130. Note: the Tor 0.3.0 series will no longer be supported after 26 Jan
  4131. 2018. If you need a release with long-term support, please stick with
  4132. the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
  4133. o Directory authority changes:
  4134. - Add "Bastet" as a ninth directory authority to the default list.
  4135. Closes ticket 23910.
  4136. - The directory authority "Longclaw" has changed its IP address.
  4137. Closes ticket 23592.
  4138. o Major bugfixes (relay, crash, assertion failure, backport from 0.3.2.2-alpha):
  4139. - Fix a timing-based assertion failure that could occur when the
  4140. circuit out-of-memory handler freed a connection's output buffer.
  4141. Fixes bug 23690; bugfix on 0.2.6.1-alpha.
  4142. o Minor features (directory authorities, backport from 0.3.2.2-alpha):
  4143. - Remove longclaw's IPv6 address, as it will soon change. Authority
  4144. IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
  4145. 3/8 directory authorities with IPv6 addresses, but there are also
  4146. 52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
  4147. o Minor features (geoip):
  4148. - Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
  4149. Country database.
  4150. o Minor bugfixes (directory authority, backport from 0.3.1.5-alpha):
  4151. - When a directory authority rejects a descriptor or extrainfo with
  4152. a given digest, mark that digest as undownloadable, so that we do
  4153. not attempt to download it again over and over. We previously
  4154. tried to avoid downloading such descriptors by other means, but we
  4155. didn't notice if we accidentally downloaded one anyway. This
  4156. behavior became problematic in 0.2.7.2-alpha, when authorities
  4157. began pinning Ed25519 keys. Fixes bug 22349; bugfix
  4158. on 0.2.1.19-alpha.
  4159. o Minor bugfixes (hidden service, relay, backport from 0.3.2.2-alpha):
  4160. - Avoid a possible double close of a circuit by the intro point on
  4161. error of sending the INTRO_ESTABLISHED cell. Fixes bug 23610;
  4162. bugfix on 0.3.0.1-alpha.
  4163. o Minor bugfixes (memory safety, backport from 0.3.2.3-alpha):
  4164. - Clear the address when node_get_prim_orport() returns early.
  4165. Fixes bug 23874; bugfix o