ReleaseNotes 1.2 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627
  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.4.2.6 - 2020-01-30
  5. This is the second stable release in the 0.4.2.x series. It backports
  6. several bugfixes from 0.4.3.1-alpha, including some that had affected
  7. the Linux seccomp2 sandbox or Windows services. If you're running with
  8. one of those configurations, you'll probably want to upgrade;
  9. otherwise, you should be fine with 0.4.2.5.
  10. o Major bugfixes (linux seccomp sandbox, backport from 0.4.3.1-alpha):
  11. - Correct how we use libseccomp. Particularly, stop assuming that
  12. rules are applied in a particular order or that more rules are
  13. processed after the first match. Neither is the case! In
  14. libseccomp <2.4.0 this lead to some rules having no effect.
  15. libseccomp 2.4.0 changed how rules are generated, leading to a
  16. different ordering, which in turn led to a fatal crash during
  17. startup. Fixes bug 29819; bugfix on 0.2.5.1-alpha. Patch by
  18. Peter Gerber.
  19. - Fix crash when reloading logging configuration while the
  20. experimental sandbox is enabled. Fixes bug 32841; bugfix on
  21. 0.4.1.7. Patch by Peter Gerber.
  22. o Minor bugfixes (correctness checks, backport from 0.4.3.1-alpha):
  23. - Use GCC/Clang's printf-checking feature to make sure that
  24. tor_assertf() arguments are correctly typed. Fixes bug 32765;
  25. bugfix on 0.4.1.1-alpha.
  26. o Minor bugfixes (logging, crash, backport from 0.4.3.1-alpha):
  27. - Avoid a possible crash when trying to log a (fatal) assertion
  28. failure about mismatched magic numbers in configuration objects.
  29. Fixes bug 32771; bugfix on 0.4.2.1-alpha.
  30. o Minor bugfixes (testing, backport from 0.4.3.1-alpha):
  31. - When TOR_DISABLE_PRACTRACKER is set, do not apply it to the
  32. test_practracker.sh script. Doing so caused a test failure. Fixes
  33. bug 32705; bugfix on 0.4.2.1-alpha.
  34. - When TOR_DISABLE_PRACTRACKER is set, log a notice to stderr when
  35. skipping practracker checks. Fixes bug 32705; bugfix
  36. on 0.4.2.1-alpha.
  37. o Minor bugfixes (windows service, backport from 0.4.3.1-alpha):
  38. - Initialize the publish/subscribe system when running as a windows
  39. service. Fixes bug 32778; bugfix on 0.4.1.1-alpha.
  40. o Testing (backport from 0.4.3.1-alpha):
  41. - Turn off Tor's Sandbox in Chutney jobs, and run those jobs on
  42. Ubuntu Bionic. Turning off the Sandbox is a work-around, until we
  43. fix the sandbox errors in 32722. Closes ticket 32240.
  44. - Re-enable the Travis CI macOS Chutney build, but don't let it
  45. prevent the Travis job from finishing. (The Travis macOS jobs are
  46. slow, so we don't want to have it delay the whole CI process.)
  47. Closes ticket 32629.
  48. o Testing (continuous integration, backport from 0.4.3.1-alpha):
  49. - Use zstd in our Travis Linux builds. Closes ticket 32242.
  50. Changes in version 0.4.2.5 - 2019-12-09
  51. This is the first stable release in the 0.4.2.x series. This series
  52. improves reliability and stability, and includes several stability and
  53. correctness improvements for onion services. It also fixes many smaller
  54. bugs present in previous series.
  55. Per our support policy, we will support the 0.4.2.x series for nine
  56. months, or until three months after the release of a stable 0.4.3.x:
  57. whichever is longer. If you need longer-term support, please stick
  58. with 0.3.5.x, which will we plan to support until Feb 2022.
  59. Below are the changes since 0.4.1.4-rc. For a complete list of only
  60. the changes since 0.4.2.4-rc, see the ChangeLog file.
  61. o Major features (directory authorities):
  62. - Directory authorities now reject relays running all currently
  63. deprecated release series. The currently supported release series
  64. are: 0.2.9, 0.3.5, 0.4.0, 0.4.1, and 0.4.2. Closes ticket 31549.
  65. o Major features (onion service v3, denial of service):
  66. - Add onion service introduction denial of service defenses. Intro
  67. points can now rate-limit client introduction requests, using
  68. parameters that can be sent by the service within the
  69. ESTABLISH_INTRO cell. If the cell extension for this is not used,
  70. the intro point will honor the consensus parameters. Closes
  71. ticket 30924.
  72. o Major bugfixes (circuit build, guard):
  73. - When considering upgrading circuits from "waiting for guard" to
  74. "open", always ignore circuits that are marked for close.
  75. Previously we could end up in the situation where a subsystem is
  76. notified of a circuit opening, but the circuit is still marked for
  77. close, leading to undesirable behavior. Fixes bug 30871; bugfix
  78. on 0.3.0.1-alpha.
  79. o Major bugfixes (crash, Linux, Android):
  80. - Tolerate systems (including some Android installations) where
  81. madvise and MADV_DONTDUMP are available at build-time, but not at
  82. run time. Previously, these systems would notice a failed syscall
  83. and abort. Fixes bug 31570; bugfix on 0.4.1.1-alpha.
  84. - Tolerate systems (including some Linux installations) where
  85. madvise and/or MADV_DONTFORK are available at build-time, but not
  86. at run time. Previously, these systems would notice a failed
  87. syscall and abort. Fixes bug 31696; bugfix on 0.4.1.1-alpha.
  88. o Major bugfixes (embedded Tor):
  89. - Avoid a possible crash when restarting Tor in embedded mode and
  90. enabling a different set of publish/subscribe messages. Fixes bug
  91. 31898; bugfix on 0.4.1.1-alpha.
  92. o Major bugfixes (relay):
  93. - Relays now respect their AccountingMax bandwidth again. When
  94. relays entered "soft" hibernation (which typically starts when
  95. we've hit 90% of our AccountingMax), we had stopped checking
  96. whether we should enter hard hibernation. Soft hibernation refuses
  97. new connections and new circuits, but the existing circuits can
  98. continue, meaning that relays could have exceeded their configured
  99. AccountingMax. Fixes bug 32108; bugfix on 0.4.0.1-alpha.
  100. o Major bugfixes (torrc parsing):
  101. - Stop ignoring torrc options after an %include directive, when the
  102. included directory ends with a file that does not contain any
  103. config options (but does contain comments or whitespace). Fixes
  104. bug 31408; bugfix on 0.3.1.1-alpha.
  105. o Major bugfixes (v3 onion services):
  106. - Onion services now always use the exact number of intro points
  107. configured with the HiddenServiceNumIntroductionPoints option (or
  108. fewer if nodes are excluded). Before, a service could sometimes
  109. pick more intro points than configured. Fixes bug 31548; bugfix
  110. on 0.3.2.1-alpha.
  111. o Minor feature (onion services, control port):
  112. - The ADD_ONION command's keyword "BEST" now defaults to ED25519-V3
  113. (v3) onion services. Previously it defaulted to RSA1024 (v2).
  114. Closes ticket 29669.
  115. o Minor features (auto-formatting scripts):
  116. - When annotating C macros, never generate a line that our check-
  117. spaces script would reject. Closes ticket 31759.
  118. - When annotating C macros, try to remove cases of double-negation.
  119. Closes ticket 31779.
  120. o Minor features (best practices tracker):
  121. - Our best-practices tracker now integrates with our include-checker
  122. tool to keep track of how many layering violations we have not yet
  123. fixed. We hope to reduce this number over time to improve Tor's
  124. modularity. Closes ticket 31176.
  125. - Add a TOR_PRACTRACKER_OPTIONS variable for passing arguments to
  126. practracker from the environment. We may want this for continuous
  127. integration. Closes ticket 31309.
  128. - Give a warning rather than an error when a practracker exception
  129. is violated by a small amount, add a --list-overbroad option to
  130. practracker that lists exceptions that are stricter than they need
  131. to be, and provide an environment variable for disabling
  132. practracker. Closes ticket 30752.
  133. - Our best-practices tracker now looks at headers as well as C
  134. files. Closes ticket 31175.
  135. o Minor features (build system):
  136. - Make pkg-config use --prefix when cross-compiling, if
  137. PKG_CONFIG_PATH is not set. Closes ticket 32191.
  138. - Add --disable-manpage and --disable-html-manual options to
  139. configure script. This will enable shortening build times by not
  140. building documentation. Resolves issue 19381.
  141. o Minor features (compilation):
  142. - Log a more useful error message when we are compiling and one of
  143. the compile-time hardening options we have selected can be linked
  144. but not executed. Closes ticket 27530.
  145. o Minor features (configuration):
  146. - The configuration code has been extended to allow splitting
  147. configuration data across multiple objects. Previously, all
  148. configuration data needed to be kept in a single object, which
  149. tended to become bloated. Closes ticket 31240.
  150. o Minor features (continuous integration):
  151. - When building on Appveyor and Travis, pass the "-k" flag to make,
  152. so that we are informed of all compilation failures, not just the
  153. first one or two. Closes ticket 31372.
  154. - When running CI builds on Travis, put some random data in
  155. ~/.torrc, to make sure no tests are reading the Tor configuration
  156. file from its default location. Resolves issue 30102.
  157. o Minor features (debugging):
  158. - Log a nonfatal assertion failure if we encounter a configuration
  159. line whose command is "CLEAR" but which has a nonempty value. This
  160. should be impossible, according to the rules of our configuration
  161. line parsing. Closes ticket 31529.
  162. o Minor features (geoip):
  163. - Update geoip and geoip6 to the December 3 2019 Maxmind GeoLite2
  164. Country database. Closes ticket 32685.
  165. o Minor features (git hooks):
  166. - Our pre-commit git hook now checks for a special file before
  167. running practracker, so that practracker only runs on branches
  168. that are based on master. Since the pre-push hook calls the pre-
  169. commit hook, practracker will also only run before pushes of
  170. branches based on master. Closes ticket 30979.
  171. o Minor features (git scripts):
  172. - Add a "--" command-line argument, to separate git-push-all.sh
  173. script arguments from arguments that are passed through to git
  174. push. Closes ticket 31314.
  175. - Add a -r <remote-name> argument to git-push-all.sh, so the script
  176. can push test branches to a personal remote. Closes ticket 31314.
  177. - Add a -t <test-branch-prefix> argument to git-merge-forward.sh and
  178. git-push-all.sh, which makes these scripts create, merge forward,
  179. and push test branches. Closes ticket 31314.
  180. - Add a -u argument to git-merge-forward.sh, so that the script can
  181. re-use existing test branches after a merge failure and fix.
  182. Closes ticket 31314.
  183. - Add a TOR_GIT_PUSH env var, which sets the default git push
  184. command and arguments for git-push-all.sh. Closes ticket 31314.
  185. - Add a TOR_PUSH_DELAY variable to git-push-all.sh, which makes the
  186. script push master and maint branches with a delay between each
  187. branch. These delays trigger the CI jobs in a set order, which
  188. should show the most likely failures first. Also make pushes
  189. atomic by default, and make the script pass any command-line
  190. arguments to git push. Closes ticket 29879.
  191. - Call the shellcheck script from the pre-commit hook. Closes
  192. ticket 30967.
  193. - Skip pushing test branches that are the same as a remote
  194. maint/release/master branch in git-push-all.sh by default. Add a
  195. -s argument, so git-push-all.sh can push all test branches. Closes
  196. ticket 31314.
  197. o Minor features (IPv6, logging):
  198. - Log IPv6 addresses as well as IPv4 addresses when describing
  199. routerinfos, routerstatuses, and nodes. Closes ticket 21003.
  200. o Minor features (maintenance scripts):
  201. - Add a Coccinelle script to detect bugs caused by incrementing or
  202. decrementing a variable inside a call to log_debug(). Since
  203. log_debug() is a macro whose arguments are conditionally
  204. evaluated, it is usually an error to do this. One such bug was
  205. 30628, in which SENDME cells were miscounted by a decrement
  206. operator inside a log_debug() call. Closes ticket 30743.
  207. o Minor features (onion service v3):
  208. - Do not allow single hop clients to fetch or post an HS descriptor
  209. from an HSDir. Closes ticket 24964.
  210. o Minor features (onion service):
  211. - Disallow single-hop clients at the introduction point. We've
  212. removed Tor2web support a while back and single-hop rendezvous
  213. attempts are blocked at the relays. This change should remove load
  214. off the network from spammy clients. Close ticket 24963.
  215. o Minor features (onion services v3):
  216. - Assist users who try to setup v2 client authorization in v3 onion
  217. services by pointing them to the right documentation. Closes
  218. ticket 28966.
  219. o Minor features (stem tests):
  220. - Change "make test-stem" so it only runs the stem tests that use
  221. tor. This change makes test-stem faster and more reliable. Closes
  222. ticket 31554.
  223. o Minor features (testing):
  224. - When running tests that attempt to look up hostnames, replace the
  225. libc name lookup functions with ones that do not actually touch
  226. the network. This way, the tests complete more quickly in the
  227. presence of a slow or missing DNS resolver. Closes ticket 31841.
  228. - Add a script to invoke "tor --dump-config" and "tor
  229. --verify-config" with various configuration options, and see
  230. whether tor's resulting configuration or error messages are what
  231. we expect. Use it for integration testing of our +Option and
  232. /Option flags. Closes ticket 31637.
  233. - Improve test coverage for our existing configuration parsing and
  234. management API. Closes ticket 30893.
  235. - Add integration tests to make sure that practracker gives the
  236. outputs we expect. Closes ticket 31477.
  237. - The practracker self-tests are now run as part of the Tor test
  238. suite. Closes ticket 31304.
  239. o Minor features (testing, continuous integration):
  240. - Disable all but one Travis CI macOS build, to mitigate slow
  241. scheduling of Travis macOS jobs. Closes ticket 32177.
  242. - Run the chutney IPv6 networks as part of Travis CI. Closes
  243. ticket 30860.
  244. - Simplify the Travis CI build matrix, and optimise for build time.
  245. Closes ticket 31859.
  246. - Use Windows Server 2019 instead of Windows Server 2016 in our
  247. Appveyor builds. Closes ticket 32086.
  248. o Minor features (token bucket):
  249. - Implement a generic token bucket that uses a single counter, for
  250. use in anti-DoS onion service work. Closes ticket 30687.
  251. o Minor bugfixes (Appveyor continuous integration):
  252. - Avoid spurious errors when Appveyor CI fails before the install
  253. step. Fixes bug 31884; bugfix on 0.3.4.2-alpha.
  254. o Minor bugfixes (best practices tracker):
  255. - Fix a few issues in the best-practices script, including tests,
  256. tab tolerance, error reporting, and directory-exclusion logic.
  257. Fixes bug 29746; bugfix on 0.4.1.1-alpha.
  258. - When running check-best-practices, only consider files in the src
  259. subdirectory. Previously we had recursively considered all
  260. subdirectories, which made us get confused by the temporary
  261. directories made by "make distcheck". Fixes bug 31578; bugfix
  262. on 0.4.1.1-alpha.
  263. o Minor bugfixes (build system):
  264. - Interpret "--disable-module-dirauth=no" correctly. Fixes bug
  265. 32124; bugfix on 0.3.4.1-alpha.
  266. - Interpret "--with-tcmalloc=no" correctly. Fixes bug 32124; bugfix
  267. on 0.2.0.20-rc.
  268. - Stop failing when jemalloc is requested, but tcmalloc is not
  269. found. Fixes bug 32124; bugfix on 0.3.5.1-alpha.
  270. - When pkg-config is not installed, or a library that depends on
  271. pkg-config is not found, tell the user what to do to fix the
  272. problem. Fixes bug 31922; bugfix on 0.3.1.1-alpha.
  273. - Do not include the deprecated <sys/sysctl.h> on Linux or Windows
  274. systems. Fixes bug 31673; bugfix on 0.2.5.4-alpha.
  275. o Minor bugfixes (chutney, makefiles, documentation):
  276. - "make test-network-all" now shows the warnings from each test-
  277. network.sh run on the console, so developers see new warnings
  278. early. We've also improved the documentation for this feature, and
  279. renamed a Makefile variable so the code is self-documenting. Fixes
  280. bug 30455; bugfix on 0.3.0.4-rc.
  281. o Minor bugfixes (client, onion service v3):
  282. - Fix a BUG() assertion that occurs within a very small race window
  283. between when a client intro circuit opens and when its descriptor
  284. gets cleaned up from the cache. The circuit is now closed early,
  285. which will trigger a re-fetch of the descriptor and continue the
  286. connection. Fixes bug 28970; bugfix on 0.3.2.1-alpha.
  287. o Minor bugfixes (code quality):
  288. - Fix "make check-includes" so it runs correctly on out-of-tree
  289. builds. Fixes bug 31335; bugfix on 0.3.5.1-alpha.
  290. o Minor bugfixes (compilation):
  291. - Add more stub functions to fix compilation on Android with link-
  292. time optimization when --disable-module-dirauth is used.
  293. Previously, these compilation settings would make the compiler
  294. look for functions that didn't exist. Fixes bug 31552; bugfix
  295. on 0.4.1.1-alpha.
  296. - Suppress spurious float-conversion warnings from GCC when calling
  297. floating-point classifier functions on FreeBSD. Fixes part of bug
  298. 31687; bugfix on 0.3.1.5-alpha.
  299. o Minor bugfixes (configuration):
  300. - Invalid floating-point values in the configuration file are now
  301. treated as errors in the configuration. Previously, they were
  302. ignored and treated as zero. Fixes bug 31475; bugfix on 0.0.1.
  303. o Minor bugfixes (connections):
  304. - Avoid trying to read data from closed connections, which can cause
  305. needless loops in Libevent and infinite loops in Shadow. Fixes bug
  306. 30344; bugfix on 0.1.1.1-alpha.
  307. o Minor bugfixes (controller protocol):
  308. - Fix the MAPADDRESS controller command to accept one or more
  309. arguments. Previously, it required two or more arguments, and
  310. ignored the first. Fixes bug 31772; bugfix on 0.4.1.1-alpha.
  311. o Minor bugfixes (coverity):
  312. - Add an assertion when parsing a BEGIN cell so that coverity can be
  313. sure that we are not about to dereference a NULL address. Fixes
  314. bug 31026; bugfix on 0.2.4.7-alpha. This is CID 1447296.
  315. - In our siphash implementation, when building for coverity, use
  316. memcpy in place of a switch statement, so that coverity can tell
  317. we are not accessing out-of-bounds memory. Fixes bug 31025; bugfix
  318. on 0.2.8.1-alpha. This is tracked as CID 1447293 and 1447295.
  319. - Fix several coverity warnings from our unit tests. Fixes bug
  320. 31030; bugfix on 0.2.4.1-alpha, 0.3.2.1-alpha, and 0.4.0.1-alpha.
  321. o Minor bugfixes (crash):
  322. - When running Tor with an option like --verify-config or
  323. --dump-config that does not start the event loop, avoid crashing
  324. if we try to exit early because of an error. Fixes bug 32407;
  325. bugfix on 0.3.3.1-alpha.
  326. o Minor bugfixes (developer tooling):
  327. - Only log git script changes in the post-merge script when the
  328. merge was to the master branch. Fixes bug 31040; bugfix
  329. on 0.4.1.1-alpha.
  330. o Minor bugfixes (directory authorities):
  331. - Return a distinct status when formatting annotations fails. Fixes
  332. bug 30780; bugfix on 0.2.0.8-alpha.
  333. o Minor bugfixes (error handling):
  334. - Always lock the backtrace buffer before it is used. Fixes bug
  335. 31734; bugfix on 0.2.5.3-alpha.
  336. - On abort, try harder to flush the output buffers of log messages.
  337. On some platforms (macOS), log messages could be discarded when
  338. the process terminates. Fixes bug 31571; bugfix on 0.3.5.1-alpha.
  339. - Report the tor version whenever an assertion fails. Previously, we
  340. only reported the Tor version on some crashes, and some non-fatal
  341. assertions. Fixes bug 31571; bugfix on 0.3.5.1-alpha.
  342. - When tor aborts due to an error, close log file descriptors before
  343. aborting. Closing the logs makes some OSes flush log file buffers,
  344. rather than deleting buffered log lines. Fixes bug 31594; bugfix
  345. on 0.2.5.2-alpha.
  346. o Minor bugfixes (FreeBSD, PF-based proxy, IPv6):
  347. - When extracting an IPv6 address from a PF-based proxy, verify that
  348. we are actually configured to receive an IPv6 address, and log an
  349. internal error if not. Fixes part of bug 31687; bugfix
  350. on 0.2.3.4-alpha.
  351. o Minor bugfixes (git hooks):
  352. - Remove a duplicate call to practracker from the pre-push hook. The
  353. pre-push hook already calls the pre-commit hook, which calls
  354. practracker. Fixes bug 31462; bugfix on 0.4.1.1-alpha.
  355. o Minor bugfixes (git scripts):
  356. - Stop hard-coding the bash path in the git scripts. Some OSes don't
  357. have bash in /usr/bin, others have an ancient bash at this path.
  358. Fixes bug 30840; bugfix on 0.4.0.1-alpha.
  359. - Stop hard-coding the tor master branch name and worktree path in
  360. the git scripts. Fixes bug 30841; bugfix on 0.4.0.1-alpha.
  361. - Allow git-push-all.sh to be run from any directory. Previously,
  362. the script only worked if run from an upstream worktree directory.
  363. Closes ticket 31678.
  364. o Minor bugfixes (guards):
  365. - When tor is missing descriptors for some primary entry guards,
  366. make the log message less alarming. It's normal for descriptors to
  367. expire, as long as tor fetches new ones soon after. Fixes bug
  368. 31657; bugfix on 0.3.3.1-alpha.
  369. o Minor bugfixes (ipv6):
  370. - Check for private IPv6 addresses alongside their IPv4 equivalents
  371. when authorities check descriptors. Previously, we only checked
  372. for private IPv4 addresses. Fixes bug 31088; bugfix on
  373. 0.2.3.21-rc. Patch by Neel Chauhan.
  374. - When parsing microdescriptors, we should check the IPv6 exit
  375. policy alongside IPv4. Previously, we checked both exit policies
  376. for only router info structures, while microdescriptors were
  377. IPv4-only. Fixes bug 27284; bugfix on 0.2.3.1-alpha. Patch by
  378. Neel Chauhan.
  379. o Minor bugfixes (logging):
  380. - Add a missing check for HAVE_PTHREAD_H, because the backtrace code
  381. uses mutexes. Fixes bug 31614; bugfix on 0.2.5.2-alpha.
  382. - Disable backtrace signal handlers when shutting down tor. Fixes
  383. bug 31614; bugfix on 0.2.5.2-alpha.
  384. - Rate-limit our the logging message about the obsolete .exit
  385. notation. Previously, there was no limit on this warning, which
  386. could potentially be triggered many times by a hostile website.
  387. Fixes bug 31466; bugfix on 0.2.2.1-alpha.
  388. - When initialising log domain masks, only set known log domains.
  389. Fixes bug 31854; bugfix on 0.2.1.1-alpha.
  390. - Change log level of message "Hash of session info was not as
  391. expected" to LOG_PROTOCOL_WARN. Fixes bug 12399; bugfix
  392. on 0.1.1.10-alpha.
  393. - Fix a code issue that would have broken our parsing of log domains
  394. as soon as we had 33 of them. Fortunately, we still only have 29.
  395. Fixes bug 31451; bugfix on 0.4.1.4-rc.
  396. o Minor bugfixes (logging, protocol violations):
  397. - Do not log a nonfatal assertion failure when receiving a VERSIONS
  398. cell on a connection using the obsolete v1 link protocol. Log a
  399. protocol_warn instead. Fixes bug 31107; bugfix on 0.2.4.4-alpha.
  400. o Minor bugfixes (mainloop, periodic events, in-process API):
  401. - Reset the periodic events' "enabled" flag when Tor is shut down
  402. cleanly. Previously, this flag was left on, which caused periodic
  403. events not to be re-enabled when Tor was relaunched in-process
  404. with tor_api.h after a shutdown. Fixes bug 32058; bugfix
  405. on 0.3.3.1-alpha.
  406. o Minor bugfixes (memory management):
  407. - Stop leaking a small amount of memory in nt_service_install(), in
  408. unreachable code. Fixes bug 30799; bugfix on 0.2.0.7-alpha. Patch
  409. by Xiaoyin Liu.
  410. o Minor bugfixes (modules):
  411. - Explain what the optional Directory Authority module is, and what
  412. happens when it is disabled. Fixes bug 31825; bugfix
  413. on 0.3.4.1-alpha.
  414. o Minor bugfixes (multithreading):
  415. - Avoid some undefined behaviour when freeing mutexes. Fixes bug
  416. 31736; bugfix on 0.0.7.
  417. o Minor bugfixes (networking, IP addresses):
  418. - When parsing addresses via Tor's internal DNS lookup API, reject
  419. IPv4 addresses in square brackets, and accept IPv6 addresses in
  420. square brackets. This change completes the work started in 23082,
  421. making address parsing consistent between tor's internal DNS
  422. lookup and address parsing APIs. Fixes bug 30721; bugfix
  423. on 0.2.1.5-alpha.
  424. - When parsing addresses via Tor's internal address:port parsing and
  425. DNS lookup APIs, require IPv6 addresses with ports to have square
  426. brackets. But allow IPv6 addresses without ports, whether or not
  427. they have square brackets. Fixes bug 30721; bugfix
  428. on 0.2.1.5-alpha.
  429. o Minor bugfixes (onion service v3):
  430. - When purging the client descriptor cache, close any introduction
  431. point circuits associated with purged cache entries. This avoids
  432. picking those circuits later when connecting to the same
  433. introduction points. Fixes bug 30921; bugfix on 0.3.2.1-alpha.
  434. o Minor bugfixes (onion services):
  435. - In the hs_ident_circuit_t data structure, remove the unused field
  436. circuit_type and the respective argument in hs_ident_circuit_new().
  437. This field was set by clients (for introduction) and services (for
  438. introduction and rendezvous) but was never used afterwards. Fixes
  439. bug 31490; bugfix on 0.3.2.1-alpha. Patch by Neel Chauhan.
  440. o Minor bugfixes (operator tools):
  441. - Make tor-print-ed-signing-cert(1) print certificate expiration
  442. date in RFC 1123 and UNIX timestamp formats, to make output
  443. machine readable. Fixes bug 31012; bugfix on 0.3.5.1-alpha.
  444. o Minor bugfixes (process management):
  445. - Remove overly strict assertions that triggered when a pluggable
  446. transport failed to launch. Fixes bug 31091; bugfix
  447. on 0.4.0.1-alpha.
  448. - Remove an assertion in the Unix process backend. This assertion
  449. would trigger when we failed to find the executable for a child
  450. process. Fixes bug 31810; bugfix on 0.4.0.1-alpha.
  451. o Minor bugfixes (relay):
  452. - Avoid crashing when starting with a corrupt keys directory where
  453. the old ntor key and the new ntor key are identical. Fixes bug
  454. 30916; bugfix on 0.2.4.8-alpha.
  455. o Minor bugfixes (rust):
  456. - Correctly exclude a redundant rust build job in Travis. Fixes bug
  457. 31463; bugfix on 0.3.5.4-alpha.
  458. - Raise the minimum rustc version to 1.31.0, as checked by configure
  459. and CI. Fixes bug 31442; bugfix on 0.3.5.4-alpha.
  460. o Minor bugfixes (sendme, code structure):
  461. - Rename the trunnel SENDME file definition from sendme.trunnel to
  462. sendme_cell.trunnel to avoid having twice sendme.{c|h} in the
  463. repository. Fixes bug 30769; bugfix on 0.4.1.1-alpha.
  464. o Minor bugfixes (statistics):
  465. - Stop removing the ed25519 signature if the extra info file is too
  466. big. If the signature data was removed, but the keyword was kept,
  467. this could result in an unparseable extra info file. Fixes bug
  468. 30958; bugfix on 0.2.7.2-alpha.
  469. o Minor bugfixes (subsystems):
  470. - Make the subsystem init order match the subsystem module
  471. dependencies. Call windows process security APIs as early as
  472. possible. Initialize logging before network and time, so that
  473. network and time can use logging. Fixes bug 31615; bugfix
  474. on 0.4.0.1-alpha.
  475. o Minor bugfixes (testing):
  476. - Avoid intermittent test failures due to a test that had relied on
  477. inconsistent timing sources. Fixes bug 31995; bugfix
  478. on 0.3.1.3-alpha.
  479. - When testing port rebinding, don't busy-wait for tor to log.
  480. Instead, actually sleep for a short time before polling again.
  481. Also improve the formatting of control commands and log messages.
  482. Fixes bug 31837; bugfix on 0.3.5.1-alpha.
  483. - Teach the util/socketpair_ersatz test to work correctly when we
  484. have no network stack configured. Fixes bug 30804; bugfix
  485. on 0.2.5.1-alpha.
  486. o Minor bugfixes (tests, SunOS):
  487. - Avoid a map_anon_nofork test failure due to a signed/unsigned
  488. integer comparison. Fixes bug 31897; bugfix on 0.4.1.1-alpha.
  489. o Minor bugfixes (tls, logging):
  490. - Log bugs about the TLS read buffer's length only once, rather than
  491. filling the logs with similar warnings. Fixes bug 31939; bugfix
  492. on 0.3.0.4-rc.
  493. o Minor bugfixes (v2 single onion services):
  494. - Always retry v2 single onion service intro and rend circuits with
  495. a 3-hop path. Previously, v2 single onion services used a 3-hop
  496. path when rendezvous circuits were retried after a remote or
  497. delayed failure, but a 1-hop path for immediate retries. Fixes bug
  498. 23818; bugfix on 0.2.9.3-alpha.
  499. o Minor bugfixes (v3 onion services):
  500. - When cleaning up intro circuits for a v3 onion service, don't
  501. remove circuits that have an established or pending circuit, even
  502. if they ran out of retries. This way, we don't remove a circuit on
  503. its last retry. Fixes bug 31652; bugfix on 0.3.2.1-alpha.
  504. o Minor bugfixes (v3 single onion services):
  505. - Always retry v3 single onion service intro and rend circuits with
  506. a 3-hop path. Previously, v3 single onion services used a 3-hop
  507. path when rend circuits were retried after a remote or delayed
  508. failure, but a 1-hop path for immediate retries. Fixes bug 23818;
  509. bugfix on 0.3.2.1-alpha.
  510. - Make v3 single onion services fall back to a 3-hop intro, when all
  511. intro points are unreachable via a 1-hop path. Previously, v3
  512. single onion services failed when all intro nodes were unreachable
  513. via a 1-hop path. Fixes bug 23507; bugfix on 0.3.2.1-alpha.
  514. o Code simplification and refactoring:
  515. - Refactor connection_control_process_inbuf() to reduce the size of
  516. a practracker exception. Closes ticket 31840.
  517. - Refactor the microdescs_parse_from_string() function into smaller
  518. pieces, for better comprehensibility. Closes ticket 31675.
  519. - Use SEVERITY_MASK_IDX() to find the LOG_* mask indexes in the unit
  520. tests and fuzzers, rather than using hard-coded values. Closes
  521. ticket 31334.
  522. - Interface for function `decrypt_desc_layer` cleaned up. Closes
  523. ticket 31589.
  524. o Documentation:
  525. - Correct the description of "GuardLifetime". Fixes bug 31189;
  526. bugfix on 0.3.0.1-alpha.
  527. - Make clear in the man page, in both the bandwidth section and the
  528. AccountingMax section, that Tor counts in powers of two, not
  529. powers of ten: 1 GByte is 1024*1024*1024 bytes, not one billion
  530. bytes. Resolves ticket 32106.
  531. - Document the signal-safe logging behaviour in the tor man page.
  532. Also add some comments to the relevant functions. Closes
  533. ticket 31839.
  534. - Explain why we can't destroy the backtrace buffer mutex. Explain
  535. why we don't need to destroy the log mutex. Closes ticket 31736.
  536. - The Tor source code repository now includes a (somewhat dated)
  537. description of Tor's modular architecture, in doc/HACKING/design.
  538. This is based on the old "tor-guts.git" repository, which we are
  539. adopting and superseding. Closes ticket 31849.
  540. - Improve documentation in circuit padding subsystem. Patch by
  541. Tobias Pulls. Closes ticket 31113.
  542. - Include an example usage for IPv6 ORPort in our sample torrc.
  543. Closes ticket 31320; patch from Ali Raheem.
  544. - Use RFC 2397 data URL scheme to embed an image into tor-exit-
  545. notice.html so that operators no longer have to host it
  546. themselves. Closes ticket 31089.
  547. o Removed features:
  548. - No longer include recommended package digests in votes as detailed
  549. in proposal 301. The RecommendedPackages torrc option is
  550. deprecated and will no longer have any effect. "package" lines
  551. will still be considered when computing consensuses for consensus
  552. methods that include them. (This change has no effect on the list
  553. of recommended Tor versions, which is still in use.) Closes
  554. ticket 29738.
  555. - Remove torctl.in from contrib/dist directory. Resolves
  556. ticket 30550.
  557. o Testing:
  558. - Require C99 standards-conforming code in Travis CI, but allow GNU
  559. gcc extensions. Also activates clang's -Wtypedef-redefinition
  560. warnings. Build some jobs with -std=gnu99, and some jobs without.
  561. Closes ticket 32500.
  562. - Run shellcheck for all non-third-party shell scripts that are
  563. shipped with Tor. Closes ticket 29533.
  564. - When checking shell scripts, ignore any user-created directories.
  565. Closes ticket 30967.
  566. o Code simplification and refactoring (config handling):
  567. - Extract our variable manipulation code from confparse.c to a new
  568. lower-level typedvar.h module. Closes ticket 30864.
  569. - Lower another layer of object management from confparse.c to a
  570. more general tool. Now typed structure members are accessible via
  571. an abstract type. Implements ticket 30914.
  572. - Move our backend logic for working with configuration and state
  573. files into a lower-level library, since it no longer depends on
  574. any tor-specific functionality. Closes ticket 31626.
  575. - Numerous simplifications in configuration-handling logic: remove
  576. duplicated macro definitions, replace magical names with flags,
  577. and refactor "TestingTorNetwork" to use the same default-option
  578. logic as the rest of Tor. Closes ticket 30935.
  579. - Replace our ad-hoc set of flags for configuration variables and
  580. configuration variable types with fine-grained orthogonal flags
  581. corresponding to the actual behavior we want. Closes ticket 31625.
  582. o Code simplification and refactoring (misc):
  583. - Eliminate some uses of lower-level control reply abstractions,
  584. primarily in the onion_helper functions. Closes ticket 30889.
  585. - Rework bootstrap tracking to use the new publish-subscribe
  586. subsystem. Closes ticket 29976.
  587. - Rewrite format_node_description() and router_get_verbose_nickname()
  588. to use strlcpy() and strlcat(). The previous implementation used
  589. memcpy() and pointer arithmetic, which was error-prone. Closes
  590. ticket 31545. This is CID 1452819.
  591. - Split extrainfo_dump_to_string() into smaller functions. Closes
  592. ticket 30956.
  593. - Use the ptrdiff_t type consistently for expressing variable
  594. offsets and pointer differences. Previously we incorrectly (but
  595. harmlessly) used int and sometimes off_t for these cases. Closes
  596. ticket 31532.
  597. - Use the subsystems mechanism to manage the main event loop code.
  598. Closes ticket 30806.
  599. - Various simplifications and minor improvements to the circuit
  600. padding machines. Patch by Tobias Pulls. Closes tickets 31112
  601. and 31098.
  602. o Documentation (hard-coded directories):
  603. - Improve the documentation for the DirAuthority and FallbackDir
  604. torrc options. Closes ticket 30955.
  605. o Documentation (tor.1 man page):
  606. - Fix typo in tor.1 man page: the option is "--help", not "-help".
  607. Fixes bug 31008; bugfix on 0.2.2.9-alpha.
  608. o Testing (continuous integration):
  609. - Use Ubuntu Bionic images for our Travis CI builds, so we can get a
  610. recent version of coccinelle. But leave chutney on Ubuntu Trusty,
  611. until we can fix some Bionic permissions issues (see ticket
  612. 32240). Related to ticket 31919.
  613. - Install the mingw OpenSSL package in Appveyor. This makes sure
  614. that the OpenSSL headers and libraries match in Tor's Appveyor
  615. builds. (This bug was triggered by an Appveyor image update.)
  616. Fixes bug 32449; bugfix on 0.3.5.6-rc.
  617. - In Travis, use Xcode 11.2 on macOS 10.14. Closes ticket 32241.
  618. Changes in version 0.4.1.6 - 2019-09-19
  619. This release backports several bugfixes to improve stability and
  620. correctness. Anyone experiencing build problems or crashes with 0.4.1.5,
  621. or experiencing reliability issues with single onion services, should
  622. upgrade.
  623. o Major bugfixes (crash, Linux, Android, backport from 0.4.2.1-alpha):
  624. - Tolerate systems (including some Android installations) where
  625. madvise and MADV_DONTDUMP are available at build-time, but not at
  626. run time. Previously, these systems would notice a failed syscall
  627. and abort. Fixes bug 31570; bugfix on 0.4.1.1-alpha.
  628. - Tolerate systems (including some Linux installations) where
  629. madvise and/or MADV_DONTFORK are available at build-time, but not
  630. at run time. Previously, these systems would notice a failed
  631. syscall and abort. Fixes bug 31696; bugfix on 0.4.1.1-alpha.
  632. o Minor features (stem tests, backport from 0.4.2.1-alpha):
  633. - Change "make test-stem" so it only runs the stem tests that use
  634. tor. This change makes test-stem faster and more reliable. Closes
  635. ticket 31554.
  636. o Minor bugfixes (build system, backport form 0.4.2.1-alpha):
  637. - Do not include the deprecated <sys/sysctl.h> on Linux or Windows
  638. systems. Fixes bug 31673; bugfix on 0.2.5.4-alpha.
  639. o Minor bugfixes (compilation, backport from 0.4.2.1-alpha):
  640. - Add more stub functions to fix compilation on Android with link-
  641. time optimization when --disable-module-dirauth is used.
  642. Previously, these compilation settings would make the compiler
  643. look for functions that didn't exist. Fixes bug 31552; bugfix
  644. on 0.4.1.1-alpha.
  645. - Suppress spurious float-conversion warnings from GCC when calling
  646. floating-point classifier functions on FreeBSD. Fixes part of bug
  647. 31687; bugfix on 0.3.1.5-alpha.
  648. o Minor bugfixes (controller protocol):
  649. - Fix the MAPADDRESS controller command to accept one or more
  650. arguments. Previously, it required two or more arguments, and ignored
  651. the first. Fixes bug 31772; bugfix on 0.4.1.1-alpha.
  652. o Minor bugfixes (guards, backport from 0.4.2.1-alpha):
  653. - When tor is missing descriptors for some primary entry guards,
  654. make the log message less alarming. It's normal for descriptors to
  655. expire, as long as tor fetches new ones soon after. Fixes bug
  656. 31657; bugfix on 0.3.3.1-alpha.
  657. o Minor bugfixes (logging, backport from 0.4.2.1-alpha):
  658. - Change log level of message "Hash of session info was not as
  659. expected" to LOG_PROTOCOL_WARN. Fixes bug 12399; bugfix
  660. on 0.1.1.10-alpha.
  661. o Minor bugfixes (rust, backport from 0.4.2.1-alpha):
  662. - Correctly exclude a redundant rust build job in Travis. Fixes bug
  663. 31463; bugfix on 0.3.5.4-alpha.
  664. o Minor bugfixes (v2 single onion services, backport from 0.4.2.1-alpha):
  665. - Always retry v2 single onion service intro and rend circuits with
  666. a 3-hop path. Previously, v2 single onion services used a 3-hop
  667. path when rendezvous circuits were retried after a remote or
  668. delayed failure, but a 1-hop path for immediate retries. Fixes bug
  669. 23818; bugfix on 0.2.9.3-alpha.
  670. o Minor bugfixes (v3 single onion services, backport from 0.4.2.1-alpha):
  671. - Always retry v3 single onion service intro and rend circuits with
  672. a 3-hop path. Previously, v3 single onion services used a 3-hop
  673. path when rend circuits were retried after a remote or delayed
  674. failure, but a 1-hop path for immediate retries. Fixes bug 23818;
  675. bugfix on 0.3.2.1-alpha.
  676. - Make v3 single onion services fall back to a 3-hop intro, when all
  677. intro points are unreachable via a 1-hop path. Previously, v3
  678. single onion services failed when all intro nodes were unreachable
  679. via a 1-hop path. Fixes bug 23507; bugfix on 0.3.2.1-alpha.
  680. o Documentation (backport from 0.4.2.1-alpha):
  681. - Use RFC 2397 data URL scheme to embed an image into tor-exit-
  682. notice.html so that operators no longer have to host it
  683. themselves. Closes ticket 31089.
  684. Changes in version 0.4.1.5 - 2019-08-20
  685. This is the first stable release in the 0.4.1.x series. This series
  686. adds experimental circuit-level padding, authenticated SENDME cells to
  687. defend against certain attacks, and several performance improvements
  688. to save on CPU consumption. It fixes bugs in bootstrapping and v3
  689. onion services. It also includes numerous smaller features and
  690. bugfixes on earlier versions.
  691. Per our support policy, we will support the 0.4.1.x series for nine
  692. months, or until three months after the release of a stable 0.4.2.x:
  693. whichever is longer. If you need longer-term support, please stick
  694. with 0.3.5.x, which will we plan to support until Feb 2022.
  695. Below are the changes since 0.4.0.5. For a list of only the changes
  696. since 0.4.1.4-rc, see the ChangeLog file.
  697. o Directory authority changes:
  698. - The directory authority "dizum" has a new IP address. Closes
  699. ticket 31406.
  700. o Major features (circuit padding):
  701. - Onion service clients now add padding cells at the start of their
  702. INTRODUCE and RENDEZVOUS circuits, to make those circuits' traffic
  703. look more like general purpose Exit traffic. The overhead for this
  704. is 2 extra cells in each direction for RENDEZVOUS circuits, and 1
  705. extra upstream cell and 10 downstream cells for INTRODUCE
  706. circuits. This feature is only enabled when also supported by the
  707. circuit's middle node. (Clients may specify fixed middle nodes
  708. with the MiddleNodes option, and may force-disable this feature
  709. with the CircuitPadding option.) Closes ticket 28634.
  710. o Major features (code organization):
  711. - Tor now includes a generic publish-subscribe message-passing
  712. subsystem that we can use to organize intermodule dependencies. We
  713. hope to use this to reduce dependencies between modules that don't
  714. need to be related, and to generally simplify our codebase. Closes
  715. ticket 28226.
  716. o Major features (controller protocol):
  717. - Controller commands are now parsed using a generalized parsing
  718. subsystem. Previously, each controller command was responsible for
  719. parsing its own input, which led to strange inconsistencies.
  720. Closes ticket 30091.
  721. o Major features (flow control):
  722. - Implement authenticated SENDMEs as detailed in proposal 289. A
  723. SENDME cell now includes the digest of the traffic that it
  724. acknowledges, so that once an end point receives the SENDME, it
  725. can confirm the other side's knowledge of the previous cells that
  726. were sent, and prevent certain types of denial-of-service attacks.
  727. This behavior is controlled by two new consensus parameters: see
  728. the proposal for more details. Fixes ticket 26288.
  729. o Major features (performance):
  730. - Our node selection algorithm now excludes nodes in linear time.
  731. Previously, the algorithm was quadratic, which could slow down
  732. heavily used onion services. Closes ticket 30307.
  733. o Major features (performance, RNG):
  734. - Tor now constructs a fast secure pseudorandom number generator for
  735. each thread, to use when performance is critical. This PRNG is
  736. based on AES-CTR, using a buffering construction similar to
  737. libottery and the (newer) OpenBSD arc4random() code. It
  738. outperforms OpenSSL 1.1.1a's CSPRNG by roughly a factor of 100 for
  739. small outputs. Although we believe it to be cryptographically
  740. strong, we are only using it when necessary for performance.
  741. Implements tickets 29023 and 29536.
  742. o Major bugfixes (bridges):
  743. - Consider our directory information to have changed when our list
  744. of bridges changes. Previously, Tor would not re-compute the
  745. status of its directory information when bridges changed, and
  746. therefore would not realize that it was no longer able to build
  747. circuits. Fixes part of bug 29875.
  748. - Do not count previously configured working bridges towards our
  749. total of working bridges. Previously, when Tor's list of bridges
  750. changed, it would think that the old bridges were still usable,
  751. and delay fetching router descriptors for the new ones. Fixes part
  752. of bug 29875; bugfix on 0.3.0.1-alpha.
  753. o Major bugfixes (circuit build, guard):
  754. - On relays, properly check that a padding machine is absent before
  755. logging a warning about it being absent. Fixes bug 30649; bugfix
  756. on 0.4.0.1-alpha.
  757. - When considering upgrading circuits from "waiting for guard" to
  758. "open", always ignore circuits that are marked for close. Otherwise,
  759. we can end up in the situation where a subsystem is notified that
  760. a closing circuit has just opened, leading to undesirable
  761. behavior. Fixes bug 30871; bugfix on 0.3.0.1-alpha.
  762. o Major bugfixes (onion service reachability):
  763. - Properly clean up the introduction point map when circuits change
  764. purpose from onion service circuits to pathbias, measurement, or
  765. other circuit types. This should fix some service-side instances
  766. of introduction point failure. Fixes bug 29034; bugfix
  767. on 0.3.2.1-alpha.
  768. o Major bugfixes (onion service v3):
  769. - Fix an unreachable bug in which an introduction point could try to
  770. send an INTRODUCE_ACK with a status code that Trunnel would refuse
  771. to encode, leading the relay to assert(). We've consolidated the
  772. ABI values into Trunnel now. Fixes bug 30454; bugfix
  773. on 0.3.0.1-alpha.
  774. - Clients can now handle unknown status codes from INTRODUCE_ACK
  775. cells. (The NACK behavior will stay the same.) This will allow us
  776. to extend status codes in the future without breaking the normal
  777. client behavior. Fixes another part of bug 30454; bugfix
  778. on 0.3.0.1-alpha.
  779. o Minor features (authenticated SENDME):
  780. - Ensure that there is enough randomness on every circuit to prevent
  781. an attacker from successfully predicting the hashes they will need
  782. to include in authenticated SENDME cells. At a random interval, if
  783. we have not sent randomness already, we now leave some extra space
  784. at the end of a cell that we can fill with random bytes. Closes
  785. ticket 26846.
  786. o Minor features (circuit padding logging):
  787. - Demote noisy client-side warn logs about circuit padding to protocol
  788. warnings. Add additional log messages and circuit ID fields to help
  789. with bug 30992 and any other future issues.
  790. o Minor features (circuit padding):
  791. - We now use a fast PRNG when scheduling circuit padding. Part of
  792. ticket 28636.
  793. - Allow the padding machine designer to pick the edges of their
  794. histogram instead of trying to compute them automatically using an
  795. exponential formula. Resolves some undefined behavior in the case
  796. of small histograms and allows greater flexibility on machine
  797. design. Closes ticket 29298; bugfix on 0.4.0.1-alpha.
  798. - Allow circuit padding machines to hold a circuit open until they
  799. are done padding it. Closes ticket 28780.
  800. o Minor features (compile-time modules):
  801. - Add a "--list-modules" command to print a list of which compile-
  802. time modules are enabled. Closes ticket 30452.
  803. o Minor features (continuous integration):
  804. - Our Travis configuration now uses Chutney to run some network
  805. integration tests automatically. Closes ticket 29280.
  806. - When running coverage builds on Travis, we now set
  807. TOR_TEST_RNG_SEED, to avoid RNG-based coverage differences. Part
  808. of ticket 28878.
  809. - Remove sudo configuration lines from .travis.yml as they are no
  810. longer needed with current Travis build environment. Resolves
  811. issue 30213.
  812. - In Travis, show stem's tor log after failure. Closes ticket 30234.
  813. o Minor features (controller):
  814. - Add onion service version 3 support to the HSFETCH command.
  815. Previously, only version 2 onion services were supported. Closes
  816. ticket 25417. Patch by Neel Chauhan.
  817. o Minor features (debugging):
  818. - Introduce tor_assertf() and tor_assertf_nonfatal() to enable
  819. logging of additional information during assert failure. Now we
  820. can use format strings to include information for trouble
  821. shooting. Resolves ticket 29662.
  822. o Minor features (defense in depth):
  823. - In smartlist_remove_keeporder(), set unused pointers to NULL, in
  824. case a bug causes them to be used later. Closes ticket 30176.
  825. Patch from Tobias Stoeckmann.
  826. - Tor now uses a cryptographically strong PRNG even for decisions
  827. that we do not believe are security-sensitive. Previously, for
  828. performance reasons, we had used a trivially predictable linear
  829. congruential generator algorithm for certain load-balancing and
  830. statistical sampling decisions. Now we use our fast RNG in those
  831. cases. Closes ticket 29542.
  832. o Minor features (developer tools):
  833. - Tor's "practracker" test script now checks for files and functions
  834. that seem too long and complicated. Existing overlong functions
  835. and files are accepted for now, but should eventually be
  836. refactored. Closes ticket 29221.
  837. - Add some scripts used for git maintenance to scripts/git. Closes
  838. ticket 29391.
  839. - Call practracker from pre-push and pre-commit git hooks to let
  840. developers know if they made any code style violations. Closes
  841. ticket 30051.
  842. - Add a script to check that each header has a well-formed and
  843. unique guard macro. Closes ticket 29756.
  844. o Minor features (fallback directory list):
  845. - Replace the 157 fallbacks originally introduced in Tor 0.3.5.6-rc
  846. in December 2018 (of which ~122 were still functional), with a
  847. list of 148 fallbacks (70 new, 78 existing, 79 removed) generated
  848. in June 2019. Closes ticket 28795.
  849. o Minor features (geoip):
  850. - Update geoip and geoip6 to the June 10 2019 Maxmind GeoLite2
  851. Country database. Closes ticket 30852.
  852. - Update geoip and geoip6 to the May 13 2019 Maxmind GeoLite2
  853. Country database. Closes ticket 30522.
  854. o Minor features (HTTP tunnel):
  855. - Return an informative web page when the HTTPTunnelPort is used as
  856. an HTTP proxy. Closes ticket 27821, patch by "eighthave".
  857. o Minor features (IPv6, v3 onion services):
  858. - Make v3 onion services put IPv6 addresses in service descriptors.
  859. Before this change, service descriptors only contained IPv4
  860. addresses. Implements 26992.
  861. o Minor features (logging):
  862. - Give a more useful assertion failure message if we think we have
  863. minherit() but we fail to make a region non-inheritable. Give a
  864. compile-time warning if our support for minherit() is incomplete.
  865. Closes ticket 30686.
  866. o Minor features (maintenance):
  867. - Add a new "make autostyle" target that developers can use to apply
  868. all automatic Tor style and consistency conversions to the
  869. codebase. Closes ticket 30539.
  870. o Minor features (modularity):
  871. - The "--disable-module-dirauth" compile-time option now disables
  872. even more dirauth-only code. Closes ticket 30345.
  873. o Minor features (performance):
  874. - Use OpenSSL's implementations of SHA3 when available (in OpenSSL
  875. 1.1.1 and later), since they tend to be faster than tiny-keccak.
  876. Closes ticket 28837.
  877. o Minor features (testing):
  878. - The circuitpadding tests now use a reproducible RNG implementation,
  879. so that if a test fails, we can learn why. Part of ticket 28878.
  880. - Tor's tests now support an environment variable, TOR_TEST_RNG_SEED,
  881. to set the RNG seed for tests that use a reproducible RNG. Part of
  882. ticket 28878.
  883. - When running tests in coverage mode, take additional care to make
  884. our coverage deterministic, so that we can accurately track
  885. changes in code coverage. Closes ticket 30519.
  886. - Tor's unit test code now contains helper functions to replace the
  887. PRNG with a deterministic or reproducible version for testing.
  888. Previously, various tests implemented this in various ways.
  889. Implements ticket 29732.
  890. - We now have a script, cov-test-determinism.sh, to identify places
  891. where our unit test coverage has become nondeterministic. Closes
  892. ticket 29436.
  893. - Check that representative subsets of values of `int` and `unsigned
  894. int` can be represented by `void *`. Resolves issue 29537.
  895. o Minor bugfixes (bridge authority):
  896. - Bridge authorities now set bridges as running or non-running when
  897. about to dump their status to a file. Previously, they set bridges
  898. as running in response to a GETINFO command, but those shouldn't
  899. modify data structures. Fixes bug 24490; bugfix on 0.2.0.13-alpha.
  900. Patch by Neel Chauhan.
  901. o Minor bugfixes (channel padding statistics):
  902. - Channel padding write totals and padding-enabled totals are now
  903. counted properly in relay extrainfo descriptors. Fixes bug 29231;
  904. bugfix on 0.3.1.1-alpha.
  905. o Minor bugfixes (circuit isolation):
  906. - Fix a logic error that prevented the SessionGroup sub-option from
  907. being accepted. Fixes bug 22619; bugfix on 0.2.7.2-alpha.
  908. o Minor bugfixes (circuit padding):
  909. - Add a "CircuitPadding" torrc option to disable circuit padding.
  910. Fixes bug 28693; bugfix on 0.4.0.1-alpha.
  911. - Allow circuit padding machines to specify that they do not
  912. contribute much overhead, and provide consensus flags and torrc
  913. options to force clients to only use these low overhead machines.
  914. Fixes bug 29203; bugfix on 0.4.0.1-alpha.
  915. - Provide a consensus parameter to fully disable circuit padding, to
  916. be used in emergency network overload situations. Fixes bug 30173;
  917. bugfix on 0.4.0.1-alpha.
  918. - The circuit padding subsystem will no longer schedule padding if
  919. dormant mode is enabled. Fixes bug 28636; bugfix on 0.4.0.1-alpha.
  920. - Inspect a circuit-level cell queue before sending padding, to
  921. avoid sending padding while too much data is already queued. Fixes
  922. bug 29204; bugfix on 0.4.0.1-alpha.
  923. - Avoid calling monotime_absolute_usec() in circuit padding machines
  924. that do not use token removal or circuit RTT estimation. Fixes bug
  925. 29085; bugfix on 0.4.0.1-alpha.
  926. o Minor bugfixes (clock skew detection):
  927. - Don't believe clock skew results from NETINFO cells that appear to
  928. arrive before we sent the VERSIONS cells they are responding to.
  929. Previously, we would accept them up to 3 minutes "in the past".
  930. Fixes bug 31343; bugfix on 0.2.4.4-alpha.
  931. o Minor bugfixes (compatibility, standards compliance):
  932. - Fix a bug that would invoke undefined behavior on certain
  933. operating systems when trying to asprintf() a string exactly
  934. INT_MAX bytes long. We don't believe this is exploitable, but it's
  935. better to fix it anyway. Fixes bug 31001; bugfix on 0.2.2.11-alpha.
  936. Found and fixed by Tobias Stoeckmann.
  937. o Minor bugfixes (compilation warning):
  938. - Fix a compilation warning on Windows about casting a function
  939. pointer for GetTickCount64(). Fixes bug 31374; bugfix on
  940. 0.2.9.1-alpha.
  941. o Minor bugfixes (compilation):
  942. - Avoid using labs() on time_t, which can cause compilation warnings
  943. on 64-bit Windows builds. Fixes bug 31343; bugfix on 0.2.4.4-alpha.
  944. o Minor bugfixes (compilation, unusual configurations):
  945. - Avoid failures when building with the ALL_BUGS_ARE_FATAL option
  946. due to missing declarations of abort(), and prevent other such
  947. failures in the future. Fixes bug 30189; bugfix on 0.3.4.1-alpha.
  948. o Minor bugfixes (configuration, proxies):
  949. - Fix a bug that prevented us from supporting SOCKS5 proxies that
  950. want authentication along with configured (but unused!)
  951. ClientTransportPlugins. Fixes bug 29670; bugfix on 0.2.6.1-alpha.
  952. o Minor bugfixes (continuous integration):
  953. - Allow the test-stem job to fail in Travis, because it sometimes
  954. hangs. Fixes bug 30744; bugfix on 0.3.5.4-alpha.
  955. - Skip test_rebind on macOS in Travis, because it is unreliable on
  956. macOS on Travis. Fixes bug 30713; bugfix on 0.3.5.1-alpha.
  957. - Skip test_rebind when the TOR_SKIP_TEST_REBIND environment
  958. variable is set. Fixes bug 30713; bugfix on 0.3.5.1-alpha.
  959. o Minor bugfixes (controller protocol):
  960. - Teach the controller parser to distinguish an object preceded by
  961. an argument list from one without. Previously, it couldn't
  962. distinguish an argument list from the first line of a multiline
  963. object. Fixes bug 29984; bugfix on 0.2.3.8-alpha.
  964. o Minor bugfixes (crash on exit):
  965. - Avoid a set of possible code paths that could try to use freed
  966. memory in routerlist_free() while Tor was exiting. Fixes bug
  967. 31003; bugfix on 0.1.2.2-alpha.
  968. o Minor bugfixes (developer tooling):
  969. - Fix pre-push hook to allow fixup and squash commits when pushing
  970. to non-upstream git remote. Fixes bug 30286; bugfix
  971. on 0.4.0.1-alpha.
  972. o Minor bugfixes (directory authorities):
  973. - Stop crashing after parsing an unknown descriptor purpose
  974. annotation. We think this bug can only be triggered by modifying a
  975. local file. Fixes bug 30781; bugfix on 0.2.0.8-alpha.
  976. - Move the "bandwidth-file-headers" line in directory authority
  977. votes so that it conforms to dir-spec.txt. Fixes bug 30316; bugfix
  978. on 0.3.5.1-alpha.
  979. - Directory authorities with IPv6 support now always mark themselves
  980. as reachable via IPv6. Fixes bug 24338; bugfix on 0.2.4.1-alpha.
  981. Patch by Neel Chauhan.
  982. o Minor bugfixes (documentation):
  983. - Improve the documentation for using MapAddress with ".exit". Fixes
  984. bug 30109; bugfix on 0.1.0.1-rc.
  985. - Improve the monotonic time module and function documentation to
  986. explain what "monotonic" actually means, and document some results
  987. that have surprised people. Fixes bug 29640; bugfix
  988. on 0.2.9.1-alpha.
  989. - Use proper formatting when providing an example on quoting options
  990. that contain whitespace. Fixes bug 29635; bugfix on 0.2.3.18-rc.
  991. o Minor bugfixes (logging):
  992. - Do not log a warning when running with an OpenSSL version other
  993. than the one Tor was compiled with, if the two versions should be
  994. compatible. Previously, we would warn whenever the version was
  995. different. Fixes bug 30190; bugfix on 0.2.4.2-alpha.
  996. - Warn operators when the MyFamily option is set but ContactInfo is
  997. missing, as the latter should be set too. Fixes bug 25110; bugfix
  998. on 0.3.3.1-alpha.
  999. o Minor bugfixes (memory leaks):
  1000. - Avoid a minor memory leak that could occur on relays when failing
  1001. to create a "keys" directory. Fixes bug 30148; bugfix
  1002. on 0.3.3.1-alpha.
  1003. - Fix a trivial memory leak when parsing an invalid value from a
  1004. download schedule in the configuration. Fixes bug 30894; bugfix
  1005. on 0.3.4.1-alpha.
  1006. o Minor bugfixes (NetBSD):
  1007. - Fix usage of minherit() on NetBSD and other platforms that define
  1008. MAP_INHERIT_{ZERO,NONE} instead of INHERIT_{ZERO,NONE}. Fixes bug
  1009. 30614; bugfix on 0.4.0.2-alpha. Patch from Taylor Campbell.
  1010. o Minor bugfixes (onion services):
  1011. - Avoid a GCC 9.1.1 warning (and possible crash depending on libc
  1012. implemenation) when failing to load an onion service client
  1013. authorization file. Fixes bug 30475; bugfix on 0.3.5.1-alpha.
  1014. - When refusing to launch a controller's HSFETCH request because of
  1015. rate-limiting, respond to the controller with a new response,
  1016. "QUERY_RATE_LIMITED". Previously, we would log QUERY_NO_HSDIR for
  1017. this case. Fixes bug 28269; bugfix on 0.3.1.1-alpha. Patch by
  1018. Neel Chauhan.
  1019. - When relaunching a circuit to a rendezvous service, mark the
  1020. circuit as needing high-uptime routers as appropriate. Fixes bug
  1021. 17357; bugfix on 0.1.0.1-rc. Patch by Neel Chauhan.
  1022. - Stop ignoring IPv6 link specifiers sent to v3 onion services.
  1023. (IPv6 support for v3 onion services is still incomplete: see
  1024. ticket 23493 for details.) Fixes bug 23588; bugfix on
  1025. 0.3.2.1-alpha. Patch by Neel Chauhan.
  1026. o Minor bugfixes (onion services, performance):
  1027. - When building circuits to onion services, call tor_addr_parse()
  1028. less often. Previously, we called tor_addr_parse() in
  1029. circuit_is_acceptable() even if its output wasn't used. This
  1030. change should improve performance when building circuits. Fixes
  1031. bug 22210; bugfix on 0.2.8.12. Patch by Neel Chauhan.
  1032. o Minor bugfixes (out-of-memory handler):
  1033. - When purging the DNS cache because of an out-of-memory condition,
  1034. try purging just the older entries at first. Previously, we would
  1035. always purge the whole thing. Fixes bug 29617; bugfix
  1036. on 0.3.5.1-alpha.
  1037. o Minor bugfixes (performance):
  1038. - When checking whether a node is a bridge, use a fast check to make
  1039. sure that its identity is set. Previously, we used a constant-time
  1040. check, which is not necessary in this case. Fixes bug 30308;
  1041. bugfix on 0.3.5.1-alpha.
  1042. o Minor bugfixes (pluggable transports):
  1043. - Tor now sets TOR_PT_EXIT_ON_STDIN_CLOSE=1 for client transports as
  1044. well as servers. Fixes bug 25614; bugfix on 0.2.7.1-alpha.
  1045. o Minor bugfixes (portability):
  1046. - Avoid crashing in our tor_vasprintf() implementation on systems
  1047. that define neither vasprintf() nor _vscprintf(). (This bug has
  1048. been here long enough that we question whether people are running
  1049. Tor on such systems, but we're applying the fix out of caution.)
  1050. Fixes bug 30561; bugfix on 0.2.8.2-alpha. Found and fixed by
  1051. Tobias Stoeckmann.
  1052. o Minor bugfixes (probability distributions):
  1053. - Refactor and improve parts of the probability distribution code
  1054. that made Coverity complain. Fixes bug 29805; bugfix
  1055. on 0.4.0.1-alpha.
  1056. o Minor bugfixes (python):
  1057. - Stop assuming that /usr/bin/python3 exists. For scripts that work
  1058. with python2, use /usr/bin/python. Otherwise, use /usr/bin/env
  1059. python3. Fixes bug 29913; bugfix on 0.2.5.3-alpha.
  1060. o Minor bugfixes (relay):
  1061. - When running as a relay, if IPv6Exit is set to 1 while ExitRelay
  1062. is auto, act as if ExitRelay is 1. Previously, we would ignore
  1063. IPv6Exit if ExitRelay was 0 or auto. Fixes bug 29613; bugfix on
  1064. 0.3.5.1-alpha. Patch by Neel Chauhan.
  1065. o Minor bugfixes (static analysis):
  1066. - Fix several spurious Coverity warnings about the unit tests, to
  1067. lower our chances of missing real warnings in the future. Fixes
  1068. bug 30150; bugfix on 0.3.5.1-alpha and various other Tor versions.
  1069. o Minor bugfixes (stats):
  1070. - When ExtraInfoStatistics is 0, stop including bandwidth usage
  1071. statistics, GeoIPFile hashes, ServerTransportPlugin lines, and
  1072. bridge statistics by country in extra-info documents. Fixes bug
  1073. 29018; bugfix on 0.2.4.1-alpha.
  1074. o Minor bugfixes (testing):
  1075. - Call setrlimit() to disable core dumps in test_bt_cl.c. Previously
  1076. we used `ulimit -c` in test_bt.sh, which violates POSIX shell
  1077. compatibility. Fixes bug 29061; bugfix on 0.3.5.1-alpha.
  1078. - Fix some incorrect code in the v3 onion service unit tests. Fixes
  1079. bug 29243; bugfix on 0.3.2.1-alpha.
  1080. - In the "routerkeys/*" tests, check the return values of mkdir()
  1081. for possible failures. Fixes bug 29939; bugfix on 0.2.7.2-alpha.
  1082. Found by Coverity as CID 1444254.
  1083. - Split test_utils_general() into several smaller test functions.
  1084. This makes it easier to perform resource deallocation on assert
  1085. failure, and fixes Coverity warnings CID 1444117 and CID 1444118.
  1086. Fixes bug 29823; bugfix on 0.2.9.1-alpha.
  1087. o Minor bugfixes (tor-resolve):
  1088. - Fix a memory leak in tor-resolve that could happen if Tor gave it
  1089. a malformed SOCKS response. (Memory leaks in tor-resolve don't
  1090. actually matter, but it's good to fix them anyway.) Fixes bug
  1091. 30151; bugfix on 0.4.0.1-alpha.
  1092. o Code simplification and refactoring:
  1093. - Abstract out the low-level formatting of replies on the control
  1094. port. Implements ticket 30007.
  1095. - Add several assertions in an attempt to fix some Coverity
  1096. warnings. Closes ticket 30149.
  1097. - Introduce a connection_dir_buf_add() helper function that checks
  1098. for compress_state of dir_connection_t and automatically writes a
  1099. string to directory connection with or without compression.
  1100. Resolves issue 28816.
  1101. - Make the base32_decode() API return the number of bytes written,
  1102. for consistency with base64_decode(). Closes ticket 28913.
  1103. - Move most relay-only periodic events out of mainloop.c into the
  1104. relay subsystem. Closes ticket 30414.
  1105. - Refactor and encapsulate parts of the codebase that manipulate
  1106. crypt_path_t objects. Resolves issue 30236.
  1107. - Refactor several places in our code that Coverity incorrectly
  1108. believed might have memory leaks. Closes ticket 30147.
  1109. - Remove redundant return values in crypto_format, and the
  1110. associated return value checks elsewhere in the code. Make the
  1111. implementations in crypto_format consistent, and remove redundant
  1112. code. Resolves ticket 29660.
  1113. - Rename tor_mem_is_zero() to fast_mem_is_zero(), to emphasize that
  1114. it is not a constant-time function. Closes ticket 30309.
  1115. - Replace hs_desc_link_specifier_t with link_specifier_t, and remove
  1116. all hs_desc_link_specifier_t-specific code. Fixes bug 22781;
  1117. bugfix on 0.3.2.1-alpha.
  1118. - Simplify v3 onion service link specifier handling code. Fixes bug
  1119. 23576; bugfix on 0.3.2.1-alpha.
  1120. - Split crypto_digest.c into NSS code, OpenSSL code, and shared
  1121. code. Resolves ticket 29108.
  1122. - Split control.c into several submodules, in preparation for
  1123. distributing its current responsibilities throughout the codebase.
  1124. Closes ticket 29894.
  1125. - Start to move responsibility for knowing about periodic events to
  1126. the appropriate subsystems, so that the mainloop doesn't need to
  1127. know all the periodic events in the rest of the codebase.
  1128. Implements tickets 30293 and 30294.
  1129. o Documentation:
  1130. - Mention URLs for Travis/Appveyor/Jenkins in ReleasingTor.md.
  1131. Closes ticket 30630.
  1132. - Document how to find git commits and tags for bug fixes in
  1133. CodingStandards.md. Update some file documentation. Closes
  1134. ticket 30261.
  1135. o Removed features:
  1136. - Remove the linux-tor-prio.sh script from contrib/operator-tools
  1137. directory. Resolves issue 29434.
  1138. - Remove the obsolete OpenSUSE initscript. Resolves issue 30076.
  1139. - Remove the obsolete script at contrib/dist/tor.sh.in. Resolves
  1140. issue 30075.
  1141. o Testing:
  1142. - Specify torrc paths (with empty files) when launching tor in
  1143. integration tests; refrain from reading user and system torrcs.
  1144. Resolves issue 29702.
  1145. o Code simplification and refactoring (shell scripts):
  1146. - Clean up many of our shell scripts to fix shellcheck warnings.
  1147. These include autogen.sh (ticket 26069), test_keygen.sh (ticket
  1148. 29062), test_switch_id.sh (ticket 29065), test_rebind.sh (ticket
  1149. 29063), src/test/fuzz/minimize.sh (ticket 30079), test_rust.sh
  1150. (ticket 29064), torify (ticket 29070), asciidoc-helper.sh (29926),
  1151. fuzz_multi.sh (30077), fuzz_static_testcases.sh (ticket 29059),
  1152. nagios-check-tor-authority-cert (ticket 29071),
  1153. src/test/fuzz/fixup_filenames.sh (ticket 30078), test-network.sh
  1154. (ticket 29060), test_key_expiration.sh (ticket 30002),
  1155. zero_length_keys.sh (ticket 29068), and test_workqueue_*.sh
  1156. (ticket 29067).
  1157. o Testing (chutney):
  1158. - In "make test-network-all", test IPv6-only v3 single onion
  1159. services, using the chutney network single-onion-v23-ipv6-md.
  1160. Closes ticket 27251.
  1161. o Testing (continuous integration):
  1162. - In Travis, make stem log a controller trace to the console, and tail
  1163. stem's tor log after failure. Closes ticket 30591.
  1164. - In Travis, only run the stem tests that use a tor binary.
  1165. Closes ticket 30694.
  1166. Changes in version 0.4.0.5 - 2019-05-02
  1167. This is the first stable release in the 0.4.0.x series. It contains
  1168. improvements for power management and bootstrap reporting, as well as
  1169. preliminary backend support for circuit padding to prevent some kinds
  1170. of traffic analysis. It also continues our work in refactoring Tor for
  1171. long-term maintainability.
  1172. Per our support policy, we will support the 0.4.0.x series for nine
  1173. months, or until three months after the release of a stable 0.4.1.x:
  1174. whichever is longer. If you need longer-term support, please stick
  1175. with 0.3.5.x, which will we plan to support until Feb 2022.
  1176. Below are the changes since 0.3.5.7. For a complete list of changes
  1177. since 0.4.0.4-rc, see the ChangeLog file.
  1178. o Major features (battery management, client, dormant mode):
  1179. - When Tor is running as a client, and it is unused for a long time,
  1180. it can now enter a "dormant" state. When Tor is dormant, it avoids
  1181. network and CPU activity until it is reawoken either by a user
  1182. request or by a controller command. For more information, see the
  1183. configuration options starting with "Dormant". Implements tickets
  1184. 2149 and 28335.
  1185. - The client's memory of whether it is "dormant", and how long it
  1186. has spent idle, persists across invocations. Implements
  1187. ticket 28624.
  1188. - There is a DormantOnFirstStartup option that integrators can use
  1189. if they expect that in many cases, Tor will be installed but
  1190. not used.
  1191. o Major features (bootstrap reporting):
  1192. - When reporting bootstrap progress, report the first connection
  1193. uniformly, regardless of whether it's a connection for building
  1194. application circuits. This allows finer-grained reporting of early
  1195. progress than previously possible, with the improvements of ticket
  1196. 27169. Closes tickets 27167 and 27103. Addresses ticket 27308.
  1197. - When reporting bootstrap progress, treat connecting to a proxy or
  1198. pluggable transport as separate from having successfully used that
  1199. proxy or pluggable transport to connect to a relay. Closes tickets
  1200. 27100 and 28884.
  1201. o Major features (circuit padding):
  1202. - Implement preliminary support for the circuit padding portion of
  1203. Proposal 254. The implementation supports Adaptive Padding (aka
  1204. WTF-PAD) state machines for use between experimental clients and
  1205. relays. Support is also provided for APE-style state machines that
  1206. use probability distributions instead of histograms to specify
  1207. inter-packet delay. At the moment, Tor does not provide any
  1208. padding state machines that are used in normal operation: for now,
  1209. this feature exists solely for experimentation. Closes
  1210. ticket 28142.
  1211. o Major features (refactoring):
  1212. - Tor now uses an explicit list of its own subsystems when
  1213. initializing and shutting down. Previously, these systems were
  1214. managed implicitly in various places throughout the codebase.
  1215. (There may still be some subsystems using the old system.) Closes
  1216. ticket 28330.
  1217. o Major bugfixes (cell scheduler, KIST, security):
  1218. - Make KIST consider the outbuf length when computing what it can
  1219. put in the outbuf. Previously, KIST acted as though the outbuf
  1220. were empty, which could lead to the outbuf becoming too full. It
  1221. is possible that an attacker could exploit this bug to cause a Tor
  1222. client or relay to run out of memory and crash. Fixes bug 29168;
  1223. bugfix on 0.3.2.1-alpha. This issue is also being tracked as
  1224. TROVE-2019-001 and CVE-2019-8955.
  1225. o Major bugfixes (networking):
  1226. - Gracefully handle empty username/password fields in SOCKS5
  1227. username/password auth message and allow SOCKS5 handshake to
  1228. continue. Previously, we had rejected these handshakes, breaking
  1229. certain applications. Fixes bug 29175; bugfix on 0.3.5.1-alpha.
  1230. o Major bugfixes (NSS, relay):
  1231. - When running with NSS, disable TLS 1.2 ciphersuites that use
  1232. SHA384 for their PRF. Due to an NSS bug, the TLS key exporters for
  1233. these ciphersuites don't work -- which caused relays to fail to
  1234. handshake with one another when these ciphersuites were enabled.
  1235. Fixes bug 29241; bugfix on 0.3.5.1-alpha.
  1236. o Major bugfixes (windows, startup):
  1237. - When reading a consensus file from disk, detect whether it was
  1238. written in text mode, and re-read it in text mode if so. Always
  1239. write consensus files in binary mode so that we can map them into
  1240. memory later. Previously, we had written in text mode, which
  1241. confused us when we tried to map the file on windows. Fixes bug
  1242. 28614; bugfix on 0.4.0.1-alpha.
  1243. o Minor features (address selection):
  1244. - Treat the subnet 100.64.0.0/10 as public for some purposes;
  1245. private for others. This subnet is the RFC 6598 (Carrier Grade
  1246. NAT) IP range, and is deployed by many ISPs as an alternative to
  1247. RFC 1918 that does not break existing internal networks. Tor now
  1248. blocks SOCKS and control ports on these addresses and warns users
  1249. if client ports or ExtORPorts are listening on a RFC 6598 address.
  1250. Closes ticket 28525. Patch by Neel Chauhan.
  1251. o Minor features (bandwidth authority):
  1252. - Make bandwidth authorities ignore relays that are reported in the
  1253. bandwidth file with the flag "vote=0". This change allows us to
  1254. report unmeasured relays for diagnostic reasons without including
  1255. their bandwidth in the bandwidth authorities' vote. Closes
  1256. ticket 29806.
  1257. - When a directory authority is using a bandwidth file to obtain the
  1258. bandwidth values that will be included in the next vote, serve
  1259. this bandwidth file at /tor/status-vote/next/bandwidth. Closes
  1260. ticket 21377.
  1261. o Minor features (bootstrap reporting):
  1262. - When reporting bootstrap progress, stop distinguishing between
  1263. situations where only internal paths are available and situations
  1264. where external paths are available. Previously, Tor would often
  1265. erroneously report that it had only internal paths. Closes
  1266. ticket 27402.
  1267. o Minor features (compilation):
  1268. - Compile correctly when OpenSSL is built with engine support
  1269. disabled, or with deprecated APIs disabled. Closes ticket 29026.
  1270. Patches from "Mangix".
  1271. o Minor features (continuous integration):
  1272. - On Travis Rust builds, cleanup Rust registry and refrain from
  1273. caching the "target/" directory to speed up builds. Resolves
  1274. issue 29962.
  1275. - Log Python version during each Travis CI job. Resolves
  1276. issue 28551.
  1277. - In Travis, tell timelimit to use stem's backtrace signals, and
  1278. launch python directly from timelimit, so python receives the
  1279. signals from timelimit, rather than make. Closes ticket 30117.
  1280. o Minor features (controller):
  1281. - Add a DROPOWNERSHIP command to undo the effects of TAKEOWNERSHIP.
  1282. Implements ticket 28843.
  1283. o Minor features (developer tooling):
  1284. - Check that bugfix versions in changes files look like Tor versions
  1285. from the versions spec. Warn when bugfixes claim to be on a future
  1286. release. Closes ticket 27761.
  1287. - Provide a git pre-commit hook that disallows committing if we have
  1288. any failures in our code and changelog formatting checks. It is
  1289. now available in scripts/maint/pre-commit.git-hook. Implements
  1290. feature 28976.
  1291. - Provide a git hook script to prevent "fixup!" and "squash!"
  1292. commits from ending up in the master branch, as scripts/main/pre-
  1293. push.git-hook. Closes ticket 27993.
  1294. o Minor features (diagnostic):
  1295. - Add more diagnostic log messages in an attempt to solve the issue
  1296. of NUL bytes appearing in a microdescriptor cache. Related to
  1297. ticket 28223.
  1298. o Minor features (directory authority):
  1299. - When a directory authority is using a bandwidth file to obtain
  1300. bandwidth values, include the digest of that file in the vote.
  1301. Closes ticket 26698.
  1302. - Directory authorities support a new consensus algorithm, under
  1303. which the family lines in microdescriptors are encoded in a
  1304. canonical form. This change makes family lines more compressible
  1305. in transit, and on the client. Closes ticket 28266; implements
  1306. proposal 298.
  1307. o Minor features (directory authority, relay):
  1308. - Authorities now vote on a "StaleDesc" flag to indicate that a
  1309. relay's descriptor is so old that the relay should upload again
  1310. soon. Relays treat this flag as a signal to upload a new
  1311. descriptor. This flag will eventually let us remove the
  1312. 'published' date from routerstatus entries, and make our consensus
  1313. diffs much smaller. Closes ticket 26770; implements proposal 293.
  1314. o Minor features (dormant mode):
  1315. - Add a DormantCanceledByStartup option to tell Tor that it should
  1316. treat a startup event as cancelling any previous dormant state.
  1317. Integrators should use this option with caution: it should only be
  1318. used if Tor is being started because of something that the user
  1319. did, and not if Tor is being automatically started in the
  1320. background. Closes ticket 29357.
  1321. o Minor features (fallback directory mirrors):
  1322. - Update the fallback whitelist based on operator opt-ins and opt-
  1323. outs. Closes ticket 24805, patch by Phoul.
  1324. o Minor features (FreeBSD):
  1325. - On FreeBSD-based systems, warn relay operators if the
  1326. "net.inet.ip.random_id" sysctl (IP ID randomization) is disabled.
  1327. Closes ticket 28518.
  1328. o Minor features (geoip):
  1329. - Update geoip and geoip6 to the April 2 2019 Maxmind GeoLite2
  1330. Country database. Closes ticket 29992.
  1331. o Minor features (HTTP standards compliance):
  1332. - Stop sending the header "Content-type: application/octet-stream"
  1333. along with transparently compressed documents: this confused
  1334. browsers. Closes ticket 28100.
  1335. o Minor features (IPv6):
  1336. - We add an option ClientAutoIPv6ORPort, to make clients randomly
  1337. prefer a node's IPv4 or IPv6 ORPort. The random preference is set
  1338. every time a node is loaded from a new consensus or bridge config.
  1339. We expect that this option will enable clients to bootstrap more
  1340. quickly without having to determine whether they support IPv4,
  1341. IPv6, or both. Closes ticket 27490. Patch by Neel Chauhan.
  1342. - When using addrs_in_same_network_family(), avoid choosing circuit
  1343. paths that pass through the same IPv6 subnet more than once.
  1344. Previously, we only checked IPv4 subnets. Closes ticket 24393.
  1345. Patch by Neel Chauhan.
  1346. o Minor features (log messages):
  1347. - Improve log message in v3 onion services that could print out
  1348. negative revision counters. Closes ticket 27707. Patch
  1349. by "ffmancera".
  1350. o Minor features (memory usage):
  1351. - Save memory by storing microdescriptor family lists with a more
  1352. compact representation. Closes ticket 27359.
  1353. - Tor clients now use mmap() to read consensus files from disk, so
  1354. that they no longer need keep the full text of a consensus in
  1355. memory when parsing it or applying a diff. Closes ticket 27244.
  1356. o Minor features (NSS, diagnostic):
  1357. - Try to log an error from NSS (if there is any) and a more useful
  1358. description of our situation if we are using NSS and a call to
  1359. SSL_ExportKeyingMaterial() fails. Diagnostic for ticket 29241.
  1360. o Minor features (parsing):
  1361. - Directory authorities now validate that router descriptors and
  1362. ExtraInfo documents are in a valid subset of UTF-8, and reject
  1363. them if they are not. Closes ticket 27367.
  1364. o Minor features (performance):
  1365. - Cache the results of summarize_protocol_flags(), so that we don't
  1366. have to parse the same protocol-versions string over and over.
  1367. This should save us a huge number of malloc calls on startup, and
  1368. may reduce memory fragmentation with some allocators. Closes
  1369. ticket 27225.
  1370. - Remove a needless memset() call from get_token_arguments, thereby
  1371. speeding up the tokenization of directory objects by about 20%.
  1372. Closes ticket 28852.
  1373. - Replace parse_short_policy() with a faster implementation, to
  1374. improve microdescriptor parsing time. Closes ticket 28853.
  1375. - Speed up directory parsing a little by avoiding use of the non-
  1376. inlined strcmp_len() function. Closes ticket 28856.
  1377. - Speed up microdescriptor parsing by about 30%, to help improve
  1378. startup time. Closes ticket 28839.
  1379. o Minor features (pluggable transports):
  1380. - Add support for emitting STATUS updates to Tor's control port from
  1381. a pluggable transport process. Closes ticket 28846.
  1382. - Add support for logging to Tor's logging subsystem from a
  1383. pluggable transport process. Closes ticket 28180.
  1384. o Minor features (process management):
  1385. - Add a new process API for handling child processes. This new API
  1386. allows Tor to have bi-directional communication with child
  1387. processes on both Unix and Windows. Closes ticket 28179.
  1388. - Use the subsystem manager to initialize and shut down the process
  1389. module. Closes ticket 28847.
  1390. o Minor features (relay):
  1391. - When listing relay families, list them in canonical form including
  1392. the relay's own identity, and try to give a more useful set of
  1393. warnings. Part of ticket 28266 and proposal 298.
  1394. o Minor features (required protocols):
  1395. - Before exiting because of a missing required protocol, Tor will
  1396. now check the publication time of the consensus, and not exit
  1397. unless the consensus is newer than the Tor program's own release
  1398. date. Previously, Tor would not check the consensus publication
  1399. time, and so might exit because of a missing protocol that might
  1400. no longer be required in a current consensus. Implements proposal
  1401. 297; closes ticket 27735.
  1402. o Minor features (testing):
  1403. - Treat all unexpected ERR and BUG messages as test failures. Closes
  1404. ticket 28668.
  1405. - Allow a HeartbeatPeriod of less than 30 minutes in testing Tor
  1406. networks. Closes ticket 28840. Patch by Rob Jansen.
  1407. - Use the approx_time() function when setting the "Expires" header
  1408. in directory replies, to make them more testable. Needed for
  1409. ticket 30001.
  1410. o Minor bugfixes (security):
  1411. - Fix a potential double free bug when reading huge bandwidth files.
  1412. The issue is not exploitable in the current Tor network because
  1413. the vulnerable code is only reached when directory authorities
  1414. read bandwidth files, but bandwidth files come from a trusted
  1415. source (usually the authorities themselves). Furthermore, the
  1416. issue is only exploitable in rare (non-POSIX) 32-bit architectures,
  1417. which are not used by any of the current authorities. Fixes bug
  1418. 30040; bugfix on 0.3.5.1-alpha. Bug found and fixed by
  1419. Tobias Stoeckmann.
  1420. - Verify in more places that we are not about to create a buffer
  1421. with more than INT_MAX bytes, to avoid possible OOB access in the
  1422. event of bugs. Fixes bug 30041; bugfix on 0.2.0.16. Found and
  1423. fixed by Tobias Stoeckmann.
  1424. o Minor bugfix (continuous integration):
  1425. - Reset coverage state on disk after Travis CI has finished. This
  1426. should prevent future coverage merge errors from causing the test
  1427. suite for the "process" subsystem to fail. The process subsystem
  1428. was introduced in 0.4.0.1-alpha. Fixes bug 29036; bugfix
  1429. on 0.2.9.15.
  1430. - Terminate test-stem if it takes more than 9.5 minutes to run.
  1431. (Travis terminates the job after 10 minutes of no output.)
  1432. Diagnostic for 29437. Fixes bug 30011; bugfix on 0.3.5.4-alpha.
  1433. o Minor bugfixes (build, compatibility, rust):
  1434. - Update Cargo.lock file to match the version made by the latest
  1435. version of Rust, so that "make distcheck" will pass again. Fixes
  1436. bug 29244; bugfix on 0.3.3.4-alpha.
  1437. o Minor bugfixes (C correctness):
  1438. - Fix an unlikely memory leak in consensus_diff_apply(). Fixes bug
  1439. 29824; bugfix on 0.3.1.1-alpha. This is Coverity warning
  1440. CID 1444119.
  1441. o Minor bugfixes (client, clock skew):
  1442. - Bootstrap successfully even when Tor's clock is behind the clocks
  1443. on the authorities. Fixes bug 28591; bugfix on 0.2.0.9-alpha.
  1444. - Select guards even if the consensus has expired, as long as the
  1445. consensus is still reasonably live. Fixes bug 24661; bugfix
  1446. on 0.3.0.1-alpha.
  1447. o Minor bugfixes (compilation):
  1448. - Fix compilation warnings in test_circuitpadding.c. Fixes bug
  1449. 29169; bugfix on 0.4.0.1-alpha.
  1450. - Silence a compiler warning in test-memwipe.c on OpenBSD. Fixes bug
  1451. 29145; bugfix on 0.2.9.3-alpha. Patch from Kris Katterjohn.
  1452. - Compile correctly on OpenBSD; previously, we were missing some
  1453. headers required in order to detect it properly. Fixes bug 28938;
  1454. bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
  1455. o Minor bugfixes (directory clients):
  1456. - Mark outdated dirservers when Tor only has a reasonably live
  1457. consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
  1458. o Minor bugfixes (directory mirrors):
  1459. - Even when a directory mirror's clock is behind the clocks on the
  1460. authorities, we now allow the mirror to serve "future"
  1461. consensuses. Fixes bug 28654; bugfix on 0.3.0.1-alpha.
  1462. o Minor bugfixes (DNS):
  1463. - Gracefully handle an empty or absent resolve.conf file by falling
  1464. back to using "localhost" as a DNS server (and hoping it works).
  1465. Previously, we would just stop running as an exit. Fixes bug
  1466. 21900; bugfix on 0.2.1.10-alpha.
  1467. o Minor bugfixes (documentation):
  1468. - Describe the contents of the v3 onion service client authorization
  1469. files correctly: They hold public keys, not private keys. Fixes
  1470. bug 28979; bugfix on 0.3.5.1-alpha. Spotted by "Felixix".
  1471. o Minor bugfixes (guards):
  1472. - In count_acceptable_nodes(), the minimum number is now one bridge
  1473. or guard node, and two non-guard nodes for a circuit. Previously,
  1474. we had added up the sum of all nodes with a descriptor, but that
  1475. could cause us to build failing circuits when we had either too
  1476. many bridges or not enough guard nodes. Fixes bug 25885; bugfix on
  1477. 0.2.3.1-alpha. Patch by Neel Chauhan.
  1478. o Minor bugfixes (IPv6):
  1479. - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
  1480. IPv6 socket was bound using an address family of AF_INET instead
  1481. of AF_INET6. Fixes bug 28995; bugfix on 0.3.5.1-alpha. Patch from
  1482. Kris Katterjohn.
  1483. o Minor bugfixes (linux seccomp sandbox):
  1484. - Fix startup crash when experimental sandbox support is enabled.
  1485. Fixes bug 29150; bugfix on 0.4.0.1-alpha. Patch by Peter Gerber.
  1486. o Minor bugfixes (logging):
  1487. - Correct a misleading error message when IPv4Only or IPv6Only is
  1488. used but the resolved address can not be interpreted as an address
  1489. of the specified IP version. Fixes bug 13221; bugfix on
  1490. 0.2.3.9-alpha. Patch from Kris Katterjohn.
  1491. - Log the correct port number for listening sockets when "auto" is
  1492. used to let Tor pick the port number. Previously, port 0 was
  1493. logged instead of the actual port number. Fixes bug 29144; bugfix
  1494. on 0.3.5.1-alpha. Patch from Kris Katterjohn.
  1495. - Stop logging a BUG() warning when Tor is waiting for exit
  1496. descriptors. Fixes bug 28656; bugfix on 0.3.5.1-alpha.
  1497. - Avoid logging that we are relaxing a circuit timeout when that
  1498. timeout is fixed. Fixes bug 28698; bugfix on 0.2.4.7-alpha.
  1499. - Log more information at "warning" level when unable to read a
  1500. private key; log more information at "info" level when unable to
  1501. read a public key. We had warnings here before, but they were lost
  1502. during our NSS work. Fixes bug 29042; bugfix on 0.3.5.1-alpha.
  1503. - Rework rep_hist_log_link_protocol_counts() to iterate through all
  1504. link protocol versions when logging incoming/outgoing connection
  1505. counts. Tor no longer skips version 5, and we won't have to
  1506. remember to update this function when new link protocol version is
  1507. developed. Fixes bug 28920; bugfix on 0.2.6.10.
  1508. o Minor bugfixes (memory management):
  1509. - Refactor the shared random state's memory management so that it
  1510. actually takes ownership of the shared random value pointers.
  1511. Fixes bug 29706; bugfix on 0.2.9.1-alpha.
  1512. - Stop leaking parts of the shared random state in the shared-random
  1513. unit tests. Fixes bug 29599; bugfix on 0.2.9.1-alpha.
  1514. o Minor bugfixes (misc):
  1515. - The amount of total available physical memory is now determined
  1516. using the sysctl identifier HW_PHYSMEM (rather than HW_USERMEM)
  1517. when it is defined and a 64-bit variant is not available. Fixes
  1518. bug 28981; bugfix on 0.2.5.4-alpha. Patch from Kris Katterjohn.
  1519. o Minor bugfixes (networking):
  1520. - Introduce additional checks into tor_addr_parse() to reject
  1521. certain incorrect inputs that previously were not detected. Fixes
  1522. bug 23082; bugfix on 0.2.0.10-alpha.
  1523. o Minor bugfixes (onion service v3, client):
  1524. - Stop logging a "BUG()" warning and stacktrace when we find a SOCKS
  1525. connection waiting for a descriptor that we actually have in the
  1526. cache. It turns out that this can actually happen, though it is
  1527. rare. Now, tor will recover and retry the descriptor. Fixes bug
  1528. 28669; bugfix on 0.3.2.4-alpha.
  1529. o Minor bugfixes (onion services):
  1530. - Avoid crashing if ClientOnionAuthDir (incorrectly) contains more
  1531. than one private key for a hidden service. Fixes bug 29040; bugfix
  1532. on 0.3.5.1-alpha.
  1533. - In hs_cache_store_as_client() log an HSDesc we failed to parse at
  1534. "debug" level. Tor used to log it as a warning, which caused very
  1535. long log lines to appear for some users. Fixes bug 29135; bugfix
  1536. on 0.3.2.1-alpha.
  1537. - Stop logging "Tried to establish rendezvous on non-OR circuit..."
  1538. as a warning. Instead, log it as a protocol warning, because there
  1539. is nothing that relay operators can do to fix it. Fixes bug 29029;
  1540. bugfix on 0.2.5.7-rc.
  1541. o Minor bugfixes (periodic events):
  1542. - Refrain from calling routerlist_remove_old_routers() from
  1543. check_descriptor_callback(). Instead, create a new hourly periodic
  1544. event. Fixes bug 27929; bugfix on 0.2.8.1-alpha.
  1545. o Minor bugfixes (pluggable transports):
  1546. - Make sure that data is continously read from standard output and
  1547. standard error pipes of a pluggable transport child-process, to
  1548. avoid deadlocking when a pipe's buffer is full. Fixes bug 26360;
  1549. bugfix on 0.2.3.6-alpha.
  1550. o Minor bugfixes (rust):
  1551. - Abort on panic in all build profiles, instead of potentially
  1552. unwinding into C code. Fixes bug 27199; bugfix on 0.3.3.1-alpha.
  1553. o Minor bugfixes (scheduler):
  1554. - When re-adding channels to the pending list, check the correct
  1555. channel's sched_heap_idx. This issue has had no effect in mainline
  1556. Tor, but could have led to bugs down the road in improved versions
  1557. of our circuit scheduling code. Fixes bug 29508; bugfix
  1558. on 0.3.2.10.
  1559. o Minor bugfixes (shellcheck):
  1560. - Look for scripts in their correct locations during "make
  1561. shellcheck". Previously we had looked in the wrong place during
  1562. out-of-tree builds. Fixes bug 30263; bugfix on 0.4.0.1-alpha.
  1563. o Minor bugfixes (single onion services):
  1564. - Allow connections to single onion services to remain idle without
  1565. being disconnected. Previously, relays acting as rendezvous points
  1566. for single onion services were mistakenly closing idle rendezvous
  1567. circuits after 60 seconds, thinking that they were unused
  1568. directory-fetching circuits that had served their purpose. Fixes
  1569. bug 29665; bugfix on 0.2.1.26.
  1570. o Minor bugfixes (stats):
  1571. - When ExtraInfoStatistics is 0, stop including PaddingStatistics in
  1572. relay and bridge extra-info documents. Fixes bug 29017; bugfix
  1573. on 0.3.1.1-alpha.
  1574. o Minor bugfixes (testing):
  1575. - Backport the 0.3.4 src/test/test-network.sh to 0.2.9. We need a
  1576. recent test-network.sh to use new chutney features in CI. Fixes
  1577. bug 29703; bugfix on 0.2.9.1-alpha.
  1578. - Fix a test failure on Windows caused by an unexpected "BUG"
  1579. warning in our tests for tor_gmtime_r(-1). Fixes bug 29922; bugfix
  1580. on 0.2.9.3-alpha.
  1581. - Downgrade some LOG_ERR messages in the address/* tests to
  1582. warnings. The LOG_ERR messages were occurring when we had no
  1583. configured network. We were failing the unit tests, because we
  1584. backported 28668 to 0.3.5.8, but did not backport 29530. Fixes bug
  1585. 29530; bugfix on 0.3.5.8.
  1586. - Fix our gcov wrapper script to look for object files at the
  1587. correct locations. Fixes bug 29435; bugfix on 0.3.5.1-alpha.
  1588. - Decrease the false positive rate of stochastic probability
  1589. distribution tests. Fixes bug 29693; bugfix on 0.4.0.1-alpha.
  1590. - Fix intermittent failures on an adaptive padding test. Fixes one
  1591. case of bug 29122; bugfix on 0.4.0.1-alpha.
  1592. - Disable an unstable circuit-padding test that was failing
  1593. intermittently because of an ill-defined small histogram. Such
  1594. histograms will be allowed again after 29298 is implemented. Fixes
  1595. a second case of bug 29122; bugfix on 0.4.0.1-alpha.
  1596. - Detect and suppress "bug" warnings from the util/time test on
  1597. Windows. Fixes bug 29161; bugfix on 0.2.9.3-alpha.
  1598. - Do not log an error-level message if we fail to find an IPv6
  1599. network interface from the unit tests. Fixes bug 29160; bugfix
  1600. on 0.2.7.3-rc.
  1601. - Instead of relying on hs_free_all() to clean up all onion service
  1602. objects in test_build_descriptors(), we now deallocate them one by
  1603. one. This lets Coverity know that we are not leaking memory there
  1604. and fixes CID 1442277. Fixes bug 28989; bugfix on 0.3.5.1-alpha.
  1605. - Check the time in the "Expires" header using approx_time(). Fixes
  1606. bug 30001; bugfix on 0.4.0.4-rc.
  1607. o Minor bugfixes (TLS protocol):
  1608. - When classifying a client's selection of TLS ciphers, if the
  1609. client ciphers are not yet available, do not cache the result.
  1610. Previously, we had cached the unavailability of the cipher list
  1611. and never looked again, which in turn led us to assume that the
  1612. client only supported the ancient V1 link protocol. This, in turn,
  1613. was causing Stem integration tests to stall in some cases. Fixes
  1614. bug 30021; bugfix on 0.2.4.8-alpha.
  1615. o Minor bugfixes (UI):
  1616. - Lower log level of unlink() errors during bootstrap. Fixes bug
  1617. 29930; bugfix on 0.4.0.1-alpha.
  1618. o Minor bugfixes (usability):
  1619. - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate().
  1620. Some users took this phrasing to mean that the mentioned guard was
  1621. under their control or responsibility, which it is not. Fixes bug
  1622. 28895; bugfix on Tor 0.3.0.1-alpha.
  1623. o Minor bugfixes (Windows, CI):
  1624. - Skip the Appveyor 32-bit Windows Server 2016 job, and 64-bit
  1625. Windows Server 2012 R2 job. The remaining 2 jobs still provide
  1626. coverage of 64/32-bit, and Windows Server 2016/2012 R2. Also set
  1627. fast_finish, so failed jobs terminate the build immediately. Fixes
  1628. bug 29601; bugfix on 0.3.5.4-alpha.
  1629. o Code simplification and refactoring:
  1630. - Introduce a connection_dir_buf_add() helper function that detects
  1631. whether compression is in use, and adds a string accordingly.
  1632. Resolves issue 28816.
  1633. - Refactor handle_get_next_bandwidth() to use
  1634. connection_dir_buf_add(). Implements ticket 29897.
  1635. - Reimplement NETINFO cell parsing and generation to rely on
  1636. trunnel-generated wire format handling code. Closes ticket 27325.
  1637. - Remove unnecessary unsafe code from the Rust macro "cstr!". Closes
  1638. ticket 28077.
  1639. - Rework SOCKS wire format handling to rely on trunnel-generated
  1640. parsing/generation code. Resolves ticket 27620.
  1641. - Split out bootstrap progress reporting from control.c into a
  1642. separate file. Part of ticket 27402.
  1643. - The .may_include files that we use to describe our directory-by-
  1644. directory dependency structure now describe a noncircular
  1645. dependency graph over the directories that they cover. Our
  1646. checkIncludes.py tool now enforces this noncircularity. Closes
  1647. ticket 28362.
  1648. o Documentation:
  1649. - Clarify that Tor performs stream isolation among *Port listeners
  1650. by default. Resolves issue 29121.
  1651. - In the manpage entry describing MapAddress torrc setting, use
  1652. example IP addresses from ranges specified for use in documentation
  1653. by RFC 5737. Resolves issue 28623.
  1654. - Mention that you cannot add a new onion service if Tor is already
  1655. running with Sandbox enabled. Closes ticket 28560.
  1656. - Improve ControlPort documentation. Mention that it accepts
  1657. address:port pairs, and can be used multiple times. Closes
  1658. ticket 28805.
  1659. - Document the exact output of "tor --version". Closes ticket 28889.
  1660. o Removed features:
  1661. - Remove the old check-tor script. Resolves issue 29072.
  1662. - Stop responding to the 'GETINFO status/version/num-concurring' and
  1663. 'GETINFO status/version/num-versioning' control port commands, as
  1664. those were deprecated back in 0.2.0.30. Also stop listing them in
  1665. output of 'GETINFO info/names'. Resolves ticket 28757.
  1666. - The scripts used to generate and maintain the list of fallback
  1667. directories have been extracted into a new "fallback-scripts"
  1668. repository. Closes ticket 27914.
  1669. o Testing:
  1670. - Run shellcheck for scripts in the in scripts/ directory. Closes
  1671. ticket 28058.
  1672. - Add unit tests for tokenize_string() and get_next_token()
  1673. functions. Resolves ticket 27625.
  1674. o Code simplification and refactoring (onion service v3):
  1675. - Consolidate the authorized client descriptor cookie computation
  1676. code from client and service into one function. Closes
  1677. ticket 27549.
  1678. o Code simplification and refactoring (shell scripts):
  1679. - Cleanup scan-build.sh to silence shellcheck warnings. Closes
  1680. ticket 28007.
  1681. - Fix issues that shellcheck found in chutney-git-bisect.sh.
  1682. Resolves ticket 28006.
  1683. - Fix issues that shellcheck found in updateRustDependencies.sh.
  1684. Resolves ticket 28012.
  1685. - Fix shellcheck warnings in cov-diff script. Resolves issue 28009.
  1686. - Fix shellcheck warnings in run_calltool.sh. Resolves ticket 28011.
  1687. - Fix shellcheck warnings in run_trunnel.sh. Resolves issue 28010.
  1688. - Fix shellcheck warnings in scripts/test/coverage. Resolves
  1689. issue 28008.
  1690. Changes in version 0.3.5.8 - 2019-02-21
  1691. Tor 0.3.5.8 backports several fixes from later releases, including fixes
  1692. for an annoying SOCKS-parsing bug that affected users in earlier 0.3.5.x
  1693. releases.
  1694. It also includes a fix for a medium-severity security bug affecting Tor
  1695. 0.3.2.1-alpha and later. All Tor instances running an affected release
  1696. should upgrade to 0.3.3.12, 0.3.4.11, 0.3.5.8, or 0.4.0.2-alpha.
  1697. o Major bugfixes (cell scheduler, KIST, security):
  1698. - Make KIST consider the outbuf length when computing what it can
  1699. put in the outbuf. Previously, KIST acted as though the outbuf
  1700. were empty, which could lead to the outbuf becoming too full. It
  1701. is possible that an attacker could exploit this bug to cause a Tor
  1702. client or relay to run out of memory and crash. Fixes bug 29168;
  1703. bugfix on 0.3.2.1-alpha. This issue is also being tracked as
  1704. TROVE-2019-001 and CVE-2019-8955.
  1705. o Major bugfixes (networking, backport from 0.4.0.2-alpha):
  1706. - Gracefully handle empty username/password fields in SOCKS5
  1707. username/password auth messsage and allow SOCKS5 handshake to
  1708. continue. Previously, we had rejected these handshakes, breaking
  1709. certain applications. Fixes bug 29175; bugfix on 0.3.5.1-alpha.
  1710. o Minor features (compilation, backport from 0.4.0.2-alpha):
  1711. - Compile correctly when OpenSSL is built with engine support
  1712. disabled, or with deprecated APIs disabled. Closes ticket 29026.
  1713. Patches from "Mangix".
  1714. o Minor features (geoip):
  1715. - Update geoip and geoip6 to the February 5 2019 Maxmind GeoLite2
  1716. Country database. Closes ticket 29478.
  1717. o Minor features (testing, backport from 0.4.0.2-alpha):
  1718. - Treat all unexpected ERR and BUG messages as test failures. Closes
  1719. ticket 28668.
  1720. o Minor bugfixes (onion service v3, client, backport from 0.4.0.1-alpha):
  1721. - Stop logging a "BUG()" warning and stacktrace when we find a SOCKS
  1722. connection waiting for a descriptor that we actually have in the
  1723. cache. It turns out that this can actually happen, though it is
  1724. rare. Now, tor will recover and retry the descriptor. Fixes bug
  1725. 28669; bugfix on 0.3.2.4-alpha.
  1726. o Minor bugfixes (IPv6, backport from 0.4.0.1-alpha):
  1727. - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
  1728. IPv6 socket was bound using an address family of AF_INET instead
  1729. of AF_INET6. Fixes bug 28995; bugfix on 0.3.5.1-alpha. Patch from
  1730. Kris Katterjohn.
  1731. o Minor bugfixes (build, compatibility, rust, backport from 0.4.0.2-alpha):
  1732. - Update Cargo.lock file to match the version made by the latest
  1733. version of Rust, so that "make distcheck" will pass again. Fixes
  1734. bug 29244; bugfix on 0.3.3.4-alpha.
  1735. o Minor bugfixes (client, clock skew, backport from 0.4.0.1-alpha):
  1736. - Select guards even if the consensus has expired, as long as the
  1737. consensus is still reasonably live. Fixes bug 24661; bugfix
  1738. on 0.3.0.1-alpha.
  1739. o Minor bugfixes (compilation, backport from 0.4.0.1-alpha):
  1740. - Compile correctly on OpenBSD; previously, we were missing some
  1741. headers required in order to detect it properly. Fixes bug 28938;
  1742. bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
  1743. o Minor bugfixes (documentation, backport from 0.4.0.2-alpha):
  1744. - Describe the contents of the v3 onion service client authorization
  1745. files correctly: They hold public keys, not private keys. Fixes
  1746. bug 28979; bugfix on 0.3.5.1-alpha. Spotted by "Felixix".
  1747. o Minor bugfixes (logging, backport from 0.4.0.1-alpha):
  1748. - Rework rep_hist_log_link_protocol_counts() to iterate through all
  1749. link protocol versions when logging incoming/outgoing connection
  1750. counts. Tor no longer skips version 5, and we won't have to
  1751. remember to update this function when new link protocol version is
  1752. developed. Fixes bug 28920; bugfix on 0.2.6.10.
  1753. o Minor bugfixes (logging, backport from 0.4.0.2-alpha):
  1754. - Log more information at "warning" level when unable to read a
  1755. private key; log more information at "info" level when unable to
  1756. read a public key. We had warnings here before, but they were lost
  1757. during our NSS work. Fixes bug 29042; bugfix on 0.3.5.1-alpha.
  1758. o Minor bugfixes (misc, backport from 0.4.0.2-alpha):
  1759. - The amount of total available physical memory is now determined
  1760. using the sysctl identifier HW_PHYSMEM (rather than HW_USERMEM)
  1761. when it is defined and a 64-bit variant is not available. Fixes
  1762. bug 28981; bugfix on 0.2.5.4-alpha. Patch from Kris Katterjohn.
  1763. o Minor bugfixes (onion services, backport from 0.4.0.2-alpha):
  1764. - Avoid crashing if ClientOnionAuthDir (incorrectly) contains more
  1765. than one private key for a hidden service. Fixes bug 29040; bugfix
  1766. on 0.3.5.1-alpha.
  1767. - In hs_cache_store_as_client() log an HSDesc we failed to parse at
  1768. "debug" level. Tor used to log it as a warning, which caused very
  1769. long log lines to appear for some users. Fixes bug 29135; bugfix
  1770. on 0.3.2.1-alpha.
  1771. - Stop logging "Tried to establish rendezvous on non-OR circuit..."
  1772. as a warning. Instead, log it as a protocol warning, because there
  1773. is nothing that relay operators can do to fix it. Fixes bug 29029;
  1774. bugfix on 0.2.5.7-rc.
  1775. o Minor bugfixes (tests, directory clients, backport from 0.4.0.1-alpha):
  1776. - Mark outdated dirservers when Tor only has a reasonably live
  1777. consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
  1778. o Minor bugfixes (tests, backport from 0.4.0.2-alpha):
  1779. - Detect and suppress "bug" warnings from the util/time test on
  1780. Windows. Fixes bug 29161; bugfix on 0.2.9.3-alpha.
  1781. - Do not log an error-level message if we fail to find an IPv6
  1782. network interface from the unit tests. Fixes bug 29160; bugfix
  1783. on 0.2.7.3-rc.
  1784. o Minor bugfixes (usability, backport from 0.4.0.1-alpha):
  1785. - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate().
  1786. Some users took this phrasing to mean that the mentioned guard was
  1787. under their control or responsibility, which it is not. Fixes bug
  1788. 28895; bugfix on Tor 0.3.0.1-alpha.
  1789. Changes in version 0.3.4.11 - 2019-02-21
  1790. Tor 0.3.4.11 is the third stable release in its series. It includes
  1791. a fix for a medium-severity security bug affecting Tor 0.3.2.1-alpha and
  1792. later. All Tor instances running an affected release should upgrade to
  1793. 0.3.3.12, 0.3.4.11, 0.3.5.8, or 0.4.0.2-alpha.
  1794. o Major bugfixes (cell scheduler, KIST, security):
  1795. - Make KIST consider the outbuf length when computing what it can
  1796. put in the outbuf. Previously, KIST acted as though the outbuf
  1797. were empty, which could lead to the outbuf becoming too full. It
  1798. is possible that an attacker could exploit this bug to cause a Tor
  1799. client or relay to run out of memory and crash. Fixes bug 29168;
  1800. bugfix on 0.3.2.1-alpha. This issue is also being tracked as
  1801. TROVE-2019-001 and CVE-2019-8955.
  1802. o Minor features (geoip):
  1803. - Update geoip and geoip6 to the February 5 2019 Maxmind GeoLite2
  1804. Country database. Closes ticket 29478.
  1805. o Minor bugfixes (build, compatibility, rust, backport from 0.4.0.2-alpha):
  1806. - Update Cargo.lock file to match the version made by the latest
  1807. version of Rust, so that "make distcheck" will pass again. Fixes
  1808. bug 29244; bugfix on 0.3.3.4-alpha.
  1809. o Minor bugfixes (onion services, backport from 0.4.0.2-alpha):
  1810. - Stop logging "Tried to establish rendezvous on non-OR circuit..."
  1811. as a warning. Instead, log it as a protocol warning, because there
  1812. is nothing that relay operators can do to fix it. Fixes bug 29029;
  1813. bugfix on 0.2.5.7-rc.
  1814. Changes in version 0.3.3.12 - 2019-02-21
  1815. Tor 0.3.3.12 fixes a medium-severity security bug affecting Tor
  1816. 0.3.2.1-alpha and later. All Tor instances running an affected release
  1817. should upgrade to 0.3.3.12, 0.3.4.11, 0.3.5.8, or 0.4.0.2-alpha.
  1818. This release marks the end of support for the Tor 0.3.3.x series. We
  1819. recommend that users switch to either the Tor 0.3.4 series (supported
  1820. until at least 10 June 2019), or the Tor 0.3.5 series, which will
  1821. receive long-term support until at least 1 Feb 2022.
  1822. o Major bugfixes (cell scheduler, KIST, security):
  1823. - Make KIST consider the outbuf length when computing what it can
  1824. put in the outbuf. Previously, KIST acted as though the outbuf
  1825. were empty, which could lead to the outbuf becoming too full. It
  1826. is possible that an attacker could exploit this bug to cause a Tor
  1827. client or relay to run out of memory and crash. Fixes bug 29168;
  1828. bugfix on 0.3.2.1-alpha. This issue is also being tracked as
  1829. TROVE-2019-001 and CVE-2019-8955.
  1830. o Minor features (geoip):
  1831. - Update geoip and geoip6 to the February 5 2019 Maxmind GeoLite2
  1832. Country database. Closes ticket 29478.
  1833. o Minor bugfixes (build, compatibility, rust, backport from 0.4.0.2-alpha):
  1834. - Update Cargo.lock file to match the version made by the latest
  1835. version of Rust, so that "make distcheck" will pass again. Fixes
  1836. bug 29244; bugfix on 0.3.3.4-alpha.
  1837. o Minor bugfixes (onion services, backport from 0.4.0.2-alpha):
  1838. - Stop logging "Tried to establish rendezvous on non-OR circuit..."
  1839. as a warning. Instead, log it as a protocol warning, because there
  1840. is nothing that relay operators can do to fix it. Fixes bug 29029;
  1841. bugfix on 0.2.5.7-rc.
  1842. Changes in version 0.3.3.11 - 2019-01-07
  1843. Tor 0.3.3.11 backports numerous fixes from later versions of Tor.
  1844. numerous fixes, including an important fix for anyone using OpenSSL
  1845. 1.1.1. Anyone running an earlier version of Tor 0.3.3 should upgrade
  1846. to this version, or to a later series.
  1847. As a reminder, support the Tor 0.3.3 series will end on 22 Feb 2019.
  1848. We anticipate that this will be the last release of Tor 0.3.3, unless
  1849. some major bug is before then. Some time between now and then, users
  1850. should switch to either the Tor 0.3.4 series (supported until at least
  1851. 10 June 2019), or the Tor 0.3.5 series, which will receive long-term
  1852. support until at least 1 Feb 2022.
  1853. o Major bugfixes (OpenSSL, portability, backport from 0.3.5.5-alpha):
  1854. - Fix our usage of named groups when running as a TLS 1.3 client in
  1855. OpenSSL 1.1.1. Previously, we only initialized EC groups when
  1856. running as a relay, which caused clients to fail to negotiate TLS
  1857. 1.3 with relays. Fixes bug 28245; bugfix on 0.2.9.15 (when TLS 1.3
  1858. support was added).
  1859. o Major bugfixes (restart-in-process, backport from 0.3.5.1-alpha):
  1860. - Fix a use-after-free error that could be caused by passing Tor an
  1861. impossible set of options that would fail during options_act().
  1862. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  1863. o Minor features (continuous integration, backport from 0.3.5.1-alpha):
  1864. - Only run one online rust build in Travis, to reduce network
  1865. errors. Skip offline rust builds on Travis for Linux gcc, because
  1866. they're redundant. Implements ticket 27252.
  1867. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  1868. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  1869. Linux with default settings, because all the non-default builds
  1870. use gcc on Linux. Implements ticket 27252.
  1871. o Minor features (continuous integration, backport from 0.3.5.3-alpha):
  1872. - Use the Travis Homebrew addon to install packages on macOS during
  1873. Travis CI. The package list is the same, but the Homebrew addon
  1874. does not do a `brew update` by default. Implements ticket 27738.
  1875. o Minor features (fallback directory list, backport from 0.3.5.6-rc):
  1876. - Replace the 150 fallbacks originally introduced in Tor
  1877. 0.3.3.1-alpha in January 2018 (of which ~115 were still
  1878. functional), with a list of 157 fallbacks (92 new, 65 existing, 85
  1879. removed) generated in December 2018. Closes ticket 24803.
  1880. o Minor features (geoip):
  1881. - Update geoip and geoip6 to the January 3 2019 Maxmind GeoLite2
  1882. Country database. Closes ticket 29012.
  1883. o Minor features (OpenSSL bug workaround, backport from 0.3.5.7):
  1884. - Work around a bug in OpenSSL 1.1.1a, which prevented the TLS 1.3
  1885. key export function from handling long labels. When this bug is
  1886. detected, Tor will disable TLS 1.3. We recommend upgrading to a
  1887. version of OpenSSL without this bug when it becomes available.
  1888. Closes ticket 28973.
  1889. o Minor bugfixes (relay statistics, backport from 0.3.5.7):
  1890. - Update relay descriptor on bandwidth changes only when the uptime
  1891. is smaller than 24h, in order to reduce the efficiency of guard
  1892. discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
  1893. o Minor bugfixes (C correctness, backport from 0.3.5.4-alpha):
  1894. - Avoid undefined behavior in an end-of-string check when parsing
  1895. the BEGIN line in a directory object. Fixes bug 28202; bugfix
  1896. on 0.2.0.3-alpha.
  1897. o Minor bugfixes (code safety, backport from 0.3.5.3-alpha):
  1898. - Rewrite our assertion macros so that they no longer suppress the
  1899. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  1900. o Minor bugfixes (compilation, backport from 0.3.5.5-alpha):
  1901. - Initialize a variable unconditionally in aes_new_cipher(), since
  1902. some compilers cannot tell that we always initialize it before
  1903. use. Fixes bug 28413; bugfix on 0.2.9.3-alpha.
  1904. o Minor bugfixes (directory authority, backport from 0.3.5.4-alpha):
  1905. - Log additional info when we get a relay that shares an ed25519 ID
  1906. with a different relay, instead making a BUG() warning. Fixes bug
  1907. 27800; bugfix on 0.3.2.1-alpha.
  1908. o Minor bugfixes (directory permissions, backport form 0.3.5.3-alpha):
  1909. - When a user requests a group-readable DataDirectory, give it to
  1910. them. Previously, when the DataDirectory and the CacheDirectory
  1911. were the same, the default setting (0) for
  1912. CacheDirectoryGroupReadable would override the setting for
  1913. DataDirectoryGroupReadable. Fixes bug 26913; bugfix
  1914. on 0.3.3.1-alpha.
  1915. o Minor bugfixes (onion service v3, backport from 0.3.5.1-alpha):
  1916. - When the onion service directory can't be created or has the wrong
  1917. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  1918. on 0.3.2.1-alpha.
  1919. o Minor bugfixes (onion service v3, backport from 0.3.5.2-alpha):
  1920. - Close all SOCKS request (for the same .onion) if the newly fetched
  1921. descriptor is unusable. Before that, we would close only the first
  1922. one leaving the other hanging and let to time out by themselves.
  1923. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  1924. o Minor bugfixes (onion service v3, backport from 0.3.5.3-alpha):
  1925. - Don't warn so loudly when Tor is unable to decode an onion
  1926. descriptor. This can now happen as a normal use case if a client
  1927. gets a descriptor with client authorization but the client is not
  1928. authorized. Fixes bug 27550; bugfix on 0.3.5.1-alpha.
  1929. o Minor bugfixes (onion service v3, backport from 0.3.5.6-rc):
  1930. - When deleting an ephemeral onion service (DEL_ONION), do not close
  1931. any rendezvous circuits in order to let the existing client
  1932. connections finish by themselves or closed by the application. The
  1933. HS v2 is doing that already so now we have the same behavior for
  1934. all versions. Fixes bug 28619; bugfix on 0.3.3.1-alpha.
  1935. o Minor bugfixes (HTTP tunnel):
  1936. - Fix a bug warning when closing an HTTP tunnel connection due to
  1937. an HTTP request we couldn't handle. Fixes bug 26470; bugfix on
  1938. 0.3.2.1-alpha.
  1939. o Minor bugfixes (memory leaks, backport from 0.3.5.5-alpha):
  1940. - Fix a harmless memory leak in libtorrunner.a. Fixes bug 28419;
  1941. bugfix on 0.3.3.1-alpha. Patch from Martin Kepplinger.
  1942. o Minor bugfixes (netflow padding, backport from 0.3.5.1-alpha):
  1943. - Ensure circuitmux queues are empty before scheduling or sending
  1944. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  1945. o Minor bugfixes (protover, backport from 0.3.5.3-alpha):
  1946. - Reject protocol names containing bytes other than alphanumeric
  1947. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  1948. on 0.2.9.4-alpha.
  1949. o Minor bugfixes (rust, backport from 0.3.5.1-alpha):
  1950. - Compute protover votes correctly in the rust version of the
  1951. protover code. Previously, the protover rewrite in 24031 allowed
  1952. repeated votes from the same voter for the same protocol version
  1953. to be counted multiple times in protover_compute_vote(). Fixes bug
  1954. 27649; bugfix on 0.3.3.5-rc.
  1955. - Reject protover names that contain invalid characters. Fixes bug
  1956. 27687; bugfix on 0.3.3.1-alpha.
  1957. o Minor bugfixes (rust, backport from 0.3.5.2-alpha):
  1958. - protover_all_supported() would attempt to allocate up to 16GB on
  1959. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  1960. bugfix on 0.3.3.5-rc.
  1961. o Minor bugfixes (rust, backport from 0.3.5.4-alpha):
  1962. - Fix a potential null dereference in protover_all_supported(). Add
  1963. a test for it. Fixes bug 27804; bugfix on 0.3.3.1-alpha.
  1964. - Return a string that can be safely freed by C code, not one
  1965. created by the rust allocator, in protover_all_supported(). Fixes
  1966. bug 27740; bugfix on 0.3.3.1-alpha.
  1967. - Fix an API mismatch in the rust implementation of
  1968. protover_compute_vote(). This bug could have caused crashes on any
  1969. directory authorities running Tor with Rust (which we do not yet
  1970. recommend). Fixes bug 27741; bugfix on 0.3.3.6.
  1971. o Minor bugfixes (testing, backport from 0.3.5.1-alpha):
  1972. - If a unit test running in a subprocess exits abnormally or with a
  1973. nonzero status code, treat the test as having failed, even if the
  1974. test reported success. Without this fix, memory leaks don't cause
  1975. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  1976. bugfix on 0.2.2.4-alpha.
  1977. o Minor bugfixes (testing, backport from 0.3.5.4-alpha):
  1978. - Treat backtrace test failures as expected on BSD-derived systems
  1979. (NetBSD, OpenBSD, and macOS/Darwin) until we solve bug 17808.
  1980. (FreeBSD failures have been treated as expected since 18204 in
  1981. 0.2.8.) Fixes bug 27948; bugfix on 0.2.5.2-alpha.
  1982. o Minor bugfixes (unit tests, guard selection, backport from 0.3.5.6-rc):
  1983. - Stop leaking memory in an entry guard unit test. Fixes bug 28554;
  1984. bugfix on 0.3.0.1-alpha.
  1985. Changes in version 0.3.4.10 - 2019-01-07
  1986. Tor 0.3.4.9 is the second stable release in its series; it backports
  1987. numerous fixes, including an important fix for relays, and for anyone
  1988. using OpenSSL 1.1.1. Anyone running an earlier version of Tor 0.3.4
  1989. should upgrade.
  1990. As a reminder, the Tor 0.3.4 series will be supported until 10 June
  1991. 2019. Some time between now and then, users should switch to the Tor
  1992. 0.3.5 series, which will receive long-term support until at least 1
  1993. Feb 2022.
  1994. o Major bugfixes (OpenSSL, portability, backport from 0.3.5.5-alpha):
  1995. - Fix our usage of named groups when running as a TLS 1.3 client in
  1996. OpenSSL 1.1.1. Previously, we only initialized EC groups when
  1997. running as a relay, which caused clients to fail to negotiate TLS
  1998. 1.3 with relays. Fixes bug 28245; bugfix on 0.2.9.15 (when TLS 1.3
  1999. support was added).
  2000. o Major bugfixes (relay, directory, backport from 0.3.5.7):
  2001. - Always reactivate linked connections in the main loop so long as
  2002. any linked connection has been active. Previously, connections
  2003. serving directory information wouldn't get reactivated after the
  2004. first chunk of data was sent (usually 32KB), which would prevent
  2005. clients from bootstrapping. Fixes bug 28912; bugfix on
  2006. 0.3.4.1-alpha. Patch by "cypherpunks3".
  2007. o Minor features (continuous integration, Windows, backport from 0.3.5.6-rc):
  2008. - Always show the configure and test logs, and upload them as build
  2009. artifacts, when building for Windows using Appveyor CI.
  2010. Implements 28459.
  2011. o Minor features (controller, backport from 0.3.5.1-alpha):
  2012. - For purposes of CIRC_BW-based dropped cell detection, track half-
  2013. closed stream ids, and allow their ENDs, SENDMEs, DATA and path
  2014. bias check cells to arrive without counting it as dropped until
  2015. either the END arrives, or the windows are empty. Closes
  2016. ticket 25573.
  2017. o Minor features (fallback directory list, backport from 0.3.5.6-rc):
  2018. - Replace the 150 fallbacks originally introduced in Tor
  2019. 0.3.3.1-alpha in January 2018 (of which ~115 were still
  2020. functional), with a list of 157 fallbacks (92 new, 65 existing, 85
  2021. removed) generated in December 2018. Closes ticket 24803.
  2022. o Minor features (geoip):
  2023. - Update geoip and geoip6 to the November 6 2018 Maxmind GeoLite2
  2024. Country database. Closes ticket 28395.
  2025. o Minor features (OpenSSL bug workaround, backport from 0.3.5.7):
  2026. - Work around a bug in OpenSSL 1.1.1a, which prevented the TLS 1.3
  2027. key export function from handling long labels. When this bug is
  2028. detected, Tor will disable TLS 1.3. We recommend upgrading to a
  2029. version of OpenSSL without this bug when it becomes available.
  2030. Closes ticket 28973.
  2031. o Minor bugfixes (compilation, backport from 0.3.5.5-alpha):
  2032. - Initialize a variable unconditionally in aes_new_cipher(), since
  2033. some compilers cannot tell that we always initialize it before
  2034. use. Fixes bug 28413; bugfix on 0.2.9.3-alpha.
  2035. o Minor bugfixes (connection, relay, backport from 0.3.5.5-alpha):
  2036. - Avoid a logging a BUG() stacktrace when closing connection held
  2037. open because the write side is rate limited but not the read side.
  2038. Now, the connection read side is simply shut down until Tor is
  2039. able to flush the connection and close it. Fixes bug 27750; bugfix
  2040. on 0.3.4.1-alpha.
  2041. o Minor bugfixes (continuous integration, Windows, backport from 0.3.5.5-alpha):
  2042. - Manually configure the zstd compiler options, when building using
  2043. mingw on Appveyor Windows CI. The MSYS2 mingw zstd package does
  2044. not come with a pkg-config file. Fixes bug 28454; bugfix
  2045. on 0.3.4.1-alpha.
  2046. - Stop using an external OpenSSL install, and stop installing MSYS2
  2047. packages, when building using mingw on Appveyor Windows CI. Fixes
  2048. bug 28399; bugfix on 0.3.4.1-alpha.
  2049. o Minor bugfixes (continuous integration, Windows, backport from 0.3.5.6-rc):
  2050. - Explicitly specify the path to the OpenSSL library and do not
  2051. download OpenSSL from Pacman, but instead use the library that is
  2052. already provided by AppVeyor. Fixes bug 28574; bugfix on master.
  2053. o Minor bugfixes (directory permissions, backport form 0.3.5.3-alpha):
  2054. - When a user requests a group-readable DataDirectory, give it to
  2055. them. Previously, when the DataDirectory and the CacheDirectory
  2056. were the same, the default setting (0) for
  2057. CacheDirectoryGroupReadable would override the setting for
  2058. DataDirectoryGroupReadable. Fixes bug 26913; bugfix
  2059. on 0.3.3.1-alpha.
  2060. o Minor bugfixes (memory leaks, backport from 0.3.5.5-alpha):
  2061. - Fix a harmless memory leak in libtorrunner.a. Fixes bug 28419;
  2062. bugfix on 0.3.3.1-alpha. Patch from Martin Kepplinger.
  2063. o Minor bugfixes (onion service v3, backport from 0.3.5.3-alpha):
  2064. - Don't warn so loudly when Tor is unable to decode an onion
  2065. descriptor. This can now happen as a normal use case if a client
  2066. gets a descriptor with client authorization but the client is not
  2067. authorized. Fixes bug 27550; bugfix on 0.3.5.1-alpha.
  2068. o Minor bugfixes (onion service v3, backport from 0.3.5.6-rc):
  2069. - When deleting an ephemeral onion service (DEL_ONION), do not close
  2070. any rendezvous circuits in order to let the existing client
  2071. connections finish by themselves or closed by the application. The
  2072. HS v2 is doing that already so now we have the same behavior for
  2073. all versions. Fixes bug 28619; bugfix on 0.3.3.1-alpha.
  2074. o Minor bugfixes (relay statistics, backport from 0.3.5.7):
  2075. - Update relay descriptor on bandwidth changes only when the uptime
  2076. is smaller than 24h, in order to reduce the efficiency of guard
  2077. discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
  2078. o Minor bugfixes (unit tests, guard selection, backport from 0.3.5.6-rc):
  2079. - Stop leaking memory in an entry guard unit test. Fixes bug 28554;
  2080. bugfix on 0.3.0.1-alpha.
  2081. Changes in version 0.3.5.7 - 2019-01-07
  2082. Tor 0.3.5.7 is the first stable release in its series; it includes
  2083. compilation and portability fixes, and a fix for a severe problem
  2084. affecting directory caches.
  2085. The Tor 0.3.5 series includes several new features and performance
  2086. improvements, including client authorization for v3 onion services,
  2087. cleanups to bootstrap reporting, support for improved bandwidth-
  2088. measurement tools, experimental support for NSS in place of OpenSSL,
  2089. and much more. It also begins a full reorganization of Tor's code
  2090. layout, for improved modularity and maintainability in the future.
  2091. Finally, there is the usual set of performance improvements and
  2092. bugfixes that we try to do in every release series.
  2093. There are a couple of changes in the 0.3.5 that may affect
  2094. compatibility. First, the default version for newly created onion
  2095. services is now v3. Use the HiddenServiceVersion option if you want to
  2096. override this. Second, some log messages related to bootstrapping have
  2097. changed; if you use stem, you may need to update to the latest version
  2098. so it will recognize them.
  2099. We have designated 0.3.5 as a "long-term support" (LTS) series: we
  2100. will continue to patch major bugs in typical configurations of 0.3.5
  2101. until at least 1 Feb 2022. (We do not plan to provide long-term
  2102. support for embedding, Rust support, NSS support, running a directory
  2103. authority, or unsupported platforms. For these, you will need to stick
  2104. with the latest stable release.)
  2105. Below are the changes since 0.3.4.9. For a complete list of changes
  2106. since 0.3.5.6-rc, see the ChangeLog file.
  2107. o Major features (bootstrap):
  2108. - Don't report directory progress until after a connection to a
  2109. relay or bridge has succeeded. Previously, we'd report 80%
  2110. progress based on cached directory information when we couldn't
  2111. even connect to the network. Closes ticket 27169.
  2112. o Major features (new code layout):
  2113. - Nearly all of Tor's source code has been moved around into more
  2114. logical places. The "common" directory is now divided into a set
  2115. of libraries in "lib", and files in the "or" directory have been
  2116. split into "core" (logic absolutely needed for onion routing),
  2117. "feature" (independent modules in Tor), and "app" (to configure
  2118. and invoke the rest of Tor). See doc/HACKING/CodeStructure.md for
  2119. more information. Closes ticket 26481.
  2120. This refactoring is not complete: although the libraries have been
  2121. refactored to be acyclic, the main body of Tor is still too
  2122. interconnected. We will attempt to improve this in the future.
  2123. o Major features (onion services v3):
  2124. - Implement onion service client authorization at the descriptor
  2125. level: only authorized clients can decrypt a service's descriptor
  2126. to find out how to contact it. A new torrc option was added to
  2127. control this client side: ClientOnionAuthDir <path>. On the
  2128. service side, if the "authorized_clients/" directory exists in the
  2129. onion service directory path, client configurations are read from
  2130. the files within. See the manpage for more details. Closes ticket
  2131. 27547. Patch done by Suphanat Chunhapanya (haxxpop).
  2132. - Improve revision counter generation in next-gen onion services.
  2133. Onion services can now scale by hosting multiple instances on
  2134. different hosts without synchronization between them, which was
  2135. previously impossible because descriptors would get rejected by
  2136. HSDirs. Addresses ticket 25552.
  2137. - Version 3 onion services can now use the per-service
  2138. HiddenServiceExportCircuitID option to differentiate client
  2139. circuits. It communicates with the service by using the HAProxy
  2140. protocol to assign virtual IP addresses to inbound client
  2141. circuits. Closes ticket 4700. Patch by Mahrud Sayrafi.
  2142. o Major features (onion services, UI change):
  2143. - For a newly created onion service, the default version is now 3.
  2144. Tor still supports existing version 2 services, but the operator
  2145. now needs to set "HiddenServiceVersion 2" in order to create a new
  2146. version 2 service. For existing services, Tor now learns the
  2147. version by reading the key file. Closes ticket 27215.
  2148. o Major features (portability, cryptography, experimental, TLS):
  2149. - Tor now has the option to compile with the NSS library instead of
  2150. OpenSSL. This feature is experimental, and we expect that bugs may
  2151. remain. It is mainly intended for environments where Tor's
  2152. performance is not CPU-bound, and where NSS is already known to be
  2153. installed. To try it out, configure Tor with the --enable-nss
  2154. flag. Closes tickets 26631, 26815, and 26816.
  2155. If you are experimenting with this option and using an old cached
  2156. consensus, Tor may fail to start. To solve this, delete your
  2157. "cached-consensus" and "cached-microdesc-consensus" files,
  2158. (if present), and restart Tor.
  2159. o Major features (relay, UI change):
  2160. - Relays no longer run as exits by default. If the "ExitRelay"
  2161. option is auto (or unset), and no exit policy is specified with
  2162. ExitPolicy or ReducedExitPolicy, we now treat ExitRelay as 0.
  2163. Previously in this case, we allowed exit traffic and logged a
  2164. warning message. Closes ticket 21530. Patch by Neel Chauhan.
  2165. - Tor now validates that the ContactInfo config option is valid UTF-
  2166. 8 when parsing torrc. Closes ticket 27428.
  2167. o Major bugfixes (compilation):
  2168. - Fix compilation on ARM (and other less-used CPUs) when compiling
  2169. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  2170. o Major bugfixes (compilation, rust):
  2171. - Rust tests can now build and run successfully with the
  2172. --enable-fragile-hardening option enabled. Doing this currently
  2173. requires the rust beta channel; it will be possible with stable
  2174. rust once Rust version 1.31 is released. Patch from Alex Crichton.
  2175. Fixes bugs 27272, 27273, and 27274. Bugfix on 0.3.1.1-alpha.
  2176. o Major bugfixes (directory authority):
  2177. - Actually check that the address we get from DirAuthority
  2178. configuration line is valid IPv4. Explicitly disallow DirAuthority
  2179. address to be a DNS hostname. Fixes bug 26488; bugfix
  2180. on 0.1.2.10-rc.
  2181. o Major bugfixes (embedding, main loop):
  2182. - When DisableNetwork becomes set, actually disable periodic events
  2183. that are already enabled. (Previously, we would refrain from
  2184. enabling new ones, but we would leave the old ones turned on.)
  2185. Fixes bug 28348; bugfix on 0.3.4.1-alpha.
  2186. o Major bugfixes (main loop, bootstrap):
  2187. - Make sure Tor bootstraps and works properly if only the
  2188. ControlPort is set. Prior to this fix, Tor would only bootstrap
  2189. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  2190. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  2191. o Major bugfixes (onion service v3):
  2192. - On an intro point for a version 3 onion service, stop closing
  2193. introduction circuits on a NACK. This lets the client decide
  2194. whether to reuse the circuit or discard it. Previously, we closed
  2195. intro circuits when sending NACKs. Fixes bug 27841; bugfix on
  2196. 0.3.2.1-alpha. Patch by Neel Chaunan.
  2197. o Major bugfixes (OpenSSL, portability):
  2198. - Fix our usage of named groups when running as a TLS 1.3 client in
  2199. OpenSSL 1.1.1. Previously, we only initialized EC groups when
  2200. running as a relay, which caused clients to fail to negotiate TLS
  2201. 1.3 with relays. Fixes bug 28245; bugfix on 0.2.9.15 (when TLS 1.3
  2202. support was added).
  2203. o Major bugfixes (relay bandwidth statistics):
  2204. - When we close relayed circuits, report the data in the circuit
  2205. queues as being written in our relay bandwidth stats. This
  2206. mitigates guard discovery and other attacks that close circuits
  2207. for the explicit purpose of noticing this discrepancy in
  2208. statistics. Fixes bug 23512; bugfix on 0.0.8pre3.
  2209. o Major bugfixes (relay):
  2210. - When our write bandwidth limit is exhausted, stop writing on the
  2211. connection. Previously, we had a typo in the code that would make
  2212. us stop reading instead, leading to relay connections being stuck
  2213. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  2214. on 0.3.4.1-alpha.
  2215. - Always reactivate linked connections in the main loop so long as
  2216. any linked connection has been active. Previously, connections
  2217. serving directory information wouldn't get reactivated after the
  2218. first chunk of data was sent (usually 32KB), which would prevent
  2219. clients from bootstrapping. Fixes bug 28912; bugfix on
  2220. 0.3.4.1-alpha. Patch by "cypherpunks3".
  2221. o Major bugfixes (restart-in-process):
  2222. - Fix a use-after-free error that could be caused by passing Tor an
  2223. impossible set of options that would fail during options_act().
  2224. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  2225. o Minor features (admin tools):
  2226. - Add a new --key-expiration option to print the expiration date of
  2227. the signing cert in an ed25519_signing_cert file. Resolves
  2228. issue 19506.
  2229. o Minor features (build):
  2230. - If you pass the "--enable-pic" option to configure, Tor will try
  2231. to tell the compiler to build position-independent code suitable
  2232. to link into a dynamic library. (The default remains -fPIE, for
  2233. code suitable for a relocatable executable.) Closes ticket 23846.
  2234. o Minor features (code correctness, testing):
  2235. - Tor's build process now includes a "check-includes" make target to
  2236. verify that no module of Tor relies on any headers from a higher-
  2237. level module. We hope to use this feature over time to help
  2238. refactor our codebase. Closes ticket 26447.
  2239. o Minor features (code layout):
  2240. - We have a new "lowest-level" error-handling API for use by code
  2241. invoked from within the logging module. With this interface, the
  2242. logging code is no longer at risk of calling into itself if a
  2243. failure occurs while it is trying to log something. Closes
  2244. ticket 26427.
  2245. o Minor features (compilation):
  2246. - When possible, place our warning flags in a separate file, to
  2247. avoid flooding verbose build logs. Closes ticket 28924.
  2248. - Tor's configure script now supports a --with-malloc= option to
  2249. select your malloc implementation. Supported options are
  2250. "tcmalloc", "jemalloc", "openbsd" (deprecated), and "system" (the
  2251. default). Addresses part of ticket 20424. Based on a patch from
  2252. Alex Xu.
  2253. o Minor features (config):
  2254. - The "auto" keyword in torrc is now case-insensitive. Closes
  2255. ticket 26663.
  2256. o Minor features (continuous integration):
  2257. - Add a Travis CI build for --enable-nss on Linux gcc. Closes
  2258. ticket 27751.
  2259. - Add new CI job to Travis configuration to run stem-based
  2260. integration tests. Closes ticket 27913.
  2261. - Use the Travis Homebrew addon to install packages on macOS during
  2262. Travis CI. The package list is the same, but the Homebrew addon
  2263. does not do a `brew update` by default. Implements ticket 27738.
  2264. - Report what program produced the mysterious core file that we
  2265. occasionally see on Travis CI during make distcheck. Closes
  2266. ticket 28024.
  2267. - Don't do a distcheck with --disable-module-dirauth in Travis.
  2268. Implements ticket 27252.
  2269. - Install libcap-dev and libseccomp2-dev so these optional
  2270. dependencies get tested on Travis CI. Closes ticket 26560.
  2271. - Only run one online rust build in Travis, to reduce network
  2272. errors. Skip offline rust builds on Travis for Linux gcc, because
  2273. they're redundant. Implements ticket 27252.
  2274. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  2275. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  2276. Linux with default settings, because all the non-default builds
  2277. use gcc on Linux. Implements ticket 27252.
  2278. o Minor features (continuous integration, Windows):
  2279. - Always show the configure and test logs, and upload them as build
  2280. artifacts, when building for Windows using Appveyor CI.
  2281. Implements 28459.
  2282. - Build tor on Windows Server 2012 R2 and Windows Server 2016 using
  2283. Appveyor's CI. Closes ticket 28318.
  2284. o Minor features (controller):
  2285. - Emit CIRC_BW events as soon as we detect that we processed an
  2286. invalid or otherwise dropped cell on a circuit. This allows
  2287. vanguards and other controllers to react more quickly to dropped
  2288. cells. Closes ticket 27678.
  2289. - For purposes of CIRC_BW-based dropped cell detection, track half-
  2290. closed stream ids, and allow their ENDs, SENDMEs, DATA and path
  2291. bias check cells to arrive without counting it as dropped until
  2292. either the END arrives, or the windows are empty. Closes
  2293. ticket 25573.
  2294. - Implement a 'GETINFO md/all' controller command to enable getting
  2295. all known microdescriptors. Closes ticket 8323.
  2296. - The GETINFO command now support an "uptime" argument, to return
  2297. Tor's uptime in seconds. Closes ticket 25132.
  2298. o Minor features (denial-of-service avoidance):
  2299. - Make our OOM handler aware of the DNS cache so that it doesn't
  2300. fill up the memory. This check is important for our DoS mitigation
  2301. subsystem. Closes ticket 18642. Patch by Neel Chauhan.
  2302. o Minor features (development):
  2303. - Tor's makefile now supports running the "clippy" Rust style tool
  2304. on our Rust code. Closes ticket 22156.
  2305. o Minor features (directory authority):
  2306. - There is no longer an artificial upper limit on the length of
  2307. bandwidth lines. Closes ticket 26223.
  2308. - When a bandwidth file is used to obtain the bandwidth measurements,
  2309. include this bandwidth file headers in the votes. Closes
  2310. ticket 3723.
  2311. - Improved support for networks with only a single authority or a
  2312. single fallback directory. Patch from Gabriel Somlo. Closes
  2313. ticket 25928.
  2314. o Minor features (embedding API):
  2315. - The Tor controller API now supports a function to launch Tor with
  2316. a preconstructed owning controller FD, so that embedding
  2317. applications don't need to manage controller ports and
  2318. authentication. Closes ticket 24204.
  2319. - The Tor controller API now has a function that returns the name
  2320. and version of the backend implementing the API. Closes
  2321. ticket 26947.
  2322. o Minor features (fallback directory list):
  2323. - Replace the 150 fallbacks originally introduced in Tor
  2324. 0.3.3.1-alpha in January 2018 (of which ~115 were still
  2325. functional), with a list of 157 fallbacks (92 new, 65 existing, 85
  2326. removed) generated in December 2018. Closes ticket 24803.
  2327. o Minor features (geoip):
  2328. - Update geoip and geoip6 to the January 3 2019 Maxmind GeoLite2
  2329. Country database. Closes ticket 29012.
  2330. o Minor features (memory management):
  2331. - Get Libevent to use the same memory allocator as Tor, by calling
  2332. event_set_mem_functions() during initialization. Resolves
  2333. ticket 8415.
  2334. o Minor features (memory usage):
  2335. - When not using them, store legacy TAP public onion keys in DER-
  2336. encoded format, rather than as expanded public keys. This should
  2337. save several megabytes on typical clients. Closes ticket 27246.
  2338. o Minor features (OpenSSL bug workaround):
  2339. - Work around a bug in OpenSSL 1.1.1a, which prevented the TLS 1.3
  2340. key export function from handling long labels. When this bug is
  2341. detected, Tor will disable TLS 1.3. We recommend upgrading to a
  2342. version of OpenSSL without this bug when it becomes available.
  2343. Closes ticket 28973.
  2344. o Minor features (OpenSSL):
  2345. - When possible, use RFC5869 HKDF implementation from OpenSSL rather
  2346. than our own. Resolves ticket 19979.
  2347. o Minor features (performance):
  2348. - Remove about 96% of the work from the function that we run at
  2349. startup to test our curve25519_basepoint implementation. Since
  2350. this function has yet to find an actual failure, we now only run
  2351. it for 8 iterations instead of 200. Based on our profile
  2352. information, this change should save around 8% of our startup time
  2353. on typical desktops, and may have a similar effect on other
  2354. platforms. Closes ticket 28838.
  2355. - Stop re-validating our hardcoded Diffie-Hellman parameters on
  2356. every startup. Doing this wasted time and cycles, especially on
  2357. low-powered devices. Closes ticket 28851.
  2358. o Minor features (Rust, code quality):
  2359. - Improve rust code quality in the rust protover implementation by
  2360. making it more idiomatic. Includes changing an internal API to
  2361. take &str instead of &String. Closes ticket 26492.
  2362. o Minor features (testing):
  2363. - Add scripts/test/chutney-git-bisect.sh, for bisecting using
  2364. chutney. Implements ticket 27211.
  2365. o Minor features (tor-resolve):
  2366. - The tor-resolve utility can now be used with IPv6 SOCKS proxies.
  2367. Side-effect of the refactoring for ticket 26526.
  2368. o Minor features (UI):
  2369. - Log each included configuration file or directory as we read it,
  2370. to provide more visibility about where Tor is reading from. Patch
  2371. from Unto Sten; closes ticket 27186.
  2372. - Lower log level of "Scheduler type KIST has been enabled" to INFO.
  2373. Closes ticket 26703.
  2374. o Minor bugfixes (32-bit OSX and iOS, timing):
  2375. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  2376. difference algorithm for 32-bit Apple platforms. Previously, it
  2377. would overflow when calculating the difference between two times
  2378. more than 47 days apart. Fixes part of bug 27139; bugfix
  2379. on 0.3.4.1-alpha.
  2380. - Improve the precision of our 32-bit millisecond difference
  2381. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  2382. bugfix on 0.3.4.1-alpha.
  2383. - Relax the tolerance on the mainloop/update_time_jumps test when
  2384. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  2385. on 0.3.4.1-alpha.
  2386. o Minor bugfixes (bootstrap):
  2387. - Try harder to get descriptors in non-exit test networks, by using
  2388. the mid weight for the third hop when there are no exits. Fixes
  2389. bug 27237; bugfix on 0.2.6.2-alpha.
  2390. o Minor bugfixes (C correctness):
  2391. - Avoid casting smartlist index to int implicitly, as it may trigger
  2392. a warning (-Wshorten-64-to-32). Fixes bug 26282; bugfix on
  2393. 0.2.3.13-alpha, 0.2.7.1-alpha and 0.2.1.1-alpha.
  2394. - Use time_t for all values in
  2395. predicted_ports_prediction_time_remaining(). Rework the code that
  2396. computes difference between durations/timestamps. Fixes bug 27165;
  2397. bugfix on 0.3.1.1-alpha.
  2398. o Minor bugfixes (client, memory usage):
  2399. - When not running as a directory cache, there is no need to store
  2400. the text of the current consensus networkstatus in RAM.
  2401. Previously, however, clients would store it anyway, at a cost of
  2402. over 5 MB. Now, they do not. Fixes bug 27247; bugfix
  2403. on 0.3.0.1-alpha.
  2404. o Minor bugfixes (client, ReachableAddresses):
  2405. - Instead of adding a "reject *:*" line to ReachableAddresses when
  2406. loading the configuration, add one to the policy after parsing it
  2407. in parse_reachable_addresses(). This prevents extra "reject *.*"
  2408. lines from accumulating on reloads. Fixes bug 20874; bugfix on
  2409. 0.1.1.5-alpha. Patch by Neel Chauhan.
  2410. o Minor bugfixes (code quality):
  2411. - Rename sandbox_getaddrinfo() and other functions to no longer
  2412. misleadingly suggest that they are sandbox-only. Fixes bug 26525;
  2413. bugfix on 0.2.7.1-alpha.
  2414. o Minor bugfixes (code safety):
  2415. - Rewrite our assertion macros so that they no longer suppress the
  2416. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  2417. on 0.0.6.
  2418. o Minor bugfixes (compilation):
  2419. - Initialize a variable unconditionally in aes_new_cipher(), since
  2420. some compilers cannot tell that we always initialize it before
  2421. use. Fixes bug 28413; bugfix on 0.2.9.3-alpha.
  2422. o Minor bugfixes (configuration):
  2423. - Refuse to start with relative file paths and RunAsDaemon set
  2424. (regression from the fix for bug 22731). Fixes bug 28298; bugfix
  2425. on 0.3.3.1-alpha.
  2426. o Minor bugfixes (configuration, Onion Services):
  2427. - In rend_service_parse_port_config(), disallow any input to remain
  2428. after address-port pair was parsed. This will catch address and
  2429. port being whitespace-separated by mistake of the user. Fixes bug
  2430. 27044; bugfix on 0.2.9.10.
  2431. o Minor bugfixes (connection, relay):
  2432. - Avoid a logging a BUG() stacktrace when closing connection held
  2433. open because the write side is rate limited but not the read side.
  2434. Now, the connection read side is simply shut down until Tor is
  2435. able to flush the connection and close it. Fixes bug 27750; bugfix
  2436. on 0.3.4.1-alpha.
  2437. o Minor bugfixes (continuous integration, Windows):
  2438. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  2439. 27464; bugfix on 0.3.4.1-alpha.
  2440. - Install only the necessary mingw packages during our appveyor
  2441. builds. This change makes the build a little faster, and prevents
  2442. a conflict with a preinstalled mingw openssl that appveyor now
  2443. ships. Fixes bugs 27765 and 27943; bugfix on 0.3.4.2-alpha.
  2444. - Explicitly specify the path to the OpenSSL library and do not
  2445. download OpenSSL from Pacman, but instead use the library that is
  2446. already provided by AppVeyor. Fixes bug 28574; bugfix on master.
  2447. - Manually configure the zstd compiler options, when building using
  2448. mingw on Appveyor Windows CI. The MSYS2 mingw zstd package does
  2449. not come with a pkg-config file. Fixes bug 28454; bugfix
  2450. on 0.3.4.1-alpha.
  2451. - Stop using an external OpenSSL install, and stop installing MSYS2
  2452. packages, when building using mingw on Appveyor Windows CI. Fixes
  2453. bug 28399; bugfix on 0.3.4.1-alpha.
  2454. o Minor bugfixes (controller):
  2455. - Consider all routerinfo errors other than "not a server" to be
  2456. transient for the purpose of "GETINFO exit-policy/*" controller
  2457. request. Print stacktrace in the unlikely case of failing to
  2458. recompute routerinfo digest. Fixes bug 27034; bugfix
  2459. on 0.3.4.1-alpha.
  2460. o Minor bugfixes (correctness):
  2461. - Fix an unreached code path where we checked the value of
  2462. "hostname" inside send_resolved_hostname_cell(). Previously, we
  2463. used it before checking it; now we check it first. Fixes bug
  2464. 28879; bugfix on 0.1.2.7-alpha.
  2465. o Minor bugfixes (directory connection shutdown):
  2466. - Avoid a double-close when shutting down a stalled directory
  2467. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  2468. o Minor bugfixes (directory permissions):
  2469. - When a user requests a group-readable DataDirectory, give it to
  2470. them. Previously, when the DataDirectory and the CacheDirectory
  2471. were the same, the default setting (0) for
  2472. CacheDirectoryGroupReadable would override the setting for
  2473. DataDirectoryGroupReadable. Fixes bug 26913; bugfix
  2474. on 0.3.3.1-alpha.
  2475. o Minor bugfixes (HTTP tunnel):
  2476. - Fix a bug warning when closing an HTTP tunnel connection due to an
  2477. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  2478. on 0.3.2.1-alpha.
  2479. o Minor bugfixes (ipv6):
  2480. - In addrs_in_same_network_family(), we choose the subnet size based
  2481. on the IP version (IPv4 or IPv6). Previously, we chose a fixed
  2482. subnet size of /16 for both IPv4 and IPv6 addresses. Fixes bug
  2483. 15518; bugfix on 0.2.3.1-alpha. Patch by Neel Chauhan.
  2484. o Minor bugfixes (Linux seccomp2 sandbox):
  2485. - Permit the "shutdown()" system call, which is apparently used by
  2486. OpenSSL under some circumstances. Fixes bug 28183; bugfix
  2487. on 0.2.5.1-alpha.
  2488. o Minor bugfixes (logging):
  2489. - Stop talking about the Named flag in log messages. Clients have
  2490. ignored the Named flag since 0.3.2. Fixes bug 28441; bugfix
  2491. on 0.3.2.1-alpha.
  2492. - As a precaution, do an early return from log_addr_has_changed() if
  2493. Tor is running as client. Also, log a stack trace for debugging as
  2494. this function should only be called when Tor runs as server. Fixes
  2495. bug 26892; bugfix on 0.1.1.9-alpha.
  2496. - Refrain from mentioning bug 21018 in the logs, as it is already
  2497. fixed. Fixes bug 25477; bugfix on 0.2.9.8.
  2498. o Minor bugfixes (logging, documentation):
  2499. - When SafeLogging is enabled, scrub IP address in
  2500. channel_tls_process_netinfo_cell(). Also, add a note to manpage
  2501. that scrubbing is not guaranteed on loglevels below Notice. Fixes
  2502. bug 26882; bugfix on 0.2.4.10-alpha.
  2503. o Minor bugfixes (memory leaks):
  2504. - Fix a harmless memory leak in libtorrunner.a. Fixes bug 28419;
  2505. bugfix on 0.3.3.1-alpha. Patch from Martin Kepplinger.
  2506. - Fix a small memory leak when calling Tor with --dump-config. Fixes
  2507. bug 27893; bugfix on 0.3.2.1-alpha.
  2508. o Minor bugfixes (netflow padding):
  2509. - Ensure circuitmux queues are empty before scheduling or sending
  2510. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  2511. o Minor bugfixes (onion service v2):
  2512. - Log at level "info", not "warning", in the case that we do not
  2513. have a consensus when a .onion request comes in. This can happen
  2514. normally while bootstrapping. Fixes bug 27040; bugfix
  2515. on 0.2.8.2-alpha.
  2516. o Minor bugfixes (onion service v3):
  2517. - When deleting an ephemeral onion service (DEL_ONION), do not close
  2518. any rendezvous circuits in order to let the existing client
  2519. connections finish by themselves or closed by the application. The
  2520. HS v2 is doing that already so now we have the same behavior for
  2521. all versions. Fixes bug 28619; bugfix on 0.3.3.1-alpha.
  2522. - Build the service descriptor's signing key certificate before
  2523. uploading, so we always have a fresh one: leaving no chances for
  2524. it to expire service side. Fixes bug 27838; bugfix
  2525. on 0.3.2.1-alpha.
  2526. - Stop dumping a stack trace when trying to connect to an intro
  2527. point without having a descriptor for it. Fixes bug 27774; bugfix
  2528. on 0.3.2.1-alpha.
  2529. - When selecting a v3 rendezvous point, don't only look at the
  2530. protover, but also check whether the curve25519 onion key is
  2531. present. This way we avoid picking a relay that supports the v3
  2532. rendezvous but for which we don't have the microdescriptor. Fixes
  2533. bug 27797; bugfix on 0.3.2.1-alpha.
  2534. - Close all SOCKS request (for the same .onion) if the newly fetched
  2535. descriptor is unusable. Before that, we would close only the first
  2536. one leaving the other hanging and let to time out by themselves.
  2537. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  2538. - When the onion service directory can't be created or has the wrong
  2539. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  2540. on 0.3.2.1-alpha.
  2541. - When replacing a descriptor in the client cache, make sure to
  2542. close all client introduction circuits for the old descriptor, so
  2543. we don't end up with unusable leftover circuits. Fixes bug 27471;
  2544. bugfix on 0.3.2.1-alpha.
  2545. o Minor bugfixes (OS compatibility):
  2546. - Properly handle configuration changes that move a listener to/from
  2547. wildcard IP address. If the first attempt to bind a socket fails,
  2548. close the old listener and try binding the socket again. Fixes bug
  2549. 17873; bugfix on 0.0.8pre-1.
  2550. o Minor bugfixes (performance)::
  2551. - Rework node_is_a_configured_bridge() to no longer call
  2552. node_get_all_orports(), which was performing too many memory
  2553. allocations. Fixes bug 27224; bugfix on 0.2.3.9.
  2554. o Minor bugfixes (protover):
  2555. - Reject protocol names containing bytes other than alphanumeric
  2556. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  2557. on 0.2.9.4-alpha.
  2558. o Minor bugfixes (protover, rust):
  2559. - Reject extra commas in version strings. Fixes bug 27197; bugfix
  2560. on 0.3.3.3-alpha.
  2561. - protover_all_supported() would attempt to allocate up to 16GB on
  2562. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  2563. bugfix on 0.3.3.5-rc.
  2564. - Compute protover votes correctly in the rust version of the
  2565. protover code. Previously, the protover rewrite in 24031 allowed
  2566. repeated votes from the same voter for the same protocol version
  2567. to be counted multiple times in protover_compute_vote(). Fixes bug
  2568. 27649; bugfix on 0.3.3.5-rc.
  2569. - Reject protover names that contain invalid characters. Fixes bug
  2570. 27687; bugfix on 0.3.3.1-alpha.
  2571. o Minor bugfixes (relay shutdown, systemd):
  2572. - Notify systemd of ShutdownWaitLength so it can be set to longer
  2573. than systemd's TimeoutStopSec. In Tor's systemd service file, set
  2574. TimeoutSec to 60 seconds to allow Tor some time to shut down.
  2575. Fixes bug 28113; bugfix on 0.2.6.2-alpha.
  2576. o Minor bugfixes (relay statistics):
  2577. - Update relay descriptor on bandwidth changes only when the uptime
  2578. is smaller than 24h, in order to reduce the efficiency of guard
  2579. discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
  2580. o Minor bugfixes (relay):
  2581. - Consider the fact that we'll be making direct connections to our
  2582. entry and guard nodes when computing the fraction of nodes that
  2583. have their descriptors. Also, if we are using bridges and there is
  2584. at least one bridge with a full descriptor, treat the fraction of
  2585. guards available as 100%. Fixes bug 25886; bugfix on 0.2.4.10-alpha.
  2586. Patch by Neel Chauhan.
  2587. - Update the message logged on relays when DirCache is disabled.
  2588. Since 0.3.3.5-rc, authorities require DirCache (V2Dir) for the
  2589. Guard flag. Fixes bug 24312; bugfix on 0.3.3.5-rc.
  2590. o Minor bugfixes (testing):
  2591. - Stop running stem's unit tests as part of "make test-stem", but
  2592. continue to run stem's unit and online tests during "make test-
  2593. stem-full". Fixes bug 28568; bugfix on 0.2.6.3-alpha.
  2594. - Stop leaking memory in an entry guard unit test. Fixes bug 28554;
  2595. bugfix on 0.3.0.1-alpha.
  2596. - Make the hs_service tests use the same time source when creating
  2597. the introduction point and when testing it. Now tests work better
  2598. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  2599. on 0.3.2.1-alpha.
  2600. - Revise the "conditionvar_timeout" test so that it succeeds even on
  2601. heavily loaded systems where the test threads are not scheduled
  2602. within 200 msec. Fixes bug 27073; bugfix on 0.2.6.3-alpha.
  2603. - Fix two unit tests to work when HOME environment variable is not
  2604. set. Fixes bug 27096; bugfix on 0.2.8.1-alpha.
  2605. - If a unit test running in a subprocess exits abnormally or with a
  2606. nonzero status code, treat the test as having failed, even if the
  2607. test reported success. Without this fix, memory leaks don't cause
  2608. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  2609. bugfix on 0.2.2.4-alpha.
  2610. - When logging a version mismatch in our openssl_version tests,
  2611. report the actual offending version strings. Fixes bug 26152;
  2612. bugfix on 0.2.9.1-alpha.
  2613. - Fix forking tests on Windows when there is a space somewhere in
  2614. the path. Fixes bug 26437; bugfix on 0.2.2.4-alpha.
  2615. o Minor bugfixes (Windows):
  2616. - Correctly identify Windows 8.1, Windows 10, and Windows Server
  2617. 2008 and later from their NT versions. Fixes bug 28096; bugfix on
  2618. 0.2.2.34; reported by Keifer Bly.
  2619. - On recent Windows versions, the GetVersionEx() function may report
  2620. an earlier Windows version than the running OS. To avoid user
  2621. confusion, add "[or later]" to Tor's version string on affected
  2622. versions of Windows. Fixes bug 28096; bugfix on 0.2.2.34; reported
  2623. by Keifer Bly.
  2624. - Remove Windows versions that were never supported by the
  2625. GetVersionEx() function. Stop duplicating the latest Windows
  2626. version in get_uname(). Fixes bug 28096; bugfix on 0.2.2.34;
  2627. reported by Keifer Bly.
  2628. o Code simplification and refactoring:
  2629. - When parsing a port configuration, make it more obvious to static
  2630. analyzer tools that we always initialize the address. Closes
  2631. ticket 28881.
  2632. - Divide more large Tor source files -- especially ones that span
  2633. multiple areas of functionality -- into smaller parts, including
  2634. onion.c and main.c. Closes ticket 26747.
  2635. - Divide the "routerparse.c" module into separate modules for each
  2636. group of parsed objects. Closes ticket 27924.
  2637. - Move protover_rust.c to the same place protover.c was moved to.
  2638. Closes ticket 27814.
  2639. - Split directory.c into separate pieces for client, server, and
  2640. common functionality. Closes ticket 26744.
  2641. - Split the non-statistics-related parts from the rephist.c and
  2642. geoip.c modules. Closes ticket 27892.
  2643. - Split the router.c file into relay-only and shared components, to
  2644. help with future modularization. Closes ticket 27864.
  2645. - Divide the routerlist.c and dirserv.c modules into smaller parts.
  2646. Closes ticket 27799.
  2647. - 'updateFallbackDirs.py' now ignores the blacklist file, as it's not
  2648. longer needed. Closes ticket 26502.
  2649. - Include paths to header files within Tor are now qualified by
  2650. directory within the top-level src directory.
  2651. - Many structures have been removed from the centralized "or.h"
  2652. header, and moved into their own headers. This will allow us to
  2653. reduce the number of places in the code that rely on each
  2654. structure's contents and layout. Closes ticket 26383.
  2655. - Remove ATTR_NONNULL macro from codebase. Resolves ticket 26527.
  2656. - Remove GetAdaptersAddresses_fn_t. The code that used it was
  2657. removed as part of the 26481 refactor. Closes ticket 27467.
  2658. - Rework Tor SOCKS server code to use Trunnel and benefit from
  2659. autogenerated functions for parsing and generating SOCKS wire
  2660. format. New implementation is cleaner, more maintainable and
  2661. should be less prone to heartbleed-style vulnerabilities.
  2662. Implements a significant fraction of ticket 3569.
  2663. - Split sampled_guards_update_from_consensus() and
  2664. select_entry_guard_for_circuit() into subfunctions. In
  2665. entry_guards_update_primary() unite three smartlist enumerations
  2666. into one and move smartlist comparison code out of the function.
  2667. Closes ticket 21349.
  2668. - Tor now assumes that you have standards-conformant stdint.h and
  2669. inttypes.h headers when compiling. Closes ticket 26626.
  2670. - Unify our bloom filter logic. Previously we had two copies of this
  2671. code: one for routerlist filtering, and one for address set
  2672. calculations. Closes ticket 26510.
  2673. - Use the simpler strcmpstart() helper in
  2674. rend_parse_v2_service_descriptor instead of strncmp(). Closes
  2675. ticket 27630.
  2676. - Utility functions that can perform a DNS lookup are now wholly
  2677. separated from those that can't, in separate headers and C
  2678. modules. Closes ticket 26526.
  2679. o Documentation:
  2680. - In the tor-resolve(1) manpage, fix the reference to socks-
  2681. extensions.txt by adding a web URL. Resolves ticket 27853.
  2682. - Mention that we require Python to be 2.7 or newer for some
  2683. integration tests that we ship with Tor. Resolves ticket 27677.
  2684. - Copy paragraph and URL to Tor's code of conduct document from
  2685. CONTRIBUTING to new CODE_OF_CONDUCT file. Resolves ticket 26638.
  2686. - Remove old instructions from INSTALL document. Closes ticket 26588.
  2687. - Warn users that they should not include MyFamily line(s) in their
  2688. torrc when running Tor bridge. Closes ticket 26908.
  2689. o Removed features:
  2690. - Tor no longer supports building with the dmalloc library. For
  2691. debugging memory issues, we suggest using gperftools or msan
  2692. instead. Closes ticket 26426.
  2693. - Tor no longer attempts to run on Windows environments without the
  2694. GetAdaptersAddresses() function. This function has existed since
  2695. Windows XP, which is itself already older than we support.
  2696. - Remove Tor2web functionality for version 2 onion services. The
  2697. Tor2webMode and Tor2webRendezvousPoints options are now obsolete.
  2698. (This feature was never shipped in vanilla Tor and it was only
  2699. possible to use this feature by building the support at compile
  2700. time. Tor2webMode is not implemented for version 3 onion services.)
  2701. Closes ticket 26367.
  2702. o Testing:
  2703. - Increase logging and tag all log entries with timestamps in
  2704. test_rebind.py. Provides diagnostics for issue 28229.
  2705. o Code simplification and refactoring (shared random, dirauth):
  2706. - Change many tor_assert() to use BUG() instead. The idea is to not
  2707. crash a dirauth but rather scream loudly with a stacktrace and let
  2708. it continue run. The shared random subsystem is very resilient and
  2709. if anything wrong happens with it, at worst a non coherent value
  2710. will be put in the vote and discarded by the other authorities.
  2711. Closes ticket 19566.
  2712. o Documentation (onion services):
  2713. - Improve HSv3 client authorization by making some options more
  2714. explicit and detailed. Closes ticket 28026. Patch by Mike Tigas.
  2715. - Document in the man page that changing ClientOnionAuthDir value or
  2716. adding a new file in the directory will not work at runtime upon
  2717. sending a HUP if Sandbox 1. Closes ticket 28128.
  2718. - Note in the man page that the only real way to fully revoke an
  2719. onion service v3 client authorization is by restarting the tor
  2720. process. Closes ticket 28275.
  2721. Changes in version 0.3.4.9 - 2018-11-02
  2722. Tor 0.3.4.9 is the second stable release in its series; it backports
  2723. numerous fixes, including a fix for a bandwidth management bug that
  2724. was causing memory exhaustion on relays. Anyone running an earlier
  2725. version of Tor 0.3.4.9 should upgrade.
  2726. o Major bugfixes (compilation, backport from 0.3.5.3-alpha):
  2727. - Fix compilation on ARM (and other less-used CPUs) when compiling
  2728. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  2729. o Major bugfixes (mainloop, bootstrap, backport from 0.3.5.3-alpha):
  2730. - Make sure Tor bootstraps and works properly if only the
  2731. ControlPort is set. Prior to this fix, Tor would only bootstrap
  2732. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  2733. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  2734. o Major bugfixes (relay, backport from 0.3.5.3-alpha):
  2735. - When our write bandwidth limit is exhausted, stop writing on the
  2736. connection. Previously, we had a typo in the code that would make
  2737. us stop reading instead, leading to relay connections being stuck
  2738. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  2739. on 0.3.4.1-alpha.
  2740. o Major bugfixes (restart-in-process, backport from 0.3.5.1-alpha):
  2741. - Fix a use-after-free error that could be caused by passing Tor an
  2742. impossible set of options that would fail during options_act().
  2743. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  2744. o Minor features (continuous integration, backport from 0.3.5.1-alpha):
  2745. - Don't do a distcheck with --disable-module-dirauth in Travis.
  2746. Implements ticket 27252.
  2747. - Only run one online rust build in Travis, to reduce network
  2748. errors. Skip offline rust builds on Travis for Linux gcc, because
  2749. they're redundant. Implements ticket 27252.
  2750. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  2751. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  2752. Linux with default settings, because all the non-default builds
  2753. use gcc on Linux. Implements ticket 27252.
  2754. o Minor features (continuous integration, backport from 0.3.5.3-alpha):
  2755. - Use the Travis Homebrew addon to install packages on macOS during
  2756. Travis CI. The package list is the same, but the Homebrew addon
  2757. does not do a `brew update` by default. Implements ticket 27738.
  2758. o Minor features (geoip):
  2759. - Update geoip and geoip6 to the October 9 2018 Maxmind GeoLite2
  2760. Country database. Closes ticket 27991.
  2761. o Minor bugfixes (32-bit OSX and iOS, timing, backport from 0.3.5.2-alpha):
  2762. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  2763. difference algorithm for 32-bit Apple platforms. Previously, it
  2764. would overflow when calculating the difference between two times
  2765. more than 47 days apart. Fixes part of bug 27139; bugfix
  2766. on 0.3.4.1-alpha.
  2767. - Improve the precision of our 32-bit millisecond difference
  2768. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  2769. bugfix on 0.3.4.1-alpha.
  2770. - Relax the tolerance on the mainloop/update_time_jumps test when
  2771. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  2772. on 0.3.4.1-alpha.
  2773. o Minor bugfixes (C correctness, to appear in 0.3.5.4-alpha):
  2774. - Avoid undefined behavior in an end-of-string check when parsing
  2775. the BEGIN line in a directory object. Fixes bug 28202; bugfix
  2776. on 0.2.0.3-alpha.
  2777. o Minor bugfixes (CI, appveyor, to appear in 0.3.5.4-alpha):
  2778. - Only install the necessary mingw packages during our appveyor
  2779. builds. This change makes the build a little faster, and prevents
  2780. a conflict with a preinstalled mingw openssl that appveyor now
  2781. ships. Fixes bugs 27943 and 27765; bugfix on 0.3.4.2-alpha.
  2782. o Minor bugfixes (code safety, backport from 0.3.5.3-alpha):
  2783. - Rewrite our assertion macros so that they no longer suppress the
  2784. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  2785. o Minor bugfixes (continuous integration, backport from 0.3.5.1-alpha):
  2786. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  2787. 27464; bugfix on 0.3.4.1-alpha.
  2788. o Minor bugfixes (directory authority, to appear in 0.3.5.4-alpha):
  2789. - Log additional info when we get a relay that shares an ed25519 ID
  2790. with a different relay, instead making a BUG() warning. Fixes bug
  2791. 27800; bugfix on 0.3.2.1-alpha.
  2792. o Minor bugfixes (directory connection shutdown, backport from 0.3.5.1-alpha):
  2793. - Avoid a double-close when shutting down a stalled directory
  2794. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  2795. o Minor bugfixes (HTTP tunnel, backport from 0.3.5.1-alpha):
  2796. - Fix a bug warning when closing an HTTP tunnel connection due to an
  2797. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  2798. on 0.3.2.1-alpha.
  2799. o Minor bugfixes (netflow padding, backport from 0.3.5.1-alpha):
  2800. - Ensure circuitmux queues are empty before scheduling or sending
  2801. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  2802. o Minor bugfixes (onion service v3, backport from 0.3.5.1-alpha):
  2803. - When the onion service directory can't be created or has the wrong
  2804. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  2805. on 0.3.2.1-alpha.
  2806. o Minor bugfixes (onion service v3, backport from 0.3.5.2-alpha):
  2807. - Close all SOCKS request (for the same .onion) if the newly fetched
  2808. descriptor is unusable. Before that, we would close only the first
  2809. one leaving the other hanging and let to time out by themselves.
  2810. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  2811. o Minor bugfixes (onion service v3, backport from 0.3.5.3-alpha):
  2812. - When selecting a v3 rendezvous point, don't only look at the
  2813. protover, but also check whether the curve25519 onion key is
  2814. present. This way we avoid picking a relay that supports the v3
  2815. rendezvous but for which we don't have the microdescriptor. Fixes
  2816. bug 27797; bugfix on 0.3.2.1-alpha.
  2817. o Minor bugfixes (protover, backport from 0.3.5.3-alpha):
  2818. - Reject protocol names containing bytes other than alphanumeric
  2819. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  2820. on 0.2.9.4-alpha.
  2821. o Minor bugfixes (rust, backport from 0.3.5.1-alpha):
  2822. - Compute protover votes correctly in the rust version of the
  2823. protover code. Previously, the protover rewrite in 24031 allowed
  2824. repeated votes from the same voter for the same protocol version
  2825. to be counted multiple times in protover_compute_vote(). Fixes bug
  2826. 27649; bugfix on 0.3.3.5-rc.
  2827. - Reject protover names that contain invalid characters. Fixes bug
  2828. 27687; bugfix on 0.3.3.1-alpha.
  2829. o Minor bugfixes (rust, backport from 0.3.5.2-alpha):
  2830. - protover_all_supported() would attempt to allocate up to 16GB on
  2831. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  2832. bugfix on 0.3.3.5-rc.
  2833. o Minor bugfixes (rust, directory authority, to appear in 0.3.5.4-alpha):
  2834. - Fix an API mismatch in the rust implementation of
  2835. protover_compute_vote(). This bug could have caused crashes on any
  2836. directory authorities running Tor with Rust (which we do not yet
  2837. recommend). Fixes bug 27741; bugfix on 0.3.3.6.
  2838. o Minor bugfixes (rust, to appear in 0.3.5.4-alpha):
  2839. - Fix a potential null dereference in protover_all_supported(). Add
  2840. a test for it. Fixes bug 27804; bugfix on 0.3.3.1-alpha.
  2841. - Return a string that can be safely freed by C code, not one
  2842. created by the rust allocator, in protover_all_supported(). Fixes
  2843. bug 27740; bugfix on 0.3.3.1-alpha.
  2844. o Minor bugfixes (testing, backport from 0.3.5.1-alpha):
  2845. - If a unit test running in a subprocess exits abnormally or with a
  2846. nonzero status code, treat the test as having failed, even if the
  2847. test reported success. Without this fix, memory leaks don't cause
  2848. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  2849. bugfix on 0.2.2.4-alpha.
  2850. o Minor bugfixes (testing, backport from 0.3.5.3-alpha):
  2851. - Make the hs_service tests use the same time source when creating
  2852. the introduction point and when testing it. Now tests work better
  2853. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  2854. on 0.3.2.1-alpha.
  2855. o Minor bugfixes (testing, to appear in 0.3.5.4-alpha):
  2856. - Treat backtrace test failures as expected on BSD-derived systems
  2857. (NetBSD, OpenBSD, and macOS/Darwin) until we solve bug 17808.
  2858. (FreeBSD failures have been treated as expected since 18204 in
  2859. 0.2.8.) Fixes bug 27948; bugfix on 0.2.5.2-alpha.
  2860. Changes in version 0.2.9.17 - 2018-09-10
  2861. Tor 0.2.9.17 backports numerous bugfixes from later versions of Tor.
  2862. o Minor features (compatibility, backport from 0.3.4.8):
  2863. - Tell OpenSSL to maintain backward compatibility with previous
  2864. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  2865. ciphers are disabled by default. Closes ticket 27344.
  2866. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  2867. - Enable macOS builds in our Travis CI configuration. Closes
  2868. ticket 24629.
  2869. - Install libcap-dev and libseccomp2-dev so these optional
  2870. dependencies get tested on Travis CI. Closes ticket 26560.
  2871. - Run asciidoc during Travis CI. Implements ticket 27087.
  2872. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  2873. o Minor features (geoip):
  2874. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  2875. Country database. Closes ticket 27089.
  2876. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  2877. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  2878. tell the compiler not to include the system malloc implementation.
  2879. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  2880. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  2881. - Silence a spurious compiler warning on the GetAdaptersAddresses
  2882. function pointer cast. This issue is already fixed by 26481 in
  2883. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  2884. bugfix on 0.2.3.11-alpha.
  2885. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  2886. supported, and always fails. Some compilers warn about the
  2887. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  2888. on 0.2.2.23-alpha.
  2889. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  2890. - Don't link or search for pthreads when building for Windows, even
  2891. if we are using build environment (like mingw) that provides a
  2892. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  2893. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  2894. - Skip a pair of unreliable key generation tests on Windows, until
  2895. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  2896. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  2897. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  2898. - Pass the module flags to distcheck configure, and log the flags
  2899. before running configure. (Backported to 0.2.9 and later as a
  2900. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  2901. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  2902. - When a Travis build fails, and showing a log fails, keep trying to
  2903. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  2904. - When we use echo in Travis, don't pass a --flag as the first
  2905. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  2906. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  2907. - When voting for recommended versions, make sure that all of the
  2908. versions are well-formed and parsable. Fixes bug 26485; bugfix
  2909. on 0.1.1.6-alpha.
  2910. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  2911. - Fix a bug in out sandboxing rules for the openat() syscall.
  2912. Previously, no openat() call would be permitted, which would break
  2913. filesystem operations on recent glibc versions. Fixes bug 25440;
  2914. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  2915. o Minor bugfixes (onion services, backport from 0.3.4.8):
  2916. - Silence a spurious compiler warning in
  2917. rend_client_send_introduction(). Fixes bug 27463; bugfix
  2918. on 0.1.1.2-alpha.
  2919. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  2920. - Log a protocol warning when single onion services or Tor2web clients
  2921. fail to authenticate direct connections to relays.
  2922. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  2923. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  2924. - Disable core dumps in test_bt.sh, to avoid failures in "make
  2925. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  2926. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  2927. - Before running make test-network-all, delete old logs and test
  2928. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  2929. on 0.2.7.3-rc.
  2930. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  2931. - Our "tortls/cert_matches_key" unit test no longer relies on
  2932. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  2933. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  2934. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  2935. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  2936. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  2937. 27185; bugfix on 0.2.2.2-alpha.
  2938. Changes in version 0.3.2.12 - 2018-09-10
  2939. Tor 0.3.2.12 backport numerous fixes from later versions of Tor.
  2940. o Minor features (compatibility, backport from 0.3.4.8):
  2941. - Tell OpenSSL to maintain backward compatibility with previous
  2942. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  2943. ciphers are disabled by default. Closes ticket 27344.
  2944. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  2945. - Enable macOS builds in our Travis CI configuration. Closes
  2946. ticket 24629.
  2947. - Install libcap-dev and libseccomp2-dev so these optional
  2948. dependencies get tested on Travis CI. Closes ticket 26560.
  2949. - Run asciidoc during Travis CI. Implements ticket 27087.
  2950. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  2951. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  2952. - Use cargo cache in our Travis CI configuration. Closes
  2953. ticket 26952.
  2954. o Minor features (controller, backport from 0.3.4.6-rc):
  2955. - The control port now exposes the list of HTTPTunnelPorts and
  2956. ExtOrPorts via GETINFO net/listeners/httptunnel and
  2957. net/listeners/extor respectively. Closes ticket 26647.
  2958. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  2959. - Authorities no longer vote to make the subprotocol version
  2960. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  2961. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  2962. o Minor features (geoip):
  2963. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  2964. Country database. Closes ticket 27089.
  2965. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  2966. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  2967. tell the compiler not to include the system malloc implementation.
  2968. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  2969. - Don't try to use a pragma to temporarily disable the
  2970. -Wunused-const-variable warning if the compiler doesn't support
  2971. it. Fixes bug 26785; bugfix on 0.3.2.11.
  2972. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  2973. - Silence a spurious compiler warning on the GetAdaptersAddresses
  2974. function pointer cast. This issue is already fixed by 26481 in
  2975. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  2976. bugfix on 0.2.3.11-alpha.
  2977. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  2978. supported, and always fails. Some compilers warn about the
  2979. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  2980. on 0.2.2.23-alpha.
  2981. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  2982. - Don't link or search for pthreads when building for Windows, even
  2983. if we are using build environment (like mingw) that provides a
  2984. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  2985. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  2986. - Skip a pair of unreliable key generation tests on Windows, until
  2987. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  2988. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  2989. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  2990. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  2991. - Pass the module flags to distcheck configure, and log the flags
  2992. before running configure. (Backported to 0.2.9 and later as a
  2993. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  2994. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  2995. - When a Travis build fails, and showing a log fails, keep trying to
  2996. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  2997. - When we use echo in Travis, don't pass a --flag as the first
  2998. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  2999. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  3000. - When voting for recommended versions, make sure that all of the
  3001. versions are well-formed and parsable. Fixes bug 26485; bugfix
  3002. on 0.1.1.6-alpha.
  3003. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  3004. - Fix a bug in out sandboxing rules for the openat() syscall.
  3005. Previously, no openat() call would be permitted, which would break
  3006. filesystem operations on recent glibc versions. Fixes bug 25440;
  3007. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  3008. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  3009. - Improve the log message when connection initiators fail to
  3010. authenticate direct connections to relays. Fixes bug 26927; bugfix
  3011. on 0.3.0.1-alpha.
  3012. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  3013. - Fix bug that causes services to not ever rotate their descriptors
  3014. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  3015. on 0.3.2.1-alpha.
  3016. o Minor bugfixes (onion services, backport from 0.3.4.8):
  3017. - Silence a spurious compiler warning in
  3018. rend_client_send_introduction(). Fixes bug 27463; bugfix
  3019. on 0.1.1.2-alpha.
  3020. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  3021. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  3022. on 0.3.1.5-alpha.
  3023. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  3024. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  3025. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  3026. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  3027. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  3028. - Log a protocol warning when single onion services or Tor2web clients
  3029. fail to authenticate direct connections to relays.
  3030. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  3031. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  3032. - Disable core dumps in test_bt.sh, to avoid failures in "make
  3033. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  3034. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  3035. - When running make test-network-all, use the mixed+hs-v2 network.
  3036. (A previous fix to chutney removed v3 onion services from the
  3037. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  3038. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  3039. - Before running make test-network-all, delete old logs and test
  3040. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  3041. on 0.2.7.3-rc.
  3042. o Minor bugfixes (testing, openssl compatibility):
  3043. - Our "tortls/cert_matches_key" unit test no longer relies on OpenSSL
  3044. internals. Previously, it relied on unsupported OpenSSL behavior in
  3045. a way that caused it to crash with OpenSSL 1.0.2p. Fixes bug 27226;
  3046. bugfix on 0.2.5.1-alpha.
  3047. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  3048. - Our "tortls/cert_matches_key" unit test no longer relies on
  3049. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  3050. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  3051. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  3052. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  3053. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  3054. 27185; bugfix on 0.2.2.2-alpha.
  3055. Changes in version 0.3.3.10 - 2018-09-10
  3056. Tor 0.3.3.10 backports numerous fixes from later versions of Tor.
  3057. o Minor features (bug workaround, backport from 0.3.4.7-rc):
  3058. - Compile correctly on systems that provide the C11 stdatomic.h
  3059. header, but where C11 atomic functions don't actually compile.
  3060. Closes ticket 26779; workaround for Debian issue 903709.
  3061. o Minor features (compatibility, backport from 0.3.4.8):
  3062. - Tell OpenSSL to maintain backward compatibility with previous
  3063. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  3064. ciphers are disabled by default. Closes ticket 27344.
  3065. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  3066. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  3067. - Enable macOS builds in our Travis CI configuration. Closes
  3068. ticket 24629.
  3069. - Install libcap-dev and libseccomp2-dev so these optional
  3070. dependencies get tested on Travis CI. Closes ticket 26560.
  3071. - Run asciidoc during Travis CI. Implements ticket 27087.
  3072. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  3073. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  3074. - Use cargo cache in our Travis CI configuration. Closes
  3075. ticket 26952.
  3076. o Minor features (controller, backport from 0.3.4.6-rc):
  3077. - The control port now exposes the list of HTTPTunnelPorts and
  3078. ExtOrPorts via GETINFO net/listeners/httptunnel and
  3079. net/listeners/extor respectively. Closes ticket 26647.
  3080. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  3081. - Authorities no longer vote to make the subprotocol version
  3082. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  3083. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  3084. o Minor features (geoip):
  3085. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  3086. Country database. Closes ticket 27089.
  3087. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  3088. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  3089. tell the compiler not to include the system malloc implementation.
  3090. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  3091. - Don't try to use a pragma to temporarily disable the
  3092. -Wunused-const-variable warning if the compiler doesn't support
  3093. it. Fixes bug 26785; bugfix on 0.3.2.11.
  3094. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  3095. - Silence a spurious compiler warning on the GetAdaptersAddresses
  3096. function pointer cast. This issue is already fixed by 26481 in
  3097. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  3098. bugfix on 0.2.3.11-alpha.
  3099. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  3100. supported, and always fails. Some compilers warn about the
  3101. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  3102. on 0.2.2.23-alpha.
  3103. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  3104. - Don't link or search for pthreads when building for Windows, even
  3105. if we are using build environment (like mingw) that provides a
  3106. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  3107. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  3108. - Skip a pair of unreliable key generation tests on Windows, until
  3109. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  3110. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  3111. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  3112. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  3113. - Pass the module flags to distcheck configure, and log the flags
  3114. before running configure. (Backported to 0.2.9 and later as a
  3115. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  3116. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  3117. - When a Travis build fails, and showing a log fails, keep trying to
  3118. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  3119. - When we use echo in Travis, don't pass a --flag as the first
  3120. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  3121. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  3122. - When voting for recommended versions, make sure that all of the
  3123. versions are well-formed and parsable. Fixes bug 26485; bugfix
  3124. on 0.1.1.6-alpha.
  3125. o Minor bugfixes (in-process restart, backport from 0.3.4.7-rc):
  3126. - Always call tor_free_all() when leaving tor_run_main(). When we
  3127. did not, restarting tor in-process would cause an assertion
  3128. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  3129. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  3130. - Fix a bug in our sandboxing rules for the openat() syscall.
  3131. Previously, no openat() call would be permitted, which would break
  3132. filesystem operations on recent glibc versions. Fixes bug 25440;
  3133. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  3134. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  3135. - Improve the log message when connection initiators fail to
  3136. authenticate direct connections to relays. Fixes bug 26927; bugfix
  3137. on 0.3.0.1-alpha.
  3138. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  3139. - Fix bug that causes services to not ever rotate their descriptors
  3140. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  3141. on 0.3.2.1-alpha.
  3142. o Minor bugfixes (onion services, backport from 0.3.4.8):
  3143. - Silence a spurious compiler warning in
  3144. rend_client_send_introduction(). Fixes bug 27463; bugfix
  3145. on 0.1.1.2-alpha.
  3146. o Minor bugfixes (portability, backport from 0.3.4.6-rc):
  3147. - Work around two different bugs in the OS X 10.10 and later SDKs
  3148. that would prevent us from successfully targeting earlier versions
  3149. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  3150. o Minor bugfixes (portability, backport from 0.3.4.7-rc):
  3151. - Fix compilation of the unit tests on GNU/Hurd, which does not
  3152. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  3153. from "paulusASol".
  3154. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  3155. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  3156. on 0.3.1.5-alpha.
  3157. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  3158. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  3159. - Protover parsing was accepting the presence of whitespace in
  3160. version strings, which the C implementation would choke on, e.g.
  3161. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  3162. - Protover parsing was ignoring a 2nd hyphen and everything after
  3163. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  3164. on 0.3.3.1-alpha.
  3165. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  3166. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  3167. - cd to ${abs_top_builddir}/src/rust before running cargo in
  3168. src/test/test_rust.sh. This makes the working directory consistent
  3169. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  3170. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  3171. - Log a protocol warning when single onion services or Tor2web clients
  3172. fail to authenticate direct connections to relays.
  3173. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  3174. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  3175. - Disable core dumps in test_bt.sh, to avoid failures in "make
  3176. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  3177. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  3178. - When running make test-network-all, use the mixed+hs-v2 network.
  3179. (A previous fix to chutney removed v3 onion services from the
  3180. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  3181. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  3182. - Before running make test-network-all, delete old logs and test
  3183. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  3184. on 0.2.7.3-rc.
  3185. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  3186. - Our "tortls/cert_matches_key" unit test no longer relies on
  3187. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  3188. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  3189. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  3190. o Minor bugfixes (v3 onion services, backport from 0.3.4.6-rc):
  3191. - Stop sending ed25519 link specifiers in v3 onion service introduce
  3192. cells and descriptors, when the rendezvous or introduction point
  3193. doesn't support ed25519 link authentication. Fixes bug 26627;
  3194. bugfix on 0.3.2.4-alpha.
  3195. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  3196. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  3197. 27185; bugfix on 0.2.2.2-alpha.
  3198. Changes in version 0.3.4.8 - 2018-09-10
  3199. Tor 0.3.4.8 is the first stable release in its series; it includes
  3200. compilation and portability fixes.
  3201. The Tor 0.3.4 series includes improvements for running Tor in
  3202. low-power and embedded environments, which should help performance in
  3203. general. We've begun work on better modularity, and included preliminary
  3204. changes on the directory authority side to accommodate a new bandwidth
  3205. measurement system. We've also integrated more continuous-integration
  3206. systems into our development process, and made corresponding changes to
  3207. Tor's testing infrastructure. Finally, we've continued to refine
  3208. our anti-denial-of-service code.
  3209. Below are the changes since 0.3.3.9. For a list of only the changes
  3210. since 0.3.4.7-rc, see the ChangeLog file.
  3211. o New system requirements:
  3212. - Tor no longer tries to support old operating systems without
  3213. mmap() or some local equivalent. Apparently, compilation on such
  3214. systems has been broken for some time, without anybody noticing or
  3215. complaining. Closes ticket 25398.
  3216. o Major features (directory authority, modularization):
  3217. - The directory authority subsystem has been modularized. The code
  3218. is now located in src/or/dirauth/, and is compiled in by default.
  3219. To disable the module, the configure option
  3220. --disable-module-dirauth has been added. This module may be
  3221. disabled by default in some future release. Closes ticket 25610.
  3222. o Major features (main loop, CPU usage):
  3223. - When Tor is disabled (via DisableNetwork or via hibernation), it
  3224. no longer needs to run any per-second events. This change should
  3225. make it easier for mobile applications to disable Tor while the
  3226. device is sleeping, or Tor is not running. Closes ticket 26063.
  3227. - Tor no longer enables all of its periodic events by default.
  3228. Previously, Tor would enable all possible main loop events,
  3229. regardless of whether it needed them. Furthermore, many of these
  3230. events are now disabled when Tor is hibernating or DisableNetwork
  3231. is set. This is a big step towards reducing client CPU usage by
  3232. reducing the amount of wake-ups the daemon does. Closes tickets
  3233. 25376 and 25762.
  3234. - The bandwidth-limitation logic has been refactored so that
  3235. bandwidth calculations are performed on-demand, rather than every
  3236. TokenBucketRefillInterval milliseconds. This change should improve
  3237. the granularity of our bandwidth calculations, and limit the
  3238. number of times that the Tor process needs to wake up when it is
  3239. idle. Closes ticket 25373.
  3240. - Move responsibility for many operations from a once-per-second
  3241. callback to a callback that is only scheduled as needed. Moving
  3242. this functionality has allowed us to disable the callback when
  3243. Tor's network is disabled. Once enough items are removed from our
  3244. once-per-second callback, we can eliminate it entirely to conserve
  3245. CPU when idle. The functionality removed includes: closing
  3246. connections, circuits, and channels (ticket 25932); consensus
  3247. voting (25937); flushing log callbacks (25951); honoring delayed
  3248. SIGNEWNYM requests (25949); rescanning the consensus cache
  3249. (25931); saving the state file to disk (25948); warning relay
  3250. operators about unreachable ports (25952); and keeping track of
  3251. Tor's uptime (26009).
  3252. o Minor features (accounting):
  3253. - When Tor becomes dormant, it now uses a scheduled event to wake up
  3254. at the right time. Previously, we would use the per-second timer
  3255. to check whether to wake up, but we no longer have any per-second
  3256. timers enabled when the network is disabled. Closes ticket 26064.
  3257. o Minor features (bug workaround):
  3258. - Compile correctly on systems that provide the C11 stdatomic.h
  3259. header, but where C11 atomic functions don't actually compile.
  3260. Closes ticket 26779; workaround for Debian issue 903709.
  3261. o Minor features (code quality):
  3262. - Add optional spell-checking for the Tor codebase, using the
  3263. "misspell" program. To use this feature, run "make check-typos".
  3264. Closes ticket 25024.
  3265. o Minor features (compatibility):
  3266. - Tell OpenSSL to maintain backward compatibility with previous
  3267. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  3268. ciphers are disabled by default. Closes ticket 27344.
  3269. - Tor now detects versions of OpenSSL 1.1.0 and later compiled with
  3270. the no-deprecated option, and builds correctly with them. Closes
  3271. tickets 19429, 19981, and 25353.
  3272. o Minor features (compilation):
  3273. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  3274. tell the compiler not to include the system malloc implementation.
  3275. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  3276. - Don't try to use a pragma to temporarily disable the
  3277. -Wunused-const-variable warning if the compiler doesn't support
  3278. it. Fixes bug 26785; bugfix on 0.3.2.11.
  3279. - When building Tor, prefer to use Python 3 over Python 2, and more
  3280. recent (contemplated) versions over older ones. Closes
  3281. ticket 26372.
  3282. o Minor features (compression, zstd):
  3283. - When running with zstd, Tor now considers using advanced functions
  3284. that the zstd maintainers have labeled as potentially unstable. To
  3285. prevent breakage, Tor will only use this functionality when the
  3286. runtime version of the zstd library matches the version with which
  3287. Tor was compiled. Closes ticket 25162.
  3288. o Minor features (configuration):
  3289. - The "DownloadSchedule" options have been renamed to end with
  3290. "DownloadInitialDelay". The old names are still allowed, but will
  3291. produce a warning. Comma-separated lists are still permitted for
  3292. these options, but all values after the first are ignored (as they
  3293. have been since 0.2.9). Closes ticket 23354.
  3294. o Minor features (continuous integration):
  3295. - Log the compiler path and version during Appveyor builds.
  3296. Implements ticket 27449.
  3297. - Show config.log and test-suite.log after failed Appveyor builds.
  3298. Also upload the zipped full logs as a build artifact. Implements
  3299. ticket 27430.
  3300. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  3301. - Enable macOS builds in our Travis CI configuration. Closes
  3302. ticket 24629.
  3303. - Install libcap-dev and libseccomp2-dev so these optional
  3304. dependencies get tested on Travis CI. Closes ticket 26560.
  3305. - Only post Appveyor IRC notifications when the build fails.
  3306. Implements ticket 27275.
  3307. - Run asciidoc during Travis CI. Implements ticket 27087.
  3308. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  3309. - Add the necessary configuration files for continuous integration
  3310. testing on Windows, via the Appveyor platform. Closes ticket
  3311. 25549. Patches from Marcin CieĊ›lak and Isis Lovecruft.
  3312. o Minor features (continuous integration, rust):
  3313. - Use cargo cache in our Travis CI configuration. Closes
  3314. ticket 26952.
  3315. o Minor features (control port):
  3316. - Introduce GETINFO "current-time/{local,utc}" to return the local
  3317. and UTC times respectively in ISO format. This helps a controller
  3318. like Tor Browser detect a time-related error. Closes ticket 25511.
  3319. Patch by Neel Chauhan.
  3320. - Introduce new fields to the CIRC_BW event. There are two new
  3321. fields in each of the read and written directions. The DELIVERED
  3322. fields report the total valid data on the circuit, as measured by
  3323. the payload sizes of verified and error-checked relay command
  3324. cells. The OVERHEAD fields report the total unused bytes in each
  3325. of these cells. Closes ticket 25903.
  3326. o Minor features (controller):
  3327. - The control port now exposes the list of HTTPTunnelPorts and
  3328. ExtOrPorts via GETINFO net/listeners/httptunnel and
  3329. net/listeners/extor respectively. Closes ticket 26647.
  3330. o Minor features (directory authorities):
  3331. - Stop warning about incomplete bw lines before the first complete
  3332. bw line has been found, so that additional header lines can be
  3333. ignored. Fixes bug 25960; bugfix on 0.2.2.1-alpha
  3334. - Authorities no longer vote to make the subprotocol version
  3335. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  3336. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  3337. o Minor features (directory authority):
  3338. - Directory authorities now open their key-pinning files as O_SYNC,
  3339. to limit their chances of accidentally writing partial lines.
  3340. Closes ticket 23909.
  3341. o Minor features (directory authority, forward compatibility):
  3342. - Make the lines of the measured bandwidth file able to contain
  3343. their entries in any order. Previously, the node_id entry needed
  3344. to come first. Closes ticket 26004.
  3345. o Minor features (entry guards):
  3346. - Introduce a new torrc option NumPrimaryGuards for controlling the
  3347. number of primary guards. Closes ticket 25843.
  3348. o Minor features (geoip):
  3349. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  3350. Country database. Closes ticket 27089.
  3351. o Minor features (performance):
  3352. - Avoid a needless call to malloc() when processing an incoming
  3353. relay cell. Closes ticket 24914.
  3354. - Make our timing-wheel code run a tiny bit faster on 32-bit
  3355. platforms, by preferring 32-bit math to 64-bit. Closes
  3356. ticket 24688.
  3357. - Avoid a needless malloc()/free() pair every time we handle an ntor
  3358. handshake. Closes ticket 25150.
  3359. o Minor features (Rust, portability):
  3360. - Rust cross-compilation is now supported. Closes ticket 25895.
  3361. o Minor features (testing):
  3362. - Add a unit test for voting_schedule_get_start_of_next_interval().
  3363. Closes ticket 26014, and helps make unit test coverage
  3364. more deterministic.
  3365. - A new unittests module specifically for testing the functions in
  3366. the (new-ish) bridges.c module has been created with new
  3367. unittests, raising the code coverage percentages. Closes 25425.
  3368. - We now have improved testing for addressmap_get_virtual_address()
  3369. function. This should improve our test coverage, and make our test
  3370. coverage more deterministic. Closes ticket 25993.
  3371. o Minor features (timekeeping, circuit scheduling):
  3372. - When keeping track of how busy each circuit have been recently on
  3373. a given connection, use coarse-grained monotonic timers rather
  3374. than gettimeofday(). This change should marginally increase
  3375. accuracy and performance. Implements part of ticket 25927.
  3376. o Minor features (unit tests):
  3377. - Test complete bandwidth measurements files, and test that
  3378. incomplete bandwidth lines only give warnings when the end of the
  3379. header has not been detected. Fixes bug 25947; bugfix
  3380. on 0.2.2.1-alpha
  3381. o Minor bugfixes (bandwidth management):
  3382. - Consider ourselves "low on write bandwidth" if we have exhausted
  3383. our write bandwidth some time in the last second. This was the
  3384. documented behavior before, but the actual behavior was to change
  3385. this value every TokenBucketRefillInterval. Fixes bug 25828;
  3386. bugfix on 0.2.3.5-alpha.
  3387. o Minor bugfixes (C correctness):
  3388. - Add a missing lock acquisition in the shutdown code of the control
  3389. subsystem. Fixes bug 25675; bugfix on 0.2.7.3-rc. Found by
  3390. Coverity; this is CID 1433643.
  3391. o Minor bugfixes (code style):
  3392. - Fixed multiple includes of transports.h in src/or/connection.c
  3393. Fixes bug 25261; bugfix on 0.2.5.1-alpha.
  3394. - Remove the unused variable n_possible from the function
  3395. channel_get_for_extend(). Fixes bug 25645; bugfix on 0.2.4.4-alpha
  3396. o Minor bugfixes (compilation):
  3397. - Silence a spurious compiler warning on the GetAdaptersAddresses
  3398. function pointer cast. This issue is already fixed by 26481 in
  3399. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  3400. bugfix on 0.2.3.11-alpha.
  3401. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  3402. supported, and always fails. Some compilers warn about the
  3403. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  3404. on 0.2.2.23-alpha.
  3405. - Fix a compilation warning on some versions of GCC when building
  3406. code that calls routerinfo_get_my_routerinfo() twice, assuming
  3407. that the second call will succeed if the first one did. Fixes bug
  3408. 26269; bugfix on 0.2.8.2-alpha.
  3409. - Refrain from compiling unit testing related object files when
  3410. --disable-unittests is set to configure script. Fixes bug 24891;
  3411. bugfix on 0.2.5.1-alpha.
  3412. - The --enable-fatal-warnings flag now affects Rust code as well.
  3413. Closes ticket 26245.
  3414. - Avoid a compiler warning when casting the return value of
  3415. smartlist_len() to double with DEBUG_SMARTLIST enabled. Fixes bug
  3416. 26283; bugfix on 0.2.4.10-alpha.
  3417. o Minor bugfixes (compilation, windows):
  3418. - Don't link or search for pthreads when building for Windows, even
  3419. if we are using build environment (like mingw) that provides a
  3420. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  3421. o Minor bugfixes (continuous integration):
  3422. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  3423. - Skip a pair of unreliable key generation tests on Windows, until
  3424. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  3425. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  3426. o Minor bugfixes (control port):
  3427. - Respond with more human-readable error messages to GETINFO exit-
  3428. policy/* requests. Also, let controller know if an error is
  3429. transient (response code 551) or not (response code 552). Fixes
  3430. bug 25852; bugfix on 0.2.8.1-alpha.
  3431. - Parse the "HSADDRESS=" parameter in HSPOST commands properly.
  3432. Previously, it was misparsed and ignored. Fixes bug 26523; bugfix
  3433. on 0.3.3.1-alpha. Patch by "akwizgran".
  3434. - Make CIRC_BW event reflect the total of all data sent on a
  3435. circuit, including padding and dropped cells. Also fix a mis-
  3436. counting bug when STREAM_BW events were enabled. Fixes bug 25400;
  3437. bugfix on 0.2.5.2-alpha.
  3438. o Minor bugfixes (correctness, flow control):
  3439. - Upon receiving a stream-level SENDME cell, verify that our window
  3440. has not grown too large. Fixes bug 26214; bugfix on svn
  3441. r54 (pre-0.0.1).
  3442. o Minor bugfixes (directory authority):
  3443. - When voting for recommended versions, make sure that all of the
  3444. versions are well-formed and parsable. Fixes bug 26485; bugfix
  3445. on 0.1.1.6-alpha.
  3446. o Minor bugfixes (directory client):
  3447. - When unverified-consensus is verified, rename it to cached-
  3448. consenus. Fixes bug 4187; bugfix on 0.2.0.3-alpha.
  3449. - Fixed launching a certificate fetch always during the scheduled
  3450. periodic consensus fetch by fetching only in those cases when
  3451. consensus are waiting for certs. Fixes bug 24740; bugfix
  3452. on 0.2.9.1-alpha.
  3453. o Minor bugfixes (error reporting):
  3454. - Improve tolerance for directory authorities with skewed clocks.
  3455. Previously, an authority with a clock more than 60 seconds ahead
  3456. could cause a client with a correct clock to warn that the
  3457. client's clock was behind. Now the clocks of a majority of
  3458. directory authorities have to be ahead of the client before this
  3459. warning will occur. Fixes bug 25756; bugfix on 0.2.2.25-alpha.
  3460. o Minor bugfixes (in-process restart):
  3461. - Always call tor_free_all() when leaving tor_run_main(). When we
  3462. did not, restarting tor in-process would cause an assertion
  3463. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  3464. o Minor bugfixes (Linux seccomp2 sandbox):
  3465. - Fix a bug in our sandboxing rules for the openat() syscall.
  3466. Previously, no openat() call would be permitted, which would break
  3467. filesystem operations on recent glibc versions. Fixes bug 25440;
  3468. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  3469. o Minor bugfixes (logging):
  3470. - Improve the log message when connection initiators fail to
  3471. authenticate direct connections to relays. Fixes bug 26927; bugfix
  3472. on 0.3.0.1-alpha.
  3473. o Minor bugfixes (onion services):
  3474. - Silence a spurious compiler warning in
  3475. rend_client_send_introduction(). Fixes bug 27463; bugfix
  3476. on 0.1.1.2-alpha.
  3477. - Fix bug that causes services to not ever rotate their descriptors
  3478. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  3479. on 0.3.2.1-alpha.
  3480. - Recompute some consensus information after detecting a clock jump,
  3481. or after transitioning from a non-live consensus to a live
  3482. consensus. We do this to avoid having an outdated state, and
  3483. miscalculating the index for next-generation onion services. Fixes
  3484. bug 24977; bugfix on 0.3.2.1-alpha.
  3485. o Minor bugfixes (portability):
  3486. - Fix compilation of the unit tests on GNU/Hurd, which does not
  3487. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  3488. from "paulusASol".
  3489. - Work around two different bugs in the OS X 10.10 and later SDKs
  3490. that would prevent us from successfully targeting earlier versions
  3491. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  3492. - Do not align mmap length, as it is not required by POSIX, and the
  3493. getpagesize function is deprecated. Fixes bug 25399; bugfix
  3494. on 0.1.1.23.
  3495. o Minor bugfixes (portability, FreeBSD):
  3496. - In have_enough_mem_for_dircache(), the variable DIRCACHE_MIN_MEM_MB
  3497. does not stringify on FreeBSD, so we switch to tor_asprintf().
  3498. Fixes bug 20887; bugfix on 0.2.8.1-alpha. Patch by Neel Chauhan.
  3499. o Minor bugfixes (relay statistics):
  3500. - When a relay is collecting internal statistics about how many
  3501. create cell requests it has seen of each type, accurately count
  3502. the requests from relays that temporarily fall out of the
  3503. consensus. (To be extra conservative, we were already ignoring
  3504. requests from clients in our counts, and we continue ignoring them
  3505. here.) Fixes bug 24910; bugfix on 0.2.4.17-rc.
  3506. o Minor bugfixes (rust):
  3507. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  3508. on 0.3.1.5-alpha.
  3509. - Protover parsing was accepting the presence of whitespace in
  3510. version strings, which the C implementation would choke on, e.g.
  3511. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  3512. - Protover parsing was ignoring a 2nd hyphen and everything after
  3513. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  3514. on 0.3.3.1-alpha.
  3515. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  3516. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  3517. - cd to ${abs_top_builddir}/src/rust before running cargo in
  3518. src/test/test_rust.sh. This makes the working directory consistent
  3519. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  3520. o Minor bugfixes (single onion services, Tor2web):
  3521. - Log a protocol warning when single onion services or Tor2web
  3522. clients fail to authenticate direct connections to relays. Fixes
  3523. bug 26924; bugfix on 0.2.9.1-alpha.
  3524. o Minor bugfixes (test coverage tools):
  3525. - Update our "cov-diff" script to handle output from the latest
  3526. version of gcov, and to remove extraneous timestamp information
  3527. from its output. Fixes bugs 26101 and 26