CHANGES 200 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196
  1. _ _ ____ _
  2. ___| | | | _ \| |
  3. / __| | | | |_) | |
  4. | (__| |_| | _ <| |___
  5. \___|\___/|_| \_\_____|
  6. Changelog
  7. Version 7.61.1 (4 Sep 2018)
  8. Daniel Stenberg (4 Sep 2018)
  9. - THANKS: 7.61.1 status
  10. - RELEASE-NOTES: 7.61.1
  11. - Curl_getoff_all_pipelines: ignore unused return values
  12. Since scan-build would warn on the dead "Dead store/Dead increment"
  13. Viktor Szakats (4 Sep 2018)
  14. - sftp: fix indentation
  15. Daniel Stenberg (4 Sep 2018)
  16. - [Przemysław Tomaszewski brought this change]
  17. sftp: don't send post-qoute sequence when retrying a connection
  18. Fixes #2939
  19. Closes #2940
  20. Kamil Dudka (3 Sep 2018)
  21. - url, vtls: make CURLOPT{,_PROXY}_TLS13_CIPHERS work
  22. This is a follow-up to PR #2607 and PR #2926.
  23. Closes #2936
  24. Daniel Stenberg (3 Sep 2018)
  25. - [Jay Satiro brought this change]
  26. tool_operate: Add http code 408 to transient list for --retry
  27. - Treat 408 request timeout as transient so that curl will retry the
  28. request if --retry was used.
  29. Closes #2925
  30. - [Jay Satiro brought this change]
  31. openssl: Fix setting TLS 1.3 cipher suites
  32. The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
  33. missing.
  34. Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
  35. Reported-by: Kamil Dudka
  36. Closes #2926
  37. - Curl_ntlm_core_mk_nt_hash: return error on too long password
  38. ... since it would cause an integer overflow if longer than (max size_t
  39. / 2).
  40. This is CVE-2018-14618
  41. Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
  42. Closes #2756
  43. Reported-by: Zhaoyang Wu
  44. - [Rikard Falkeborn brought this change]
  45. http2: Use correct format identifier for stream_id
  46. Closes #2928
  47. Marcel Raad (2 Sep 2018)
  48. - test1148: fix precheck output
  49. "precheck command error" is not very helpful.
  50. Daniel Stenberg (1 Sep 2018)
  51. - all: s/int/size_t cleanup
  52. Assisted-by: Rikard Falkeborn
  53. Closes #2922
  54. - ssh-libssh: use FALLTHROUGH to silence gcc8
  55. Jay Satiro (31 Aug 2018)
  56. - tool_operate: Fix setting proxy TLS 1.3 ciphers
  57. Daniel Stenberg (31 Aug 2018)
  58. - [Daniel Gustafsson brought this change]
  59. cookies: support creation-time attribute for cookies
  60. According to RFC6265 section 5.4, cookies with equal path lengths
  61. SHOULD be sorted by creation-time (earlier first). This adds a
  62. creation-time record to the cookie struct in order to make cookie
  63. sorting more deterministic. The creation-time is defined as the
  64. order of the cookies in the jar, the first cookie read fro the
  65. jar being the oldest. The creation-time is thus not serialized
  66. into the jar. Also remove the strcmp() matching in the sorting as
  67. there is no lexicographic ordering in RFC6265. Existing tests are
  68. updated to match.
  69. Closes #2524
  70. Marcel Raad (31 Aug 2018)
  71. - Don't use Windows path %PWD for SSH tests
  72. All these tests failed on Windows because something like
  73. sftp://%HOSTIP:%SSHPORT%PWD/
  74. expanded to
  75. sftp://127.0.0.1:1234c:/msys64/home/bla/curl
  76. and then curl complained about the port number ending with a letter.
  77. Use the original POSIX path instead of the Windows path created in
  78. checksystem to fix this.
  79. Closes https://github.com/curl/curl/pull/2920
  80. Jay Satiro (29 Aug 2018)
  81. - CURLOPT_SSL_CTX_FUNCTION.3: clarify connection reuse warning
  82. Reported-by: Daniel Stenberg
  83. Closes https://github.com/curl/curl/issues/2916
  84. Daniel Stenberg (28 Aug 2018)
  85. - THANKS-filter: dedup Daniel Jeliński
  86. - RELEASE-NOTES: synced
  87. - CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
  88. - CURLOPT_SSL_CTX_FUNCTION.3: might cause unintended connection reuse [ci skip]
  89. Added a warning!
  90. Closes #2915
  91. - curl: fix time-of-check, time-of-use race in dir creation
  92. Patch-by: Jay Satiro
  93. Detected by Coverity
  94. Fixes #2739
  95. Closes #2912
  96. - cmdline-opts/page-footer: fix edit mistake
  97. There was a missing newline.
  98. follow-up to a7ba60bb7250
  99. - docs: clarify NO_PROXY env variable functionality
  100. Reported-by: Kirill Marchuk
  101. Fixes #2773
  102. Closes #2911
  103. Marcel Raad (24 Aug 2018)
  104. - lib1522: fix curl_easy_setopt argument type
  105. CURLOPT_POSTFIELDSIZE is a long option.
  106. - curl_threads: silence bad-function-cast warning
  107. As uintptr_t and HANDLE are always the same size, this warning is
  108. harmless. Just silence it using an intermediate uintptr_t variable.
  109. Closes https://github.com/curl/curl/pull/2908
  110. Daniel Stenberg (24 Aug 2018)
  111. - README: add appveyor build badge [ci skip]
  112. Closes #2913
  113. - [Ihor Karpenko brought this change]
  114. schannel: client certificate store opening fix
  115. 1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG )
  116. while opening certificate store would be sufficient in this scenario and
  117. less-demanding in sense of required user credentials ( for example,
  118. IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore
  119. call without any of flags mentioned above ),
  120. 2) as 'cert_store_name' is a DWORD, attempt to format its value like a
  121. string ( in "Failed to open cert store" error message ) will throw null
  122. pointer exception
  123. 3) adding GetLastError(), in my opinion, will make error message more
  124. useful.
  125. Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
  126. Closes #2909
  127. - [Leonardo Taccari brought this change]
  128. gopher: Do not translate `?' to `%09'
  129. Since GOPHER support was added in curl `?' character was automatically
  130. translated to `%09' (`\t').
  131. However, this behaviour does not seems documented in RFC 4266 and for
  132. search selectors it is documented to directly use `%09' in the URL.
  133. Apart that several gopher servers in the current gopherspace have CGI
  134. support where `?' is used as part of the selector and translating it to
  135. `%09' often leads to surprising results.
  136. Closes #2910
  137. Marcel Raad (23 Aug 2018)
  138. - cookie tests: treat files as text
  139. Fixes test failures because of wrong line endings on Windows.
  140. Daniel Stenberg (23 Aug 2018)
  141. - libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation
  142. Multi-threaded applictions basically MUST set CURLOPT_NO_SIGNAL to 1L to
  143. avoid the risk of getting a SIGPIPE.
  144. Either way, a multi-threaded application that uses libcurl/openssl needs
  145. to have a signhandler for or ignore SIGPIPE on its own.
  146. Based on discussions in #2800
  147. Closes #2904
  148. - RELEASE-NOTES: synced
  149. Marcel Raad (22 Aug 2018)
  150. - Tests: fixes for Windows
  151. - test 1268 requires unix sockets
  152. - test 2072 must be disabled also for MSYS/MinGW
  153. Daniel Stenberg (22 Aug 2018)
  154. - http2: abort the send_callback if not setup yet
  155. When Curl_http2_done() gets called before the http2 data is setup all
  156. the way, we cannot send anything and this should just return an error.
  157. Detected by OSS-Fuzz
  158. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
  159. - http2: remove four unused nghttp2 callbacks
  160. Closes #2903
  161. - x509asn1: use FALLTHROUGH
  162. ... as no other comments are accepted since 014ed7c22f51463
  163. Marcel Raad (21 Aug 2018)
  164. - test1148: disable if decimal separator is not point
  165. Modifying the locale with environment variables doesn't work for native
  166. Windows applications. Just disable the test in this case if the decimal
  167. separator is something different than a point. Use a precheck with a
  168. small C program to achieve that.
  169. Closes https://github.com/curl/curl/pull/2786
  170. - Enable more GCC warnings
  171. This enables the following additional warnings:
  172. -Wold-style-definition
  173. -Warray-bounds=2 instead of the default 1
  174. -Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
  175. respected for older versions
  176. -Wunused-const-variable, which enables level 2 instead of the default 1
  177. -Warray-bounds also in debug mode through -ftree-vrp
  178. -Wnull-dereference also in debug mode through
  179. -fdelete-null-pointer-checks
  180. Closes https://github.com/curl/curl/pull/2747
  181. - curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
  182. This enables level 4 instead of the default level 3, which of the
  183. currently used comments only allows /* FALLTHROUGH */ to silence the
  184. warning.
  185. Closes https://github.com/curl/curl/pull/2747
  186. - curl-compilers: enable -Wbad-function-cast on GCC
  187. This warning used to be enabled only for clang as it's a bit stricter
  188. on GCC. Silence the remaining occurrences and enable it on GCC too.
  189. Closes https://github.com/curl/curl/pull/2747
  190. - configure: conditionally enable pedantic-errors
  191. Enable pedantic-errors for GCC >= 5 with --enable-werror. Before GCC 5,
  192. pedantic-errors was synonymous to -Werror=pedantic [0], which is still
  193. the case for clang [1]. With GCC 5, it became complementary [2].
  194. Also fix a resulting error in acinclude.m4 as main's return type was
  195. missing, which is illegal in C99.
  196. [0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
  197. [1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages
  198. [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
  199. Closes https://github.com/curl/curl/pull/2747
  200. - Remove unused definitions
  201. Closes https://github.com/curl/curl/pull/2747
  202. Daniel Stenberg (21 Aug 2018)
  203. - x509asn1: make several functions static
  204. and remove the private SIZE_T_MAX define and use the generic one.
  205. Closes #2902
  206. - INTERNALS: require GnuTLS >= 2.11.3
  207. Since the public pinning support was brought in e644866caf4. GnuTLS
  208. 2.11.3 was released in October 2010.
  209. Figured out in #2890
  210. - http2: avoid set_stream_user_data() before stream is assigned
  211. ... before the stream is started, we have it set to -1.
  212. Fixes #2894
  213. Closes #2898
  214. - SSLCERTS: improve the openssl command line
  215. ... for extracting certs from a live HTTPS server to make a cacerts.pem
  216. from them.
  217. - docs/SECURITY-PROCESS: now we name the files after the CVE id
  218. - RELEASE-NOTES: synced
  219. - upload: change default UPLOAD_BUFSIZE to 64KB
  220. To make uploads significantly faster in some circumstances.
  221. Part 2 of #2888
  222. Closes #2892
  223. - upload: allocate upload buffer on-demand
  224. Saves 16KB on the easy handle for operations that don't need that
  225. buffer.
  226. Part 1 of #2888
  227. - [Laurent Bonnans brought this change]
  228. vtls: reinstantiate engine on duplicated handles
  229. Handles created with curl_easy_duphandle do not use the SSL engine set
  230. up in the original handle. This fixes the issue by storing the engine
  231. name in the internal url state and setting the engine from its name
  232. inside curl_easy_duphandle.
  233. Reported-by: Anton Gerasimov
  234. Signed-of-by: Laurent Bonnans
  235. Fixes #2829
  236. Closes #2833
  237. - http2: make sure to send after RST_STREAM
  238. If this is the last stream on this connection, the RST_STREAM might not
  239. get pushed to the wire otherwise.
  240. Fixes #2882
  241. Closes #2887
  242. Researched-by: Michael Kaufmann
  243. - test1268: check the stderr output as "text"
  244. Follow-up to 099f37e9c57
  245. Pointed-out-by: Marcel Raad
  246. - urldata: remove unused pipe_broke struct field
  247. This struct field is never set TRUE in any existing code path. This
  248. change removes the field completely.
  249. Closes #2871
  250. - curl: warn the user if a given file name looks like an option
  251. ... simply because this is usually a sign of the user having omitted the
  252. file name and the next option is instead "eaten" by the parser as a file
  253. name.
  254. Add test1268 to verify
  255. Closes #2885
  256. - http2: check nghttp2_session_set_stream_user_data return code
  257. Might help bug #2688 debugging
  258. Closes #2880
  259. - travis: revert back to gcc-7 for coverage builds
  260. ... since the gcc-8 ones seem to fail frequently.
  261. Follow-up from b85207199544ca
  262. Closes #2886
  263. - RELEASE-NOTES: synced
  264. ... and now listed in alphabetical order!
  265. - [Adrien brought this change]
  266. CMake: CMake config files are defining CURL_STATICLIB for static builds
  267. This change allows to use the CMake config files generated by Curl's
  268. CMake scripts for static builds of the library.
  269. The symbol CURL_STATIC lib must be defined to compile downstream,
  270. thus the config package is the perfect place to do so.
  271. Fixes #2817
  272. Closes #2823
  273. Reported-by: adnn on github
  274. Reviewed-by: Sergei Nikulov
  275. - TODO: host name sections in config files
  276. Kamil Dudka (14 Aug 2018)
  277. - ssh-libssh: fix infinite connect loop on invalid private key
  278. Added test 656 (based on test 604) to verify the fix.
  279. Bug: https://bugzilla.redhat.com/1595135
  280. Closes #2879
  281. - ssh-libssh: reduce excessive verbose output about pubkey auth
  282. The verbose message "Authentication using SSH public key file" was
  283. printed each time the ssh_userauth_publickey_auto() was called, which
  284. meant each time a packet was transferred over network because the API
  285. operates in non-blocking mode.
  286. This patch makes sure that the verbose message is printed just once
  287. (when the authentication state is entered by the SSH state machine).
  288. Daniel Stenberg (14 Aug 2018)
  289. - travis: disable h2 torture tests for "coverage"
  290. Since they started to fail almost 100% since a few days.
  291. Closes #2876
  292. Marcel Raad (14 Aug 2018)
  293. - travis: update to GCC 8
  294. Closes https://github.com/curl/curl/pull/2869
  295. Daniel Stenberg (13 Aug 2018)
  296. - http: fix for tiny "HTTP/0.9" response
  297. Deal with tiny "HTTP/0.9" (header-less) responses by checking the
  298. status-line early, even before a full "HTTP/" is received to allow
  299. detecting 0.9 properly.
  300. Test 1266 and 1267 added to verify.
  301. Fixes #2420
  302. Closes #2872
  303. Kamil Dudka (13 Aug 2018)
  304. - docs: add disallow-username-in-url.d and haproxy-protocol.d on the list
  305. ... to make make the files appear in distribution tarballs
  306. Closes #2856
  307. - .travis.yml: verify that man pages can be regenerated
  308. ... when curl is built from distribution tarball
  309. Closes #2856
  310. Marcel Raad (11 Aug 2018)
  311. - Split non-portable part off test 1133
  312. Split off testing file names with double quotes into new test 1158.
  313. Disable it for MSYS using a precheck as it doesn't support file names
  314. with double quotes (but Cygwin does, for example).
  315. Fixes https://github.com/curl/curl/issues/2796
  316. Closes https://github.com/curl/curl/pull/2854
  317. Jay Satiro (11 Aug 2018)
  318. - projects: Improve Windows perl detection in batch scripts
  319. - Determine if perl is in the user's PATH by running perl.exe.
  320. Prior to this change detection was done by checking the PATH for perl/
  321. but that did not work in all cases (eg git install includes perl but
  322. not in perl/ path).
  323. Bug: https://github.com/curl/curl/pull/2865
  324. Reported-by: Daniel Jeliński
  325. - [Michael Kaufmann brought this change]
  326. docs: Improve the manual pages of some callbacks
  327. - CURLOPT_HEADERFUNCTION: add newlines
  328. - CURLOPT_INTERLEAVEFUNCTION: fix the description of 'userdata'
  329. - CURLOPT_READDATA: mention crashes, same as in CURLOPT_WRITEDATA
  330. - CURLOPT_READFUNCTION: rename 'instream' to 'userdata' and explain
  331. how to set it
  332. Closes https://github.com/curl/curl/pull/2868
  333. Marcel Raad (11 Aug 2018)
  334. - GCC: silence -Wcast-function-type uniformly
  335. Pointed-out-by: Rikard Falkeborn
  336. Closes https://github.com/curl/curl/pull/2860
  337. - Silence GCC 8 cast-function-type warnings
  338. On Windows, casting between unrelated function types is fine and
  339. sometimes even necessary, so just use an intermediate cast to
  340. (void (*) (void)) to silence the warning as described in [0].
  341. [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
  342. Closes https://github.com/curl/curl/pull/2860
  343. Daniel Stenberg (11 Aug 2018)
  344. - CURLINFO_SIZE_UPLOAD: fix missing counter update
  345. Adds test 1522 for verification.
  346. Reported-by: cjmsoregan
  347. Fixes #2847
  348. Closes #2864
  349. - [Daniel Jelinski brought this change]
  350. Documentation: fix CURLOPT_SSH_COMPRESSION copy/paste bug
  351. Closes #2867
  352. - RELEASE-NOTES: synced
  353. - openssl: fix potential NULL pointer deref in is_pkcs11_uri
  354. Follow-up to 298d2565e
  355. Coverity CID 1438387
  356. Marcel Raad (10 Aug 2018)
  357. - travis: execute "set -eo pipefail" for coverage build
  358. Follow-up to 2de63ab179eb78630ee039ad94fb2a5423df522d and
  359. 0b87c963252d3504552ee0c8cf4402bd65a80af5.
  360. Closes https://github.com/curl/curl/pull/2862
  361. Daniel Stenberg (10 Aug 2018)
  362. - lib1502: fix memory leak in torture test
  363. Reported-by: Marcel Raad
  364. Fixes #2861
  365. Closes #2863
  366. - docs: mention NULL is fine input to several functions
  367. Fixes #2837
  368. Closes #2858
  369. Reported-by: Markus Elfring
  370. - [Bas van Schaik brought this change]
  371. README.md: add LGTM.com code quality grade for C/C++
  372. Closes #2857
  373. - [Rikard Falkeborn brought this change]
  374. test1531: Add timeout
  375. Previously, the macro TEST_HANG_TIMEOUT was unused, but since there is
  376. looping going on, we might as well add timing instead of removing it.
  377. Closes #2853
  378. - [Rikard Falkeborn brought this change]
  379. test1540: Remove unused macro TEST_HANG_TIMEOUT
  380. The macro has never been used, and it there is not really any place
  381. where it would make sense to add timing checks.
  382. Closes #2852
  383. - [Rikard Falkeborn brought this change]
  384. asyn-thread: Remove unused macro
  385. The macro seems to never have been used.
  386. Closes #2852
  387. - [Rikard Falkeborn brought this change]
  388. http_proxy: Remove unused macro SELECT_TIMEOUT
  389. Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22.
  390. Closes #2852
  391. - [Rikard Falkeborn brought this change]
  392. formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT
  393. Its usage was removed in
  394. 84ad1fd3047815f9c6e78728bb351b828eac10b1.
  395. Closes #2852
  396. - [Rikard Falkeborn brought this change]
  397. telnet: Remove unused macros TELOPTS and TELCMDS
  398. Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51.
  399. Closes #2852
  400. - [Daniel Jelinski brought this change]
  401. openssl: fix debug messages
  402. Fixes #2806
  403. Closes #2843
  404. - configure: fix for -lpthread detection with OpenSSL and pkg-config
  405. ... by making sure it uses the -I provided by pkg-config!
  406. Reported-by: pszemus on github
  407. Fixes #2848
  408. Closes #2850
  409. - RELEASE-NOTES: synced
  410. - windows: follow up to the buffer-tuning 1ba1dba7
  411. Somehow I didn't include the amended version of the previous fix. This
  412. is the missing piece.
  413. Pointed-out-by: Viktor Szakats
  414. - [Daniel Jelinski brought this change]
  415. windows: implement send buffer tuning
  416. Significantly enhances upload performance on modern Windows versions.
  417. Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
  418. Closes #2762
  419. Fixes #2224
  420. - [Anderson Toshiyuki Sasaki brought this change]
  421. ssl: set engine implicitly when a PKCS#11 URI is provided
  422. This allows the use of PKCS#11 URI for certificates and keys without
  423. setting the corresponding type as "ENG" and the engine as "pkcs11"
  424. explicitly. If a PKCS#11 URI is provided for certificate, key,
  425. proxy_certificate or proxy_key, the corresponding type is set as "ENG"
  426. if not provided and the engine is set to "pkcs11" if not provided.
  427. Acked-by: Nikos Mavrogiannopoulos
  428. Closes #2333
  429. - [Ruslan Baratov brought this change]
  430. CMake: Respect BUILD_SHARED_LIBS
  431. Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
  432. custom option CURL_STATICLIB.
  433. Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
  434. Reviewed-by: Sergei Nikulov
  435. Closes #2755
  436. - [John Butterfield brought this change]
  437. cmake: bumped minimum version to 3.4
  438. Closes #2753
  439. - [John Butterfield brought this change]
  440. cmake: link curl to the OpenSSL targets instead of lib absolute paths
  441. Reviewed-by: Jakub Zakrzewski
  442. Reviewed-by: Sergei Nikulov
  443. Closes #2753
  444. - travis: build darwinssl on macos 10.12
  445. ... as building on 10.13.x before 10.13.4 leads to link errors.
  446. Assisted-by: Nick Zitzmann
  447. Fixes #2835
  448. Closes #2845
  449. - DEPRECATE: remove release date from 7.62.0
  450. Since it will slip and the version is the important part there, not the
  451. date.
  452. - lib/Makefile: only do symbol hiding if told to
  453. This restores the ability to build a static lib with
  454. --disable-symbol-hiding to keep non-curl_ symbols.
  455. Researched-by: Dan Fandrich
  456. Reported-by: Ran Mozes
  457. Fixes #2830
  458. Closes #2831
  459. Marcel Raad (2 Aug 2018)
  460. - hostip: fix unused variable warning
  461. addresses is only used in an infof call, which is a macro expanding to
  462. nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
  463. Daniel Stenberg (2 Aug 2018)
  464. - test1307: disabled
  465. Turns out that since we're using the native fnmatch function now when
  466. available, and they simply disagree on a huge number of test patterns
  467. that make it hard to test this function like this...
  468. Fixes #2825
  469. - smb: don't mark it done in smb_do
  470. Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its
  471. doing function too, which requires smb_do() to not mark itself as
  472. done...
  473. Closes #2822
  474. - [Rikard Falkeborn brought this change]
  475. general: fix printf specifiers
  476. Closes #2818
  477. - RELEASE-NOTES: synced
  478. - mailmap: Daniel Jelinski
  479. - [Harry Sintonen brought this change]
  480. HTTP: Don't attempt to needlessly decompress redirect body
  481. This change fixes a regression where redirect body would needlessly be
  482. decompressed even though it was to be ignored anyway. As it happens this
  483. causes secondary issues since there appears to be a bug in apache2 that
  484. it in certain conditions generates a corrupt zlib response. The
  485. regression was created by commit:
  486. dbcced8e32b50c068ac297106f0502ee200a1ebd
  487. Discovered-by: Harry Sintonen
  488. Closes #2798
  489. - curl: use Content-Disposition before the "URL end" for -OJ
  490. Regression introduced in 7.61.0
  491. Reported-by: Thomas Klausner
  492. Fixes #2783
  493. Closes #2813
  494. - [Daniel Jelinski brought this change]
  495. retry: return error if rewind was necessary but didn't happen
  496. Fixes #2801
  497. Closes #2812
  498. - http2: clear the drain counter in Curl_http2_done
  499. Reported-by: Andrei Virtosu
  500. Fixes #2800
  501. Closes #2809
  502. - smb: fix memory leak on early failure
  503. ... by making sure connection related data (->share) is stored in the
  504. connection and not in the easy handle.
  505. Detected by OSS-fuzz
  506. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
  507. Fixes #2769
  508. Closes #2810
  509. - travis: run a 'make checksrc' too
  510. ... to make sure the examples are all checked.
  511. Closes #2811
  512. Jay Satiro (29 Jul 2018)
  513. - examples/ephiperfifo: checksrc compliance
  514. - [Michael Kaufmann brought this change]
  515. sws: handle EINTR when calling select()
  516. Closes https://github.com/curl/curl/pull/2808
  517. Daniel Stenberg (29 Jul 2018)
  518. - test1157: follow-up to 35ecffb9
  519. Ignore the user-agent line.
  520. Pointed-out-by: Marcel Raad
  521. Michael Kaufmann (29 Jul 2018)
  522. - tests/http_pipe.py: Use /usr/bin/env to find python
  523. Daniel Stenberg (28 Jul 2018)
  524. - TODO: Support Authority Information Access certificate extension (AIA)
  525. Closes #2793
  526. - conn_free: updated comment to clarify
  527. Let's call it disassociate instead of disconnect since the latter term
  528. is used so much for (TCP) connections already.
  529. - test1157: test -H from empty file
  530. Verifies bugfix #2797
  531. - [Tobias Blomberg brought this change]
  532. curl: Fix segfault when -H @headerfile is empty
  533. The curl binary would crash if the -H command line option was given a
  534. filename to read using the @filename syntax but that file was empty.
  535. Closes #2797
  536. - mime: check Curl_rand_hex's return code
  537. Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
  538. Reported-by: Jeffrey Walton
  539. Closes #2795
  540. - [Josh Bialkowski brought this change]
  541. docs/examples: add hiperfifo example using linux epoll/timerfd
  542. Closes #2804
  543. - [Darío Hereñú brought this change]
  544. docs/INSTALL.md: minor formatting fixes
  545. Closes #2794
  546. - [Christopher Head brought this change]
  547. docs/CURLOPT_URL: fix indentation
  548. The statement, “The application does not have to keep the string around
  549. after setting this option,” appears to be indented under the RTMP
  550. paragraph. It actually applies to all protocols, not just RTMP.
  551. Eliminate the extra indentation.
  552. Closes #2788
  553. - [Christopher Head brought this change]
  554. docs/CURLOPT_WRITEFUNCTION: size is always 1
  555. For compatibility with `fwrite`, the `CURLOPT_WRITEFUNCTION` callback is
  556. passed two `size_t` parameters which, when multiplied, designate the
  557. number of bytes of data passed in. In practice, CURL always sets the
  558. first parameter (`size`) to 1.
  559. This practice is also enshrined in documentation and cannot be changed
  560. in future. The documentation states that the default callback is
  561. `fwrite`, which means `fwrite` must be a suitable function for this
  562. purpose. However, the documentation also states that the callback must
  563. return the number of *bytes* it successfully handled, whereas ISO C
  564. `fwrite` returns the number of items (each of size `size`) which it
  565. wrote. The only way these numbers can be equal is if `size` is 1.
  566. Since `size` is 1 and can never be changed in future anyway, document
  567. that fact explicitly and let users rely on it.
  568. Closes #2787
  569. - [Carie Pointer brought this change]
  570. wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random
  571. RNG structure must be freed by call to FreeRng after its use in
  572. Curl_cyassl_random. This call fixes Valgrind failures when running the
  573. test suite with wolfSSL.
  574. Closes #2784
  575. - [Even Rouault brought this change]
  576. reuse_conn(): free old_conn->options
  577. This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with
  578. connection reuse.
  579. I found this with oss-fuzz on GDAL and curl master:
  580. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582
  581. I couldn't reproduce with the oss-fuzz original test case, but looking
  582. at curl source code pointed to this well reproducable leak.
  583. Closes #2790
  584. Marcel Raad (25 Jul 2018)
  585. - [Daniel Jelinski brought this change]
  586. system_win32: fix version checking
  587. In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false
  588. when run on windows 10.0. This patch addresses that error.
  589. Closes https://github.com/curl/curl/pull/2792
  590. Daniel Stenberg (24 Jul 2018)
  591. - [Johannes Schindelin brought this change]
  592. auth: pick Bearer authentication whenever a token is available
  593. So far, the code tries to pick an authentication method only if
  594. user/password credentials are available, which is not the case for
  595. Bearer authentictation...
  596. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  597. Closes #2754
  598. - [Johannes Schindelin brought this change]
  599. auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer token
  600. The Bearer authentication was added to cURL 7.61.0, but there is a
  601. problem: if CURLAUTH_ANY is selected, and the server supports multiple
  602. authentication methods including the Bearer method, we strongly prefer
  603. that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer
  604. authentication fails, we will never even try to attempt any other
  605. method.
  606. This is particularly unfortunate when we already know that we do not
  607. have any Bearer token to work with.
  608. Such a scenario happens e.g. when using Git to push to Visual Studio
  609. Team Services (which supports Basic and Bearer authentication among
  610. other methods) and specifying the Personal Access Token directly in the
  611. URL (this aproach is frequently taken by automated builds).
  612. Let's make sure that we have a Bearer token to work with before we
  613. select the Bearer authentication among the available authentication
  614. methods.
  615. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  616. Closes #2754
  617. Marcel Raad (22 Jul 2018)
  618. - test320: treat curl320.out file as binary
  619. Otherwise, LF line endings are converted to CRLF on Windows,
  620. but no conversion is done for the reply, so the test case fails.
  621. Closes https://github.com/curl/curl/pull/2776
  622. Daniel Stenberg (22 Jul 2018)
  623. - vtls: set conn->data when closing TLS
  624. Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
  625. layer for a connection still needs a Curl_easy handle for the session_id
  626. cache etc.
  627. Fixes #2764
  628. Closes #2771
  629. Marcel Raad (21 Jul 2018)
  630. - tests: fixes for Windows line endlings
  631. Set mode="text" when line endings depend on the system representation.
  632. Closes https://github.com/curl/curl/pull/2772
  633. - test214: disable MSYS2's POSIX path conversion for URL
  634. By default, the MSYS2 bash converts all backslashes to forward slashes
  635. in URLs. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
  636. Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
  637. Daniel Stenberg (20 Jul 2018)
  638. - http2: several cleanups
  639. - separate easy handle from connections better
  640. - added asserts on a number of places
  641. - added sanity check of pipelines for debug builds
  642. Closes #2751
  643. - smb_getsock: always wait for write socket too
  644. ... the protocol is doing read/write a lot, so it needs to write often
  645. even when downloading. A more proper fix could check for eactly when it
  646. wants to write and only ask for it then.
  647. Without this fix, an SMB download could easily get stuck when the event-driven
  648. API was used.
  649. Closes #2768
  650. Marcel Raad (20 Jul 2018)
  651. - test1143: disable MSYS2's POSIX path conversion
  652. By default, the MSYS2 bash interprets http:/%HOSTIP:%HTTPPORT/want/1143
  653. as a POSIX file list and converts it to a Windows file list.
  654. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
  655. Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
  656. Closes https://github.com/curl/curl/pull/2765
  657. Daniel Stenberg (18 Jul 2018)
  658. - RELEASE-NOTES: sync
  659. ... and work toward 7.61.1
  660. - [Ruslan Baratov brought this change]
  661. CMake: Update scripts to use consistent style
  662. Closes #2727
  663. Reviewed-by: Sergei Nikulov
  664. - header output: switch off all styles, not just unbold
  665. ... the "unbold" sequence doesn't work on the mac Terminal.
  666. Reported-by: Zero King
  667. Fixes #2736
  668. Closes #2738
  669. Nick Zitzmann (14 Jul 2018)
  670. - [Rodger Combs brought this change]
  671. darwinssl: add support for ALPN negotiation
  672. Marcel Raad (14 Jul 2018)
  673. - test1422: add required file feature
  674. curl configured with --enable-debug --disable-file currently complains
  675. on test1422:
  676. Info: Protocol "file" not supported or disabled in libcurl
  677. Make test1422 dependend on enabled FILE protocol to fix this.
  678. Fixes https://github.com/curl/curl/issues/2741
  679. Closes https://github.com/curl/curl/pull/2742
  680. Patrick Monnerat (12 Jul 2018)
  681. - content_encoding: accept up to 4 unknown trailer bytes after raw deflate data
  682. Some servers issue raw deflate data that may be followed by an undocumented
  683. trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
  684. before considering the data is in error.
  685. Reported-by: clbr on github
  686. Fixes #2719
  687. Daniel Stenberg (12 Jul 2018)
  688. - smb: fix memory-leak in URL parse error path
  689. Detected by OSS-Fuzz
  690. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
  691. Closes #2740
  692. Marcel Raad (12 Jul 2018)
  693. - schannel: enable CALG_TLS1PRF for w32api >= 5.1
  694. The definition of CALG_TLS1PRF has been fixed in the 5.1 branch:
  695. https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/commits/73aedcc0f2e6ba370de0d86ab878ad76a0dda7b5
  696. Daniel Stenberg (12 Jul 2018)
  697. - docs/SECURITY-PROCESS: mention bounty, drop pre-notify
  698. + The hackerone bounty and its process
  699. - We don't and can't handle pre-notification
  700. - multi: always do the COMPLETED procedure/state
  701. It was previously erroneously skipped in some situations.
  702. libtest/libntlmconnect.c wrongly depended on wrong behavior (that it
  703. would get a zero timeout) when no handles are "running" in a multi
  704. handle. That behavior is no longer present with this fix. Now libcurl
  705. will always return a -1 timeout when all handles are completed.
  706. Closes #2733
  707. - Curl_getoff_all_pipelines: improved for multiplexed
  708. On multiplexed connections, transfers can be removed from anywhere not
  709. just at the head as for pipelines.
  710. - ares: check for NULL in completed-callback
  711. - conn: remove the boolean 'inuse' field
  712. ... as the usage needs to be counted.
  713. - [Paul Howarth brought this change]
  714. openssl: assume engine support in 1.0.0 or later
  715. Commit 38203f1585da changed engine detection to be version-based,
  716. with a baseline of openssl 1.0.1. This does in fact break builds
  717. with openssl 1.0.0, which has engine support - the configure script
  718. detects that ENGINE_cleanup() is available - but <openssl/engine.h>
  719. doesn't get included to declare it.
  720. According to upstream documentation, engine support was added to
  721. mainstream openssl builds as of version 0.9.7:
  722. https://github.com/openssl/openssl/blob/master/README.ENGINE
  723. This commit drops the version test down to 1.0.0 as version 1.0.0d
  724. is the oldest version I have to test with.
  725. Closes #2732
  726. Marcel Raad (11 Jul 2018)
  727. - schannel: fix MinGW compile break
  728. Original MinGW's w32api has a sytax error in its definition of
  729. CALG_TLS1PRF [0]. Don't use original MinGW w32api's CALG_TLS1PRF
  730. until this bug [1] is fixed.
  731. [0] https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
  732. [1] https://osdn.net/projects/mingw/ticket/38391
  733. Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
  734. Closes https://github.com/curl/curl/pull/2728
  735. Daniel Stenberg (11 Jul 2018)
  736. - examples/crawler.c: move #ifdef to column 0
  737. Apparently the C => HTML converter on the web site doesn't quite like it
  738. otherwise.
  739. Reported-by: Jeroen Ooms
  740. Version 7.61.0 (11 Jul 2018)
  741. Daniel Stenberg (11 Jul 2018)
  742. - release: 7.61.0
  743. - TODO: Configurable loading of OpenSSL configuration file
  744. Closes #2724
  745. - post303.d: clarify that this is an RFC violation
  746. ... and not the other way around, which this previously said.
  747. Reported-by: Vasiliy Faronov
  748. Fixes #2723
  749. Closes #2726
  750. - [Ruslan Baratov brought this change]
  751. CMake: remove redundant and old end-of-block syntax
  752. Reviewed-by: Jakub Zakrzewski
  753. Closes #2715
  754. Jay Satiro (9 Jul 2018)
  755. - lib/curl_setup.h: remove unicode character
  756. Follow-up to 82ce416.
  757. Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
  758. Daniel Stenberg (9 Jul 2018)
  759. - lib/curl_setup.h: remove unicode bom from 8272ec50f02
  760. Marcel Raad (9 Jul 2018)
  761. - schannel: fix -Wsign-compare warning
  762. MinGW warns:
  763. /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
  764. conditional expression [-Wsign-compare]
  765. Fix this by casting the ptrdiff_t to size_t as we know it's positive.
  766. Closes https://github.com/curl/curl/pull/2721
  767. - schannel: workaround for wrong function signature in w32api
  768. Original MinGW's w32api has CryptHashData's second parameter as BYTE *
  769. instead of const BYTE *.
  770. Closes https://github.com/curl/curl/pull/2721
  771. - schannel: make more cipher options conditional
  772. They are not defined in the original MinGW's <wincrypt.h>.
  773. Closes https://github.com/curl/curl/pull/2721
  774. - curl_setup: include <winerror.h> before <windows.h>
  775. Otherwise, only part of it gets pulled in through <windows.h> on
  776. original MinGW.
  777. Fixes https://github.com/curl/curl/issues/2361
  778. Closes https://github.com/curl/curl/pull/2721
  779. - examples: fix -Wformat warnings
  780. When size_t is not a typedef for unsigned long (as usually the case on
  781. Windows), GCC emits -Wformat warnings when using lu and lx format
  782. specifiers with size_t. Silence them with explicit casts to
  783. unsigned long.
  784. Closes https://github.com/curl/curl/pull/2721
  785. Daniel Stenberg (9 Jul 2018)
  786. - smtp: use the upload buffer size for scratch buffer malloc
  787. ... not the read buffer size, as that can be set smaller and thus cause
  788. a buffer overflow! CVE-2018-0500
  789. Reported-by: Peter Wu
  790. Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
  791. - [Dave Reisner brought this change]
  792. scripts: include _curl as part of CLEANFILES
  793. Closes #2718
  794. - [Nick Zitzmann brought this change]
  795. darwinssl: allow High Sierra users to build the code using GCC
  796. ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
  797. enumeration constants.
  798. Fixes #2656
  799. Closes #2703
  800. - [Ruslan Baratov brought this change]
  801. CMake: Remove unused 'output_var' from 'collect_true'
  802. Variable 'output_var' is not used and can be removed.
  803. Function 'collect_true' renamed to 'count_true'.
  804. - [Ruslan Baratov brought this change]
  805. CMake: Remove unused functions
  806. Closes #2711
  807. - KNOWN_BUGS: Stick to same family over SOCKS proxy
  808. - libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
  809. ... because otherwise not everything get closed down correctly.
  810. Fixes #2708
  811. Closes #2712
  812. - libssh: include line number in state change debug messages
  813. Closes #2713
  814. - KNOWN_BUGS: Borland support is dropped, AIX problem is too old
  815. - [Jeroen Ooms brought this change]
  816. example/crawler.c: simple crawler based on libxml2
  817. Closes #2706
  818. - RELEASE-NOTES: synced
  819. - DEPRECATE: include year when specifying date
  820. - DEPRECATE: linkified
  821. - DEPRECATE: mention the PR that disabled axTLS
  822. - docs/DEPRECATE.md: spelling and minor formatting
  823. - DEPRECATE: new doc describing planned item removals
  824. Closes #2704
  825. - [Gisle Vanem brought this change]
  826. telnet: fix clang warnings
  827. telnet.c(1401,28): warning: cast from function call of type 'int' to
  828. non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
  829. Fixes #2696
  830. Closes #2700
  831. - docs: fix missed option name markups
  832. - [Gaurav Malhotra brought this change]
  833. openssl: Remove some dead code
  834. Closes #2698
  835. - openssl: make the requested TLS version the *minimum* wanted
  836. The code treated the set version as the *exact* version to require in
  837. the TLS handshake, which is not what other TLS backends do and probably
  838. not what most people expect either.
  839. Reported-by: Andreas Olsson
  840. Assisted-by: Gaurav Malhotra
  841. Fixes #2691
  842. Closes #2694
  843. - RELEASE-NOTES: synced
  844. - openssl: allow TLS 1.3 by default
  845. Reported-by: Andreas Olsson
  846. Fixes #2692
  847. Closes #2693
  848. - [Adrian Peniak brought this change]
  849. CURLINFO_TLS_SSL_PTR.3: improve the example
  850. The previous example was a little bit confusing, because SSL* structure
  851. (or other "in use" SSL connection pointer) is not accessible after the
  852. transfer is completed, therefore working with the raw TLS library
  853. specific pointer needs to be done during transfer.
  854. Closes #2690
  855. - travis: add a build using the synchronous name resolver
  856. ... since default uses the threaded one and we test the c-ares build
  857. already.
  858. Closes #2689
  859. - configure: remove CURL_CHECK_NI_WITHSCOPEID too
  860. Since it isn't used either and requires the getnameinfo check
  861. Follow-up to 0aeca41702d2
  862. - getnameinfo: not used
  863. Closes #2687
  864. - easy_perform: use *multi_timeout() to get wait times
  865. ... and trim the threaded Curl_resolver_getsock() to return zero
  866. millisecond wait times during the first three milliseconds so that
  867. localhost or names in the OS resolver cache gets detected and used
  868. faster.
  869. Closes #2685
  870. Max Dymond (27 Jun 2018)
  871. - configure: Add dependent libraries after crypto
  872. The linker is pretty dumb and processes things left to right, keeping a
  873. tally of symbols it hasn't resolved yet. So, we need -ldl to appear
  874. after -lcrypto otherwise the linker won't find the dl functions.
  875. Closes #2684
  876. Daniel Stenberg (27 Jun 2018)
  877. - GOVERNANCE: linkify, changed some titles
  878. - GOVERNANCE: add maintainer details/duties
  879. - url: check Curl_conncache_add_conn return code
  880. ... it was previously unchecked in two places and thus errors could
  881. remain undetected and cause trouble.
  882. Closes #2681
  883. - include/README: remove "hacking" advice, not the right place
  884. - RELEASE-NOTES: synced
  885. - CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
  886. Follow-up to b6a16afa0aa5
  887. - netrc: use a larger buffer
  888. ... to work with longer passwords etc. Grow it from a 256 to a 4096
  889. bytes buffer.
  890. Reported-by: Dario Nieuwenhuis
  891. Fixes #2676
  892. Closes #2680
  893. - [Patrick Schlangen brought this change]
  894. CURLOPT_SSL_VERIFYPEER.3: Add performance note
  895. Closes #2673
  896. - [Javier Blazquez brought this change]
  897. multi: fix crash due to dangling entry in connect-pending list
  898. Fixes #2677
  899. Closes #2679
  900. - ConnectionExists: make sure conn->data is set when "taking" a connection
  901. Follow-up to 2c15693.
  902. Bug #2674
  903. Closes #2675
  904. - [Kevin R. Bulgrien brought this change]
  905. system.h: fix for gcc on 32 bit OpenServer
  906. Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
  907. - [Raphael Gozzo brought this change]
  908. cmake: allow multiple SSL backends
  909. This will make possible to select the SSL backend (using
  910. curl_global_sslset()) even when the libcurl is built using CMake
  911. Closes #2665
  912. - url: fix dangling conn->data pointer
  913. By masking sure to use the *current* easy handle with extracted
  914. connections from the cache, and make sure to NULLify the ->data pointer
  915. when the connection is put into the cache to make this mistake easier to
  916. detect in the future.
  917. Reported-by: Will Dietz
  918. Fixes #2669
  919. Closes #2672
  920. - CURLOPT_INTERFACE.3: interface names not supported on Windows
  921. - travis: run more tests for coverage check
  922. ... run a few more tortured based and run all tests event-based.
  923. Closes #2664
  924. - multi: fix memory leak when stopped during name resolve
  925. When the application just started the transfer and then stops it while
  926. the name resolve in the background thread hasn't completed, we need to
  927. wait for the resolve to complete and then cleanup data accordingly.
  928. Enabled test 1553 again and added test 1590 to also check when the host
  929. name resolves successfully.
  930. Detected by OSS-fuzz.
  931. Closes #1968
  932. Viktor Szakats (15 Jun 2018)
  933. - maketgz: delete .bak files, fix indentation
  934. Ref: https://github.com/curl/curl/pull/2660
  935. Closes https://github.com/curl/curl/pull/2662
  936. Daniel Stenberg (15 Jun 2018)
  937. - runtests.pl: remove debug leftover from bb9a340c73f3
  938. - curl-confopts.m4: fix typo from ed224f23d5beb
  939. Fixes my local configure to detect a custom installed c-ares without
  940. pkgconfig.
  941. - docs/RELEASE-PROCEDURE.md: renamed to use .md extension
  942. Closes #2663
  943. - RELEASE-PROCEDURE: gpg sign the tags
  944. - RELEASE-NOTES: synced
  945. - CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
  946. - [Mamta Upadhyay brought this change]
  947. maketgz: fix sed issues on OSX
  948. maketgz creates release tarballs and removes the -DEV string in curl
  949. version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
  950. is run. maketgz works fine on linux but fails on OSX. Problem is with
  951. the sed commands that use option -i without an extension. Maketgz
  952. expects GNU sed instead of BSD and this simply won't work on OSX. Adding
  953. a backup extension .bak after -i fixes this issue
  954. Running the script as if on OSX gives this error:
  955. sed: -e: No such file or directory
  956. Adding a .bak extension resolves it
  957. Closes #2660
  958. - configure: enhance ability to detect/build with static openssl
  959. Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
  960. building with static libs without pkg-config.
  961. Reported-by: Marcel Raad
  962. Fixes #2199
  963. Closes #2659
  964. - configure: use pkg-config for c-ares detection
  965. First check if there's c-ares information given as pkg-config info and use
  966. that as first preference.
  967. Reported-by: pszemus on github
  968. Fixes #2203
  969. Closes #2658
  970. - GOVERNANCE.md: explains how this project is run
  971. Closes #2657
  972. - KNOWN_BUGS: NTLM doen't support password with § character
  973. Closes #2120
  974. - KNOWN_BUGS: slow connect to localhost on Windows
  975. Closes #2281
  976. - [Matteo Bignotti brought this change]
  977. mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
  978. certdata.txt should be deleted also when the process is interrupted by
  979. "same certificate downloaded, exiting"
  980. The certdata.txt is currently kept on disk even if you give the -u
  981. option
  982. Closes #2655
  983. - progress: remove a set of unused defines
  984. Reported-by: Peter Wu
  985. Closes #2654
  986. - TODO: "Option to refuse usernames in URLs" done
  987. Implemented by Björn in 946ce5b61f
  988. - [Lyman Epp brought this change]
  989. Curl_init_do: handle NULL connection pointer passed in
  990. Closes #2653
  991. - runtests: support variables in <strippart>
  992. ... and make use of that to make 1455 work better without using a fixed
  993. local port number.
  994. Fixes #2649
  995. Closes #2650
  996. - Curl_debug: remove dead printhost code
  997. The struct field is never set (since 5e0d9aea3) so remove the use of it
  998. and remove the connectdata pointer from the prototype.
  999. Reported-by: Tejas
  1000. Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
  1001. Closes #2647
  1002. Viktor Szakats (12 Jun 2018)
  1003. - schannel: avoid incompatible pointer warning
  1004. with clang-6.0:
  1005. ```
  1006. vtls/schannel_verify.c: In function 'add_certs_to_store':
  1007. vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
  1008. &cert_context)) {
  1009. ^
  1010. In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
  1011. from /usr/share/mingw-w64/include/schnlsp.h:9,
  1012. from vtls/schannel.h:29,
  1013. from vtls/schannel_verify.c:40:
  1014. /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
  1015. WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
  1016. ^~~~~~~~~~~~~~~~
  1017. ```
  1018. Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
  1019. Closes https://github.com/curl/curl/pull/2648
  1020. Daniel Stenberg (12 Jun 2018)
  1021. - [Robert Prag brought this change]
  1022. schannel: support selecting ciphers
  1023. Given the contstraints of SChannel, I'm exposing these as the algorithms
  1024. themselves instead; while replicating the ciphersuite as specified by
  1025. OpenSSL would have been preferable, I found no way in the SChannel API
  1026. to do so.
  1027. To use this from the commandline, you need to pass the names of contants
  1028. defining the desired algorithms. For example, curl --ciphers
  1029. "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
  1030. https://github.com The specific names come from wincrypt.h
  1031. Closes #2630
  1032. - [Bernhard M. Wiedemann brought this change]
  1033. test 46: make test pass after 2025
  1034. shifting the expiry date to 2037 for now
  1035. to be before the possibly problematic year 2038
  1036. similar in spirit to commit e6293cf8764e9eecb
  1037. Closes #2646
  1038. - [Marian Klymov brought this change]
  1039. cppcheck: fix warnings
  1040. - Get rid of variable that was generating false positive warning
  1041. (unitialized)
  1042. - Fix issues in tests
  1043. - Reduce scope of several variables all over
  1044. etc
  1045. Closes #2631
  1046. - openssl: assume engine support in 1.0.1 or later
  1047. Previously it was checked for in configure/cmake, but that would then
  1048. leave other build systems built without engine support.
  1049. While engine support probably existed prior to 1.0.1, I decided to play
  1050. safe. If someone experience a problem with this, we can widen the
  1051. version check.
  1052. Fixes #2641
  1053. Closes #2644
  1054. - RELEASE-NOTES: synced
  1055. - RELEASE-PROCEDURE: update the release calendar for 2019
  1056. - [Gisle Vanem brought this change]
  1057. boringssl + schannel: undef X509_NAME in lib/schannel.h
  1058. Fixes the build problem when both boringssl and schannel are enabled.
  1059. Fixes #2634
  1060. Closes #2643
  1061. - [Vladimir Kotal brought this change]
  1062. mk-ca-bundle.pl: leave certificate name untouched in decode()
  1063. Closes #2640
  1064. - [Rikard Falkeborn brought this change]
  1065. tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
  1066. This removes the generated lib1521.c when running make clean.
  1067. Closes #2633
  1068. - [Rikard Falkeborn brought this change]
  1069. tests/libtest: Add lib1521 to nodist_SOURCES
  1070. Since 467da3af0, lib1521.c is generated instead of checked in. According
  1071. to the commit message, the intention was to remove it from the tarball
  1072. as well. However, it is still present when running make dist. To remove
  1073. it, add it to nodist_lib1521_SOURCES. This also means there is no need
  1074. for the manually added dist-rule in the Makefile.
  1075. Also update CMakelists.txt to handle the fact that we now may have
  1076. nodist_SOURCES.
  1077. - [Stephan Mühlstrasser brought this change]
  1078. system.h: add support for IBM xlc C compiler
  1079. Added a section to system.h guarded with __xlc__ for the IBM xml C
  1080. compiler. Before this change the section titled 'generic "safe guess" on
  1081. old 32 bit style' was used, which resulted in a wrong definition of
  1082. CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
  1083. was wrong.
  1084. Compilation warnings fixed with this change:
  1085. CC libcurl_la-ftp.lo
  1086. "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1087. "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1088. "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1089. "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1090. "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1091. CC libcurl_la-connect.lo
  1092. "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1093. "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1094. "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1095. "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1096. CC libcurl_la-tftp.lo
  1097. "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
  1098. Closes #2637
  1099. - cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
  1100. Viktor Szakats (3 Jun 2018)
  1101. - spelling fixes
  1102. Detected using the `codespell` tool (version 1.13.0).
  1103. Also secure and fix an URL.
  1104. Daniel Stenberg (2 Jun 2018)
  1105. - axtls: follow-up spell fix of comment
  1106. - axTLS: not considered fit for use
  1107. URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
  1108. This is step one. It adds #error statements that require source edits to
  1109. make curl build again if asked to use axTLS. At a later stage we might
  1110. remove the axTLS specific code completely.
  1111. Closes #2628
  1112. - build: remove the Borland specific makefiles
  1113. According to the user survey 2018, not even one out of 670 users use
  1114. them. Nobody on the mailing list spoke up for them either.
  1115. Closes #2629
  1116. - curl_addrinfo: use same #ifdef conditions in source as header
  1117. ... for curl_dofreeaddrinfo
  1118. - multi: remove a DEBUGF()
  1119. ... it might call infof() with a NULL first argument that isn't harmful
  1120. but makes it not do anything. The infof() line is not very useful
  1121. anymore, it has served it purpose. Good riddance!
  1122. Fixes #2627
  1123. - [Alibek.Jorajev brought this change]
  1124. CURLOPT_RESOLVE: always purge old entry first
  1125. If there's an existing entry using the selected name.
  1126. Closes #2622
  1127. - fnmatch: use the system one if available
  1128. If configure detects fnmatch to be available, use that instead of our
  1129. custom one for FTP wildcard pattern matching. For standard compliance,
  1130. to reduce our footprint and to use already well tested and well
  1131. exercised code.
  1132. A POSIX fnmatch behaves slightly different than the internal function
  1133. for a few test patterns currently and the macOS one yet slightly
  1134. different. Test case 1307 is adjusted for these differences.
  1135. Closes #2626
  1136. Patrick Monnerat (31 May 2018)
  1137. - os400: add new option in ILE/RPG binding
  1138. Follow-up to commit 946ce5b
  1139. Daniel Stenberg (31 May 2018)
  1140. - tests/libtest/.gitignore: follow-up fix to ignore lib5* too
  1141. - KNOWN_BUGS: CURL_GLOBAL_SSL
  1142. Closes #2276
  1143. - [Bernhard Walle brought this change]
  1144. configure: check for declaration of getpwuid_r
  1145. On our x86 Android toolchain, getpwuid_r is implemented but the header
  1146. is missing:
  1147. netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
  1148. Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
  1149. the prototype to curl_setup.h.
  1150. Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
  1151. Closes #2609
  1152. - [Rikard Falkeborn brought this change]
  1153. tests: update .gitignore for libtests
  1154. Closes #2624
  1155. - [Rikard Falkeborn brought this change]
  1156. strictness: correct {infof, failf} format specifiers
  1157. Closes #2623
  1158. - [Björn Stenberg brought this change]
  1159. option: disallow username in URL
  1160. Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
  1161. libcurl reject URLs with a username in them.
  1162. Closes #2340
  1163. - libcurl-security.3: improved layout for two rememdy lists
  1164. - libcurl-security.3: refer to URL instead of in-source markdown file
  1165. Viktor Szakats (30 May 2018)
  1166. - curl.rc: embed manifest for correct Windows version detection
  1167. * enable it in `src/Makefile.m32`
  1168. * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
  1169. _not_ enabled via the existing `EMBED_MANIFEST` option
  1170. * enable it for all Windows CMake builds (also disable the built-in
  1171. minimal manifest, added by CMake by default.)
  1172. For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
  1173. the list of RC (Resource Compiler) flags to enable the manifest
  1174. included in `src/curl.rc`. This may require to disable whatever
  1175. automatic or other means in which way another manifest is added to
  1176. `curl.exe`.
  1177. Notice that Borland C doesn't support this method due to a
  1178. long-pending resource compiler bug. Watcom C may also not handle
  1179. it correctly when the `-zm` `wrc` option is used (this option may
  1180. be unnecessary though) and regardless of options in certain earlier
  1181. revisions of the 2.0 beta version.
  1182. Closes https://github.com/curl/curl/pull/1221
  1183. Fixes https://github.com/curl/curl/issues/2591
  1184. Patrick Monnerat (30 May 2018)
  1185. - os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
  1186. - os400: implement mime api EBCDIC wrappers
  1187. Also sync ILE/RPG binding to define the new functions.
  1188. Daniel Stenberg (29 May 2018)
  1189. - setopt: add TLS 1.3 ciphersuites
  1190. Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
  1191. curl: added --tls13-ciphers and --proxy-tls13-ciphers
  1192. Fixes #2435
  1193. Reported-by: zzq1015 on github
  1194. Closes #2607
  1195. - configure: override AR_FLAGS to silence warning
  1196. The automake default ar flags are 'cru', but the 'u' flag in there
  1197. causes warnings on many modern Linux distros. Removing 'u' may have a
  1198. minor performance impact on older distros but should not cause harm.
  1199. Explained on the automake mailing list already back in April 2015:
  1200. https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
  1201. Reported-by: elephoenix on github
  1202. Fixes #2617
  1203. Closes #2619
  1204. Sergei Nikulov (29 May 2018)
  1205. - cmake: fixed comments in compile checks code
  1206. Daniel Stenberg (29 May 2018)
  1207. - INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
  1208. ... the older description doesn't work
  1209. Reported-by: Peter Varga
  1210. Fixes #2615
  1211. Closes #2616
  1212. - [Will Dietz brought this change]
  1213. KNOWN_BUGS: restore text regarding #2101.
  1214. This was added earlier but appears to have been removed accidentally.
  1215. AFAICT this is very much still an issue.
  1216. -----
  1217. I say "accidentally" because the text seems to have harmlessly snuck
  1218. into [1] (which makes no mention of it). [1] was later reverted for
  1219. unspecified reasons in [2], presumably because the mentioned issue was
  1220. fixed or invalid.
  1221. [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
  1222. [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
  1223. Closes #2618
  1224. - fnmatch: insist on escaped bracket to match
  1225. A non-escaped bracket ([) is for a character group - as documented. It
  1226. will *not* match an individual bracket anymore. Test case 1307 updated
  1227. accordingly to match.
  1228. Problem detected by OSS-Fuzz, although this fix is probably not a final
  1229. fix for the notorious timeout issues.
  1230. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
  1231. Closes #2614
  1232. Patrick Monnerat (28 May 2018)
  1233. - psl: use latest psl and refresh it periodically
  1234. The latest psl is cached in the multi or share handle. It is refreshed
  1235. before use after 72 hours.
  1236. New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
  1237. If the latest psl is not available, the builtin psl is used.
  1238. Reported-by: Yaakov Selkowitz
  1239. Fixes #2553
  1240. Closes #2601
  1241. Daniel Stenberg (28 May 2018)
  1242. - [Fabrice Fontaine brought this change]
  1243. configure: fix ssh2 linking when built with a static mbedtls
  1244. The ssh2 pkg-config file could contain the following lines when build
  1245. with a static version of mbedtls:
  1246. Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
  1247. Libs.private: /xxx/libmbedcrypto.a
  1248. This static mbedtls library must be used to correctly detect ssh2
  1249. support and this library must be copied in libcurl.pc otherwise
  1250. compilation of any application (such as upmpdcli) with libcurl will fail
  1251. when trying to found mbedtls functions included in libssh2. So, replace
  1252. pkg-config --libs-only-l by pkg-config --libs.
  1253. Fixes:
  1254. - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
  1255. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  1256. Closes #2613
  1257. - RELEASE-NOTES: synced
  1258. - [Bernhard Walle brought this change]
  1259. cmake: check for getpwuid_r
  1260. The autotools-based build system does it, so we do it also in CMake.
  1261. Bug: #2609
  1262. Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
  1263. - cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
  1264. - [Frank Gevaerts brought this change]
  1265. curl.1: Fix cmdline-opts reference errors.
  1266. --data, --form, and --ntlm were declared to be mutually exclusive with
  1267. non-existing options. --data and --form referred to --upload (which is
  1268. short for --upload-file and therefore did work, so this one was merely
  1269. a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
  1270. Closes #2612
  1271. - [Frank Gevaerts brought this change]
  1272. docs: fix cmdline-opts metadata headers case consistency.
  1273. Almost all headers start with an uppercase letter, but some didn't.
  1274. - mailmap: Max Savenkov
  1275. Sergei Nikulov (28 May 2018)
  1276. - [Max Savenkov brought this change]
  1277. Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
  1278. Daniel Stenberg (27 May 2018)
  1279. - mailmap: a Richard Alcock fixup
  1280. - [Richard Alcock brought this change]
  1281. schannel: add failf calls for client certificate failures
  1282. Closes #2604
  1283. - [Richard Alcock brought this change]
  1284. winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
  1285. Change requirement from $(DISTDIR) to $(DIRDIST)
  1286. closes #2603
  1287. - [Richard Alcock brought this change]
  1288. winbuild: only delete OUTFILE if it exists
  1289. This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
  1290. "Could not find CURL_OBJS.inc.inc" message when building into a clean
  1291. folder.
  1292. closes #2602
  1293. - [Alejandro R. Sedeño brought this change]
  1294. content_encoding: handle zlib versions too old for Z_BLOCK
  1295. Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
  1296. Fixes #2606
  1297. Closes #2608
  1298. - multi: provide a socket to wait for in Curl_protocol_getsock
  1299. ... even when there's no protocol specific handler setup.
  1300. Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
  1301. Reported-by: Sean Miller
  1302. Closes #2600
  1303. - [Linus Lewandowski brought this change]
  1304. httpauth: add support for Bearer tokens
  1305. Closes #2102
  1306. - TODO: CURLINFO_PAUSE_STATE
  1307. Closes #2588
  1308. Sergei Nikulov (24 May 2018)
  1309. - cmake: set -d postfix for debug builds if not specified
  1310. using -DCMAKE_DEBUG_POSTFIX explicitly
  1311. fixes #2121, obsoletes #2384
  1312. Daniel Stenberg (23 May 2018)
  1313. - configure: add basic test of --with-ssl prefix
  1314. When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
  1315. $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
  1316. error. Helps users detect when giving configure the wrong path.
  1317. Reported-by: Oleg Pudeyev
  1318. Assisted-by: Per Malmberg
  1319. Fixes #2580
  1320. Patrick Monnerat (22 May 2018)
  1321. - http resume: skip body if http code 416 (range error) is ignored.
  1322. This avoids appending error data to already existing good data.
  1323. Test 92 is updated to match this change.
  1324. New test 1156 checks all combinations of --range/--resume, --fail,
  1325. Content-Range header and http status code 200/416.
  1326. Fixes #1163
  1327. Reported-By: Ithubg on github
  1328. Closes #2578
  1329. Daniel Stenberg (22 May 2018)
  1330. - tftp: make sure error is zero terminated before printfing it
  1331. - configure: add missing m4/ax_compile_check_sizeof.m4
  1332. follow-up to mistake in 6876ccf90b4
  1333. Jay Satiro (22 May 2018)
  1334. - [Johannes Schindelin brought this change]
  1335. schannel: make CAinfo parsing resilient to CR/LF
  1336. OpenSSL has supported --cacert for ages, always accepting LF-only line
  1337. endings ("Unix line endings") as well as CR/LF line endings ("Windows
  1338. line endings").
  1339. When we introduced support for --cacert also with Secure Channel (or in
  1340. cURL speak: "WinSSL"), we did not take care to support CR/LF line
  1341. endings, too, even if we are much more likely to receive input in that
  1342. form when using Windows.
  1343. Let's fix that.
  1344. Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
  1345. accepts CR/LF input already, and the trailing LF before the END
  1346. CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
  1347. we need to care about is the BEGIN CERTIFICATE marker. We do not
  1348. actually need to verify here that the line ending is CR/LF. Just
  1349. checking for a CR or an LF is really plenty enough.
  1350. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  1351. Closes https://github.com/curl/curl/pull/2592
  1352. Daniel Stenberg (22 May 2018)
  1353. - CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
  1354. - RELEASE-NOTES: synced
  1355. - KNOWN_BUGS: mention the -O with %-encoded file names
  1356. Closes #2573
  1357. - checksrc: make sure sizeof() is used *with* parentheses
  1358. ... and unify the source code to adhere.
  1359. Closes #2563
  1360. - curl: added --styled-output
  1361. It is enabled by default, so --no-styled-output will switch off the
  1362. detection/use of bold headers.
  1363. Closes #2538
  1364. - curl: show headers in bold
  1365. The feature is only enabled if the output is believed to be a tty.
  1366. -J: There's some minor differences and improvements in -J handling, as
  1367. now J should work with -i and it actually creates a file first using the
  1368. initial name and then *renames* that to the one found in
  1369. Content-Disposition (if any).
  1370. -i: only shows headers for HTTP transfers now (as documented).
  1371. Previously it would also show for pieces of the transfer that were HTTP
  1372. (for example when doing FTP over a HTTP proxy).
  1373. -i: now shows trailers as well. Previously they were not shown at all.
  1374. --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
  1375. now done in the header callback.
  1376. - configure: compile-time SIZEOF checks
  1377. ... instead of exeucting code to get the size. Removes the use of
  1378. LD_LIBRARY_PATH for this.
  1379. Fixes #2586
  1380. Closes #2589
  1381. Reported-by: Bernhard Walle
  1382. - configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
  1383. ... and export LD_LIBRARY_PATH properly. This is a follow-up from
  1384. 2d4c215.
  1385. Fixes #2586
  1386. Reported-by: Bernhard Walle
  1387. - docs: clarify CURLOPT_HTTPGET somewhat
  1388. Reported-by: bsammon on github
  1389. Fixes #2590
  1390. - curl_fnmatch: only allow two asterisks for matching
  1391. The previous limit of 5 can still end up in situation that takes a very
  1392. long time and consumes a lot of CPU.
  1393. If there is still a rare use case for this, a user can provide their own
  1394. fnmatch callback for a version that allows a larger set of wildcards.
  1395. This commit was triggered by yet another OSS-Fuzz timeout due to this.
  1396. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
  1397. Closes #2587
  1398. - checksrc: fix too long line
  1399. follow-up to e05ad5d
  1400. - [Aleks brought this change]
  1401. docs: mention HAproxy protocol "version 1"
  1402. ...as there's also a version 2.
  1403. Closes #2579
  1404. - examples/progressfunc: make it build on older libcurls
  1405. This example was changed in ce2140a8c1 to use the new microsecond based
  1406. getinfo option. This change makes it conditionally keep using the older
  1407. option so that the example still builds with older libcurl versions.
  1408. Closes #2584
  1409. - stub_gssapi: fix numerous 'unused parameter' warnings
  1410. follow-up to d9e92fd9fd1d
  1411. - [Philip Prindeville brought this change]
  1412. getinfo: add microsecond precise timers for various intervals
  1413. Provide a set of new timers that return the time intervals using integer
  1414. number of microseconds instead of floats.
  1415. The new info names are as following:
  1416. CURLINFO_APPCONNECT_TIME_T
  1417. CURLINFO_CONNECT_TIME_T
  1418. CURLINFO_NAMELOOKUP_TIME_T
  1419. CURLINFO_PRETRANSFER_TIME_T
  1420. CURLINFO_REDIRECT_TIME_T
  1421. CURLINFO_STARTTRANSFER_TIME_T
  1422. CURLINFO_TOTAL_TIME_T
  1423. Closes #2495
  1424. - openssl: acknowledge --tls-max for default version too
  1425. ... previously it only used the max setting if a TLS version was also
  1426. explicitly asked for.
  1427. Reported-by: byte_bucket
  1428. Fixes #2571
  1429. Closes #2572
  1430. - bump: start working on the pending 7.61.0
  1431. - [Dagobert Michelsen brought this change]
  1432. tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
  1433. The warning flag leads e.g. Sun Studio compiler to bail out.
  1434. Closes #2576
  1435. - schannel_verify: fix build for non-schannel
  1436. Jay Satiro (16 May 2018)
  1437. - rand: fix typo
  1438. - schannel: disable manual verify if APIs not available
  1439. .. because original MinGW and old compilers do not have the Windows API
  1440. definitions needed to support manual verification.
  1441. - [Archangel_SDY brought this change]
  1442. schannel: disable client cert option if APIs not available
  1443. Original MinGW targets Windows 2000 by default, which lacks some APIs and
  1444. definitions for this feature. Disable it if these APIs are not available.
  1445. Closes https://github.com/curl/curl/pull/2522
  1446. Version 7.60.0 (15 May 2018)
  1447. Daniel Stenberg (15 May 2018)
  1448. - RELEASE-NOTES: 7.60.0 release
  1449. - THANKS: added people from the curl 7.60.0 release
  1450. - docs/libcurl/index.html: removed
  1451. The HTML files are long gone from the dist, now remove the last HTML
  1452. file pointing to those missing files.
  1453. d
  1454. - [steini2000 brought this change]
  1455. http2: remove unused variable
  1456. Closes #2570
  1457. - [steini2000 brought this change]
  1458. http2: use easy handle of stream for logging
  1459. - gcc: disable picky gcc-8 function pointer warnings in two places
  1460. Reported-by: Rikard Falkeborn
  1461. Bug: #2560
  1462. Closes #2569
  1463. - http2: use the correct function pointer typedef
  1464. Fixes gcc-8 picky compiler warnings
  1465. Reported-by: Rikard Falkeborn
  1466. Bug: #2560
  1467. Closes #2568
  1468. - CODE_STYLE: mention return w/o parens, but sizeof with
  1469. ... and remove the github markdown syntax so that it renders better on
  1470. the web site. Also, don't use back-ticks inlined to allow the CSS to
  1471. highlight source code better.
  1472. - [Rikard Falkeborn brought this change]
  1473. examples: Fix format specifiers
  1474. Closes #2561
  1475. - [Rikard Falkeborn brought this change]
  1476. tool: Fix format specifiers
  1477. - [Rikard Falkeborn brought this change]
  1478. ntlm: Fix format specifiers
  1479. - [Rikard Falkeborn brought this change]
  1480. tests: Fix format specifiers
  1481. - [Rikard Falkeborn brought this change]
  1482. lib: Fix format specifiers
  1483. - contributors.sh: use "on github", not at
  1484. - http2: getsock fix for uploads
  1485. When there's an upload in progress, make sure to wait for the socket to
  1486. become writable.
  1487. Detected-by: steini2000 on github
  1488. Bug: #2520
  1489. Closes #2567
  1490. - pingpong: fix response cache memcpy overflow
  1491. Response data for a handle with a large buffer might be cached and then
  1492. used with the "closure" handle when it has a smaller buffer and then the
  1493. larger cache will be copied and overflow the new smaller heap based
  1494. buffer.
  1495. Reported-by: Dario Weisser
  1496. CVE: CVE-2018-1000300
  1497. Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
  1498. - http: restore buffer pointer when bad response-line is parsed
  1499. ... leaving the k->str could lead to buffer over-reads later on.
  1500. CVE: CVE-2018-1000301
  1501. Assisted-by: Max Dymond
  1502. Detected by OSS-Fuzz.
  1503. Bug: https://curl.haxx.se/docs/adv_2018-b138.html
  1504. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
  1505. Patrick Monnerat (13 May 2018)
  1506. - cookies: do not take cookie name as a parameter
  1507. RFC 6265 section 4.2.1 does not set restrictions on cookie names.
  1508. This is a follow-up to commit 7f7fcd0.
  1509. Also explicitly check proper syntax of cookie name/value pair.
  1510. New test 1155 checks that cookie names are not reserved words.
  1511. Reported-By: anshnd at github
  1512. Fixes #2564
  1513. Closes #2566
  1514. Daniel Stenberg (12 May 2018)
  1515. - smb: reject negative file sizes
  1516. Assisted-by: Max Dymond
  1517. Detected by OSS-Fuzz
  1518. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
  1519. - setup_transfer: deal with both sockets being -1
  1520. Detected by Coverity; CID 1435559. Follow-up to f8d608f38d00. It would
  1521. index the array with -1 if neither index was a socket.
  1522. - travis: add build using NSS
  1523. Closes #2558
  1524. - [Sunny Purushe brought this change]
  1525. openssl: change FILE ops to BIO ops
  1526. To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES
  1527. handling is causing problems. This fix changes the OpenSSL backend code
  1528. to use BIO functions instead of FILE I/O functions to circumvent those
  1529. problems.
  1530. Closes #2512
  1531. - travis: add a build using WolfSSL
  1532. Assisted-by: Dan Fandrich
  1533. Closes #2528
  1534. - RELEASE-NOTES: typo
  1535. - RELEASE-NOTES: synced
  1536. - [Daniel Gustafsson brought this change]
  1537. URLs: fix one more http url
  1538. This file wasn't included in commit 4af40b3646d3b09 which updated all
  1539. haxx.se http urls to https. The file was committed prior to that update,
  1540. but may have been merged after it and hence didn't get updated.
  1541. Closes #2550
  1542. - github/lock: auto-lock closed issues after 90 days of inactivity
  1543. - vtls: fix missing commas
  1544. follow-up to e66cca046cef
  1545. - vtls: use unified "supports" bitfield member in backends
  1546. ... instead of previous separate struct fields, to make it easier to
  1547. extend and change individual backends without having to modify them all.
  1548. closes #2547
  1549. - transfer: don't unset writesockfd on setup of multiplexed conns
  1550. Curl_setup_transfer() can be called to setup a new individual transfer
  1551. over a multiplexed connection so it shouldn't unset writesockfd.
  1552. Bug: #2520
  1553. Closes #2549
  1554. - [Frank Gevaerts brought this change]
  1555. configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
  1556. They are removed from the compiler flags.
  1557. This ensures that make dependency tracking will force a rebuild whenever
  1558. configure --enable-debug or --enable-curldebug changes.
  1559. Closes #2548
  1560. - http: don't set the "rewind" flag when not uploading anything
  1561. It triggers an assert.
  1562. Detected by OSS-Fuzz
  1563. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
  1564. Closes #2546
  1565. - travis: add an mbedtls build
  1566. Closes #2531
  1567. - configure: only check for CA bundle for file-using SSL backends
  1568. When only building with SSL backends that don't use the CA bundle file
  1569. (by default), skip the check.
  1570. Fixes #2543
  1571. Fixes #2180
  1572. Closes #2545
  1573. - ssh-libssh.c: fix left shift compiler warning
  1574. ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to
  1575. represent, but 'int' only has 32 bits [-Wshift-overflow=]
  1576. 'len' will never be that big anyway so I converted the run-time check to
  1577. a regular assert.
  1578. - [Stephan Mühlstrasser brought this change]
  1579. URL: fix ASCII dependency in strcpy_url and strlen_url
  1580. Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the
  1581. changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of
  1582. the problem that strcpy_url() was modified unilaterally without also
  1583. modifying strlen_url(). As a consequence strcpy_url() was again
  1584. depending on ASCII encoding.
  1585. This change fixes strlen_url() and strcpy_url() in parallel to use a
  1586. common host-encoding independent criterion for deciding whether an URL
  1587. character must be %-escaped.
  1588. Closes #2535
  1589. - [Denis Ollier brought this change]
  1590. docs: remove extraneous commas in man pages
  1591. Closes #2544
  1592. - RELEASE-NOTES: synced
  1593. - Revert "TODO: remove configure --disable-pthreads"
  1594. This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3.
  1595. --disable-pthreads can be used to disable pthreads and get the threaded
  1596. resolver to use the windows threading when building with mingw.
  1597. - vtls: don't define MD5_DIGEST_LENGTH for wolfssl
  1598. ... as it defines it (too)
  1599. - TODO: remove configure --disable-pthreads
  1600. Jay Satiro (2 May 2018)
  1601. - [David Garske brought this change]
  1602. wolfssl: Fix non-blocking connect
  1603. Closes https://github.com/curl/curl/pull/2542
  1604. Daniel Stenberg (30 Apr 2018)
  1605. - CURLOPT_URL.3: add ENCODING section [ci skip]
  1606. Feedback-by: Michael Kilburn
  1607. - KNOWN_BUGS: Client cert with Issuer DN differs between backends
  1608. Closes #1411
  1609. - KNOWN_BUGS: Passive transfer tries only one IP address
  1610. Closes #1508
  1611. - KNOWN_BUGS: --upload-file . hang if delay in STDIN
  1612. Closes #2051
  1613. - KNOWN_BUGS: Connection information when using TCP Fast Open
  1614. Closes #1332
  1615. - travis: enable libssh2 on both macos and Linux
  1616. It seems to not be detected by default anymore (which is a bug I
  1617. believe)
  1618. Closes #2541
  1619. - TODO: Support the clienthello extension
  1620. Closes #2299
  1621. - TODO: CLOEXEC
  1622. Closes #2252
  1623. - tests: provide 'manual' as a feature to optionally require
  1624. ... and make test 1026 rely on that feature so that --disable-manual
  1625. builds don't cause test failures.
  1626. Reported-by: Max Dymond and Anders Roxell
  1627. Fixes #2533
  1628. Closes #2540
  1629. - CURLINFO_PROTOCOL.3: mention the existing defined names
  1630. Jay Satiro (27 Apr 2018)
  1631. - [Daniel Gustafsson brought this change]
  1632. cookies: remove unused macro
  1633. Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused,
  1634. so remove as it's not part of the published API.
  1635. Closes https://github.com/curl/curl/pull/2537
  1636. Daniel Stenberg (27 Apr 2018)
  1637. - [Daniel Gustafsson brought this change]
  1638. checksrc: force indentation of lines after an else
  1639. This extends the INDENTATION case to also handle 'else' statements
  1640. and require proper indentation on the following line. Also fixes the
  1641. offending cases found in the codebase.
  1642. Closes #2532
  1643. - http2: fix null pointer dereference in http2_connisdead
  1644. This function can get called on a connection that isn't setup enough to
  1645. have the 'recv_underlying' function pointer initialized so it would try
  1646. to call the NULL pointer.
  1647. Reported-by: Dario Weisser
  1648. Follow-up to db1b2c7fe9b093f8 (never shipped in a release)
  1649. Closes #2536
  1650. - http2: get rid of another strstr()
  1651. Follow-up to 1514c44655e12e: replace another strstr() call done on a
  1652. buffer that might not be zero terminated - with a memchr() call, even if
  1653. we know the substring will be found.
  1654. Assisted-by: Max Dymond
  1655. Detected by OSS-Fuzz
  1656. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
  1657. Closes #2534
  1658. - cyassl: adapt to libraries without TLS 1.0 support built-in
  1659. WolfSSL doesn't enable it by default anymore
  1660. - configure: provide --with-wolfssl as an alias for --with-cyassl
  1661. - RELEASE-NOTES: synced
  1662. - [Daniel Gustafsson brought this change]
  1663. os400.c: fix ASSIGNWITHINCONDITION checksrc warnings
  1664. All occurrences of assignment within conditional expression in
  1665. os400sys.c rewritten into two steps: first assignment and then the check
  1666. on the success of the assignment. Also adjust related incorrect brace
  1667. positions to match project indentation style.
  1668. This was spurred by seeing "if((inp = input_token))", but while in there
  1669. all warnings were fixed.
  1670. There should be no functional change from these changes.
  1671. Closes #2525
  1672. - [Daniel Gustafsson brought this change]
  1673. cookies: ensure that we have cookies before writing jar
  1674. The jar should be written iff there are cookies, so ensure that we still
  1675. have cookies after expiration to avoid creating an empty file.
  1676. Closes #2529
  1677. - strcpy_url: only %-encode values >= 0x80
  1678. OSS-Fuzz detected
  1679. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
  1680. Broke in dd7521bcc1b7
  1681. - mime: avoid NULL pointer dereference risk
  1682. Coverity detected, CID 1435120
  1683. Closes #2527
  1684. - [Stephan Mühlstrasser brought this change]
  1685. ctype: restore character classification for non-ASCII platforms
  1686. With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic
  1687. character classification macros and functions were introduced in
  1688. curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on
  1689. non-ASCII, e.g. EBCDIC platforms. This change restores the previous set
  1690. of character classification macros when CURL_DOES_CONVERSIONS is
  1691. defined.
  1692. Closes #2494
  1693. - ftplistparser: keep state between invokes
  1694. Fixes FTP wildcard parsing when done over a number of read buffers.
  1695. Regression from f786d1f14
  1696. Reported-by: wncboy on github
  1697. Fixes #2445
  1698. Closes #2526
  1699. - examples/http2-upload: expand buffer to avoid silly warning
  1700. http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated
  1701. writing between 2 and 11 bytes into a region of size between 8 and 17
  1702. - examples/sftpuploadresume: typecast fseek argument to long
  1703. /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long
  1704. int' from 'curl_off_t {aka long long int}' may alter its value
  1705. - Revert "ftplistparser: keep state between invokes"
  1706. This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934.
  1707. Caused fuzzer problems on travis not seen when this was a PR!
  1708. - Curl_memchr: zero length input can't match
  1709. Avoids undefined behavior.
  1710. Reported-by: Geeknik Labs
  1711. - ftplistparser: keep state between invokes
  1712. Fixes FTP wildcard parsing when doing over a number of read buffers.
  1713. Regression from f786d1f14
  1714. Reported-by: wncboy on github
  1715. Fixes #2445
  1716. Closes #2519
  1717. - ftplistparser: renamed some members and variables
  1718. ... to make them better spell out what they're for.
  1719. - RELEASE-NOTES: synced
  1720. - [Christian Schmitz brought this change]
  1721. curl_global_sslset: always provide available backends
  1722. Closes #2499
  1723. - http2: convert an assert to run-time check
  1724. Fuzzing has proven we can reach code in on_frame_recv with status_code
  1725. not having been set, so let's detect that in run-time (instead of with
  1726. assert) and error error accordingly.
  1727. (This should no longer happen with the latest nghttp2)
  1728. Detected by OSS-Fuzz
  1729. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
  1730. Closes #2514
  1731. - curl.1: clarify that options and URLs can be mixed
  1732. Fixes #2515
  1733. Closes #2517
  1734. Jay Satiro (23 Apr 2018)
  1735. - [Archangel_SDY brought this change]
  1736. CURLOPT_SSLCERT.3: improve WinSSL-specific usage info
  1737. Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
  1738. Closes https://github.com/curl/curl/pull/2504
  1739. - [Archangel_SDY brought this change]
  1740. schannel: fix build error on targets <= XP
  1741. - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't
  1742. support the latter.
  1743. Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
  1744. Closes https://github.com/curl/curl/pull/2504
  1745. Daniel Stenberg (23 Apr 2018)
  1746. - Revert "ftplistparser: keep state between invokes"
  1747. This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9.
  1748. Unfortunately this fix introduces memory leaks I've not been able to fix
  1749. in several days. Reverting this for now to get the leaks fixed.
  1750. Jay Satiro (21 Apr 2018)
  1751. - tool_help: clarify --max-time unit of time is seconds
  1752. Before:
  1753. -m, --max-time <time> Maximum time allowed for the transfer
  1754. After:
  1755. -m, --max-time <seconds> Maximum time allowed for the transfer
  1756. Daniel Stenberg (20 Apr 2018)
  1757. - http2: handle GOAWAY properly
  1758. When receiving REFUSED_STREAM, mark the connection for close and retry
  1759. streams accordingly on another/fresh connection.
  1760. Reported-by: Terry Wu
  1761. Fixes #2416
  1762. Fixes #1618
  1763. Closes #2510
  1764. - http2: clear the "drain counter" when a stream is closed
  1765. This fixes the notorious "httpc->drain_total >= data->state.drain"
  1766. assert.
  1767. Reported-by: Anders Bakken
  1768. Fixes #1680
  1769. Closes #2509
  1770. - http2: avoid strstr() on data not zero terminated
  1771. It's not strictly clear if the API contract allows us to call strstr()
  1772. on a string that isn't zero terminated even when we know it will find
  1773. the substring, and clang's ASAN check dislikes us for it.
  1774. Also added a check of the return code in case it fails, even if I can't
  1775. think of a situation how that can trigger.
  1776. Detected by OSS-Fuzz
  1777. Closes #2513
  1778. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
  1779. - [Stephan Mühlstrasser brought this change]
  1780. openssl: fix subjectAltName check on non-ASCII platforms
  1781. Curl_cert_hostcheck operates with the host character set, therefore the
  1782. ASCII subjectAltName string retrieved with OpenSSL must be converted to
  1783. the host encoding before comparison.
  1784. Closes #2493
  1785. Jay Satiro (20 Apr 2018)
  1786. - openssl: Add support for OpenSSL 1.1.1 verbose-mode trace messages
  1787. - Support handling verbose-mode trace messages of type
  1788. SSL3_RT_INNER_CONTENT_TYPE, SSL3_MT_ENCRYPTED_EXTENSIONS,
  1789. SSL3_MT_END_OF_EARLY_DATA, SSL3_MT_KEY_UPDATE, SSL3_MT_NEXT_PROTO,
  1790. SSL3_MT_MESSAGE_HASH
  1791. Reported-by: iz8mbw@users.noreply.github.com
  1792. Fixes https://github.com/curl/curl/issues/2403
  1793. Daniel Stenberg (19 Apr 2018)
  1794. - ftplistparser: keep state between invokes
  1795. Regression from f786d1f14
  1796. Reported-by: wncboy on github
  1797. Fixes #2445
  1798. Closes #2508
  1799. - detect_proxy: only show proxy use if it had contents
  1800. - http2: handle on_begin_headers() called more than once
  1801. This triggered an assert if called more than once in debug mode (and a
  1802. memory leak if not debug build). With the right sequence of HTTP/2
  1803. headers incoming it can happen.
  1804. Detected by OSS-Fuzz
  1805. Closes #2507
  1806. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
  1807. Jay Satiro (18 Apr 2018)
  1808. - [Dan McNulty brought this change]
  1809. schannel: add support for CURLOPT_CAINFO
  1810. - Move verify_certificate functionality in schannel.c into a new
  1811. file called schannel_verify.c. Additionally, some structure defintions
  1812. from schannel.c have been moved to schannel.h to allow them to be
  1813. used in schannel_verify.c.
  1814. - Make verify_certificate functionality for Schannel available on
  1815. all versions of Windows instead of just Windows CE. verify_certificate
  1816. will be invoked on Windows CE or when the user specifies
  1817. CURLOPT_CAINFO and CURLOPT_SSL_VERIFYPEER.
  1818. - In verify_certificate, create a custom certificate chain engine that
  1819. exclusively trusts the certificate store backed by the CURLOPT_CAINFO
  1820. file.
  1821. - doc updates of --cacert/CAINFO support for schannel
  1822. - Use CERT_NAME_SEARCH_ALL_NAMES_FLAG when invoking CertGetNameString
  1823. when available. This implements a TODO in schannel.c to improve
  1824. handling of multiple SANs in a certificate. In particular, all SANs
  1825. will now be searched instead of just the first name.
  1826. - Update tool_operate.c to not search for the curl-ca-bundle.crt file
  1827. when using Schannel to maintain backward compatibility. Previously,
  1828. any curl-ca-bundle.crt file found in that search would have been
  1829. ignored by Schannel. But, with CAINFO support, the file found by
  1830. that search would have been used as the certificate store and
  1831. could cause issues for any users that have curl-ca-bundle.crt in
  1832. the search path.
  1833. - Update url.c to not set the build time CURL_CA_BUNDLE if the selected
  1834. SSL backend is Schannel. We allow setting CA location for schannel
  1835. only when explicitly specified by the user via CURLOPT_CAINFO /
  1836. --cacert.
  1837. - Add new test cases 3000 and 3001. These test cases check that the first
  1838. and last SAN, respectively, matches the connection hostname. New test
  1839. certificates have been added for these cases. For 3000, the certificate
  1840. prefix is Server-localhost-firstSAN and for 3001, the certificate
  1841. prefix is Server-localhost-secondSAN.
  1842. - Remove TODO 15.2 (Add support for custom server certificate
  1843. validation), this commit addresses it.
  1844. Closes https://github.com/curl/curl/pull/1325
  1845. - schannel: fix warning
  1846. - Fix warning 'integer from pointer without a cast' on 3rd arg in
  1847. CertOpenStore. The arg type HCRYPTPROV may be a pointer or integer
  1848. type of the same size.
  1849. Follow-up to e35b025.
  1850. Caught by Marc's CI builds.
  1851. - [Jakub Wilk brought this change]
  1852. docs: fix typos
  1853. Closes https://github.com/curl/curl/pull/2503
  1854. Daniel Stenberg (17 Apr 2018)
  1855. - RELEASE-NOTES: synced
  1856. Jay Satiro (17 Apr 2018)
  1857. - [Kees Dekker brought this change]
  1858. winbuild: Support custom devel paths for each dependency
  1859. - Support custom devel paths for c-ares, mbedTLS, nghttp2, libSSH2,
  1860. OpenSSL and zlib. Respectively: CARES_PATH, MBEDTLS_PATH,
  1861. NGHTTP2_PATH, SSH2_PATH, SSL_PATH and ZLIB_PATH.
  1862. - Use lib.exe for making the static library instead of link.exe /lib.
  1863. The latter is undocumented and could cause problems as noted in the
  1864. comments.
  1865. - Remove a dangling URL that no longer worked. (I was not able to find
  1866. the IDN download at MSDN/microsoft.com, so it seems to be removed.)
  1867. - Remove custom override for release-ssh2-ssl-dll-zlib configuration.
  1868. Nobody knows why it was there and as far as we can see is unnecessary.
  1869. Closes https://github.com/curl/curl/pull/2474
  1870. Daniel Stenberg (17 Apr 2018)
  1871. - [Jess brought this change]
  1872. README.md: add backers and sponsors
  1873. Closes #2484
  1874. - [Archangel_SDY brought this change]
  1875. schannel: add client certificate authentication
  1876. Users can now specify a client certificate in system certificates store
  1877. explicitly using expression like `--cert "CurrentUser\MY\<thumbprint>"`
  1878. Closes #2376
  1879. Marcel Raad (16 Apr 2018)
  1880. - [toughengineer brought this change]
  1881. ntlm_sspi: fix authentication using Credential Manager
  1882. If you pass empty user/pass asking curl to use Windows Credential
  1883. Storage (as stated in the docs) and it has valid credentials for the
  1884. domain, e.g.
  1885. curl -v -u : --ntlm example.com
  1886. currently authentication fails.
  1887. This change fixes it by providing proper SPN string to the SSPI API
  1888. calls.
  1889. Fixes https://github.com/curl/curl/issues/1622
  1890. Closes https://github.com/curl/curl/pull/1660
  1891. Daniel Stenberg (16 Apr 2018)
  1892. - configure: keep LD_LIBRARY_PATH changes local
  1893. ... only set it when we actually have to run tests to reduce its impact
  1894. on for example build commands etc.
  1895. Fixes #2490
  1896. Closes #2492
  1897. Reported-by: Dmitry Mikhirev
  1898. Marcel Raad (16 Apr 2018)
  1899. - urldata: make service names unconditional
  1900. The ifdefs have become quite long. Also, the condition for the
  1901. definition of CURLOPT_SERVICE_NAME and for setting it from
  1902. CURLOPT_SERVICE_NAME have diverged. We will soon also need the two
  1903. options for NTLM, at least when using SSPI, for
  1904. https://github.com/curl/curl/pull/1660.
  1905. Just make the definitions unconditional to make that easier.
  1906. Closes https://github.com/curl/curl/pull/2479
  1907. Daniel Stenberg (16 Apr 2018)
  1908. - test1148: tolerate progress updates better
  1909. Fixes #2446
  1910. Closes #2488
  1911. - [Christian Schmitz brought this change]
  1912. ssh: show libSSH2 error code when closing fails
  1913. Closes #2500
  1914. Jay Satiro (15 Apr 2018)
  1915. - [Daniel Gustafsson brought this change]
  1916. vauth: Fix typo
  1917. Address various spellings of "credentials".
  1918. Closes https://github.com/curl/curl/pull/2496
  1919. - [Dagobert Michelsen brought this change]
  1920. system.h: Add sparcv8plus to oracle/sunpro 32-bit detection
  1921. With specific compiler options selecting the arch like -xarch=sparc on
  1922. newer compilers like Oracle Studio 12.4 there is no definition of
  1923. __sparcv8 but __sparcv8plus which means the V9 ISA, but limited to the
  1924. 32ÎíÎñbit subset defined by the V8plus ISA specification, without the
  1925. Visual Instruction Set (VIS), and without other implementation-specific
  1926. ISA extensions. So it should be the same as __sparcv8.
  1927. Closes https://github.com/curl/curl/pull/2491
  1928. - [Daniel Gustafsson brought this change]
  1929. checksrc: Fix typo
  1930. Fix typo in "semicolon" spelling and remove stray tab character.
  1931. Closes https://github.com/curl/curl/pull/2498
  1932. - [Daniel Gustafsson brought this change]
  1933. all: Refactor malloc+memset to use calloc
  1934. When a zeroed out allocation is required, use calloc() rather than
  1935. malloc() followed by an explicit memset(). The result will be the
  1936. same, but using calloc() everywhere increases consistency in the
  1937. codebase and avoids the risk of subtle bugs when code is injected
  1938. between malloc and memset by accident.
  1939. Closes https://github.com/curl/curl/pull/2497
  1940. Daniel Stenberg (12 Apr 2018)
  1941. - duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
  1942. Verified in test 1502 now
  1943. Fixes #2485
  1944. Closes #2486
  1945. Reported-by: Ernst Sjöstrand
  1946. - mailmap: add a monnerat fixup [ci skip]
  1947. - proxy: show getenv proxy use in verbose output
  1948. ... to aid debugging etc as it sometimes isn't immediately obvious why
  1949. curl uses or doesn't use a proxy.
  1950. Inspired by #2477
  1951. Closes #2480
  1952. - travis: build libpsl and make builds use it
  1953. closes #2471
  1954. - travis: bump to clang 6 and gcc 7
  1955. Extra-eye-on-this-by: Marcel Raad
  1956. Closes #2478
  1957. Marcel Raad (10 Apr 2018)
  1958. - travis: use trusty for coverage build
  1959. This works now and precise is in the process of being decommissioned.
  1960. Closes https://github.com/curl/curl/pull/2476
  1961. - lib: silence null-dereference warnings
  1962. In debug mode, MingGW-w64's GCC 7.3 issues null-dereference warnings
  1963. when dereferencing pointers after DEBUGASSERT-ing that they are not
  1964. NULL.
  1965. Fix this by removing the DEBUGASSERTs.
  1966. Suggested-by: Daniel Stenberg
  1967. Ref: https://github.com/curl/curl/pull/2463
  1968. - [Kees Dekker brought this change]
  1969. winbuild: fix URL
  1970. Follow up on https://github.com/curl/curl/pull/2472.
  1971. Now using en-us instead of nl-nl as language code in the URL.
  1972. Closes https://github.com/curl/curl/pull/2475
  1973. Daniel Stenberg (9 Apr 2018)
  1974. - [Kees Dekker brought this change]
  1975. winbuild: updated the documentation
  1976. The setenv command no longer exists and visual studio build prompts got
  1977. changed. Used Visual Studio 2015/2017 as reference.
  1978. Closes #2472
  1979. - test1136: fix cookie order after commit c990eadd1277
  1980. - build: cleanup to fix clang warnings/errors
  1981. unit1309 and vtls/gtls: error: arithmetic on a null pointer treated as a
  1982. cast from integer to pointer is a GNU extension
  1983. Reported-by: Rikard Falkeborn
  1984. Fixes #2466
  1985. Closes #2468
  1986. Jay Satiro (7 Apr 2018)
  1987. - examples/sftpuploadresmue: Fix Windows large file seek
  1988. - Use _fseeki64 instead of fseek (long) to seek curl_off_t in Windows.
  1989. - Use CURL_FORMAT_CURL_OFF_T specifier instead of %ld to print
  1990. curl_off_t.
  1991. Caught by Marc's CI builds.
  1992. Daniel Stenberg (7 Apr 2018)
  1993. - curl_setup: provide a CURL_SA_FAMILY_T type if none exists
  1994. ... and use this type instead of 'sa_family_t' in the code since several
  1995. platforms don't have it.
  1996. Closes #2463
  1997. - [Eric Gallager brought this change]
  1998. build: add picky compiler warning flags for gcc 6 and 7
  1999. - configure: detect sa_family_t
  2000. Jay Satiro (7 Apr 2018)
  2001. - [Stefan Agner brought this change]
  2002. tool_operate: Fix retry on FTP 4xx to ignore other protocols
  2003. Only treat response code as FTP response codes in case the
  2004. protocol type is FTP.
  2005. This fixes an issue where an HTTP download was treated as FTP
  2006. in case libcurl returned with 33. This happens when the
  2007. download has already finished and the server responses 416:
  2008. HTTP/1.1 416 Requested Range Not Satisfiable
  2009. This should not be treated as an FTP error.
  2010. Fixes #2464
  2011. Closes #2465
  2012. Daniel Stenberg (6 Apr 2018)
  2013. - hash: calculate sizes with size_t instead of longs
  2014. ... since they return size_t anyway!
  2015. closes #2462
  2016. - RELEASE-NOTES: synced
  2017. - [Jay Satiro brought this change]
  2018. build-openssl.bat: Refer to VS2017 as VC14.1 instead of VC15
  2019. .. and do the same for build-wolfssl.bat.
  2020. Because MS calls it VC14.1.
  2021. Closes https://github.com/curl/curl/pull/2189
  2022. - [Kees Dekker brought this change]
  2023. winbuild: make the clean target work without build-type
  2024. Due to the check in Makefile.vc and MakefileBuild.vc, no make call can
  2025. be invoked unless a build-type was specified. However, a clean target
  2026. only existed when a build type was specified. As a result, the clean
  2027. target was unreachable. Made clean target unconditional.
  2028. Closes #2455
  2029. - [patelvivekv1993 brought this change]
  2030. build-openssl.bat: allow custom paths for VS and perl
  2031. Fixes #2430
  2032. Closes #2457
  2033. - [Laurie Clark-Michalek brought this change]
  2034. FTP: allow PASV on IPv6 connections when a proxy is being used
  2035. In the situation of a client connecting to an FTP server using an IPv6
  2036. tunnel proxy, the connection info will indicate that the connection is
  2037. IPv6. However, because the server behing the proxy is IPv4, it is
  2038. permissable to attempt PSV mode. In the case of the FTP server being
  2039. IPv4 only, EPSV will always fail, and with the current logic curl will
  2040. be unable to connect to the server, as the IPv6 fwdproxy causes curl to
  2041. think that EPSV is impossible.
  2042. Closes #2432
  2043. - [Jon DeVree brought this change]
  2044. file: restore old behavior for file:////foo/bar URLs
  2045. curl 7.57.0 and up interpret this according to Appendix E.3.2 of RFC
  2046. 8089 but then returns an error saying this is unimplemented. This is
  2047. actually a regression in behavior on both Windows and Unix.
  2048. Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
  2049. then passed to the relevant OS API. This means that the behavior of this
  2050. case is actually OS dependent.
  2051. The Unix path resolution rules say that the OS must handle swallowing
  2052. the extra "/" and so this path is the same as "/foo/bar"
  2053. The Windows path resolution rules say that this is a UNC path and
  2054. automatically handles the SMB access for the program. So curl on Windows
  2055. was already doing Appendix E.3.2 without any special code in curl.
  2056. Regression
  2057. Closes #2438
  2058. - [Gaurav Malhotra brought this change]
  2059. Revert "openssl: Don't add verify locations when verifypeer==0"
  2060. This reverts commit dc85437736e1fc90e689bb1f6c51c8f1aa9430eb.
  2061. libcurl (with the OpenSSL backend) performs server certificate verification
  2062. even if verifypeer == 0 and the verification result is available using
  2063. CURLINFO_SSL_VERIFYRESULT. The commit that is being reverted caused the
  2064. CURLINFO_SSL_VERIFYRESULT to not have useful information for the
  2065. verifypeer == 0 use case (it would always have
  2066. X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY).
  2067. Closes #2451
  2068. - [Wyatt O'Day brought this change]
  2069. tls: fix mbedTLS 2.7.0 build + handle sha256 failures
  2070. (mbedtls 2.70 compiled with MBEDTLS_DEPRECATED_REMOVED)
  2071. Closes #2453
  2072. - [Lauri Kasanen brought this change]
  2073. cookie: case-insensitive hashing for the domains
  2074. closes #2458
  2075. Patrick Monnerat (4 Apr 2018)
  2076. - cookie: fix and optimize 2nd top level domain name extraction
  2077. This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
  2078. is processed.
  2079. test46 updated to cover this case.
  2080. Follow-up to commit c990ead.
  2081. Ref: https://github.com/curl/curl/pull/2440
  2082. Daniel Stenberg (4 Apr 2018)
  2083. - openssl: provide defines for argument typecasts to build warning-free
  2084. ... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
  2085. - [Bernard Spil brought this change]
  2086. openssl: fix build with LibreSSL 2.7
  2087. - LibreSSL 2.7 implements (most of) OpenSSL 1.1 API
  2088. Fixes #2319
  2089. Closes #2447
  2090. Closes #2448
  2091. Signed-off-by: Bernard Spil <brnrd@FreeBSD.org>
  2092. - [Lauri Kasanen brought this change]
  2093. cookie: store cookies per top-level-domain-specific hash table
  2094. This makes libcurl handle thousands of cookies much better and speedier.
  2095. Closes #2440
  2096. - [Lauri Kasanen brought this change]
  2097. cookies: when reading from a file, only remove_expired once
  2098. This drops the cookie load time for 8k cookies from 178ms to 15ms.
  2099. Closes #2441
  2100. - test1148: set a fixed locale for the test
  2101. ...as otherwise it might use a different decimal sign.
  2102. Bug: #2436
  2103. Reported-by: Oumph on github
  2104. Jay Satiro (31 Mar 2018)
  2105. - docs: fix CURLINFO_*_T examples use of CURL_FORMAT_CURL_OFF_T
  2106. - Put a percent sign before each CURL_FORMAT_CURL_OFF_T in printf.
  2107. For example "%" CURL_FORMAT_CURL_OFF_T becomes %lld or similar.
  2108. Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
  2109. Reported-by: David L.
  2110. Sergei Nikulov (27 Mar 2018)
  2111. - [Michał Janiszewski brought this change]
  2112. cmake: Add advapi32 as explicit link library for win32
  2113. ARM targets need advapi32 explicitly.
  2114. Closes #2363
  2115. Daniel Stenberg (27 Mar 2018)
  2116. - TODO: connection cache sharing is now supporte
  2117. Jay Satiro (26 Mar 2018)
  2118. - travis: enable apt retry on fail
  2119. This is a workaround for an unsolved travis issue that is causing CI
  2120. instances to sporadically fail due to 'unable to connect' issues during
  2121. apt stage.
  2122. Ref: https://github.com/travis-ci/travis-ci/issues/8507
  2123. Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
  2124. Michael Kaufmann (26 Mar 2018)
  2125. - runtests.pl: fix warning 'use of uninitialized value'
  2126. follow-up to a9a7b60
  2127. Closes #2428
  2128. Daniel Stenberg (24 Mar 2018)
  2129. - gitignore: ignore more generated files
  2130. - threaded resolver: track resolver time and set suitable timeout values
  2131. In order to make curl_multi_timeout() return suitable "sleep" times even
  2132. when there's no socket to wait for while the name is being resolved in a
  2133. helper thread.
  2134. It will increases the timeouts as time passes.
  2135. Closes #2419
  2136. - [Howard Chu brought this change]
  2137. openldap: fix for NULL return from ldap_get_attribute_ber()
  2138. Closes #2399
  2139. GitHub (22 Mar 2018)
  2140. - [Sergei Nikulov brought this change]
  2141. travis-ci: enable -Werror for CMake builds (#2418)
  2142. - [Sergei Nikulov brought this change]
  2143. cmake: avoid warn-as-error during config checks (#2411)
  2144. - Move the CURL_WERROR option processing after the configuration checks
  2145. to avoid failures in case of warnings during the configuration checks.
  2146. This is a partial fix for #2358
  2147. - [Sergei Nikulov brought this change]
  2148. timeval: remove compilation warning by casting (#2417)
  2149. This is fixes #2358
  2150. Daniel Stenberg (22 Mar 2018)
  2151. - http2: read pending frames (including GOAWAY) in connection-check
  2152. If a connection has received a GOAWAY frame while not being used, the
  2153. function now reads frames off the connection before trying to reuse it
  2154. to avoid reusing connections the server has told us not to use.
  2155. Reported-by: Alex Baines
  2156. Fixes #1967
  2157. Closes #2402
  2158. - [Bas van Schaik brought this change]
  2159. CI: add lgtm.yml for tweaking lgtm.com analysis
  2160. Closes #2414
  2161. - CURLINFO_SSL_VERIFYRESULT.3: fix the example, add some text
  2162. Reported-by: Michal Trybus
  2163. Fixes #2400
  2164. - TODO: expand ~/ in config files
  2165. Closes #2317
  2166. - cookie.d: mention that "-" as filename means stdin
  2167. Reported-by: Dongliang Mu
  2168. Fixes #2410
  2169. - CURLINFO_COOKIELIST.3: made the example not leak memory
  2170. Reported-by: Muz Dima
  2171. - vauth/cleartext: fix integer overflow check
  2172. Make the integer overflow check not rely on the undefined behavior that
  2173. a size_t wraps around on overflow.
  2174. Detected by lgtm.com
  2175. Closes #2408
  2176. - lib/curl_path.h: add #ifdef header guard
  2177. Detected by lgtm.com
  2178. - vauth/ntlm.h: fix the #ifdef header guard
  2179. Detected by lgtm.com
  2180. Jay Satiro (20 Mar 2018)
  2181. - examples/hiperfifo: checksrc compliance
  2182. Daniel Stenberg (19 Mar 2018)
  2183. - [Nikos Tsipinakis brought this change]
  2184. parsedate: support UT timezone
  2185. RFC822 section 5.2 mentions Universal Time, 'UT', to be synonymous with
  2186. GMT.
  2187. Closes #2401
  2188. - RELEASE-NOTES: synced
  2189. - [Don brought this change]
  2190. cmake: add support for brotli
  2191. Currently CMake cannot detect Brotli support. This adds detection of the
  2192. libraries and associated header files. It also adds this to the
  2193. generated config.
  2194. Closes #2392
  2195. - [Chris Araman brought this change]
  2196. darwinssl: fix iOS build
  2197. Patrick Monnerat (18 Mar 2018)
  2198. - ILE/RPG binding: Add CURLOPT_HAPROXYPROTOCOL/Fix CURLOPT_DNS_SHUFFLE_ADDRESSES
  2199. Daniel Stenberg (17 Mar 2018)
  2200. - [Rick Deist brought this change]
  2201. resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES
  2202. This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
  2203. shuffling of IP addresses returned for a hostname when there is more
  2204. than one. This is useful when the application knows that a round robin
  2205. approach is appropriate and is willing to accept the consequences of
  2206. potentially discarding some preference order returned by the system's
  2207. implementation.
  2208. Closes #1694
  2209. - add_handle/easy_perform: clear errorbuffer on start if set
  2210. To offer applications a more defined behavior, we clear the buffer as
  2211. early as possible.
  2212. Assisted-by: Jay Satiro
  2213. Fixes #2190
  2214. Closes #2377
  2215. - [Lawrence Matthews brought this change]
  2216. CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol
  2217. Add --haproxy-protocol for the command line tool
  2218. Closes #2162
  2219. - curl_version_info.3: fix ssl_version description
  2220. Reported-by: Vincas Razma
  2221. Fixes #2364
  2222. - multi: improved pending transfers handling => improved performance
  2223. When a transfer is requested to get done and it is put in the pending
  2224. queue when limited by number of connections, total or per-host, libcurl
  2225. would previously very aggressively retry *ALL* pending transfers to get
  2226. them transferring. That was very time consuming.
  2227. By reducing the aggressiveness in how pending are being retried, we
  2228. waste MUCH less time on putting transfers back into pending again.
  2229. Some test cases got a factor 30(!) speed improvement with this change.
  2230. Reported-by: Cyril B
  2231. Fixes #2369
  2232. Closes #2383
  2233. - pause: when changing pause state, update socket state
  2234. Especially unpausing a transfer might have to move the socket back to the
  2235. "currently used sockets" hash to get monitored. Otherwise it would never get
  2236. any more data and get stuck. Easily triggered with pausing using the
  2237. multi_socket API.
  2238. Reported-by: Philip Prindeville
  2239. Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
  2240. Fixes #2393
  2241. Closes #2391
  2242. - [Philip Prindeville brought this change]
  2243. examples/hiperfifo.c: improved
  2244. * use member struct event’s instead of pointers to alloc’d struct
  2245. events
  2246. * simplify the cases for the mcode_or_die() function via macros;
  2247. * make multi_timer_cb() actually do what the block comment says it
  2248. should;
  2249. * accept a “stop” command on the FIFO to shut down the service;
  2250. * use cleaner notation for unused variables than the (void) hack;
  2251. * allow following redirections (304’s);
  2252. - rate-limit: use three second window to better handle high speeds
  2253. Due to very frequent updates of the rate limit "window", it could
  2254. attempt to rate limit within the same milliseconds and that then made
  2255. the calculations wrong, leading to it not behaving correctly on very
  2256. fast transfers.
  2257. This new logic updates the rate limit "window" to be no shorter than the
  2258. last three seconds and only updating the timestamps for this when
  2259. switching between the states TOOFAST/PERFORM.
  2260. Reported-by: 刘佩东
  2261. Fixes #2386
  2262. Closes #2388
  2263. - [luz.paz brought this change]
  2264. cleanup: misc typos in strings and comments
  2265. Found via `codespell`
  2266. Closes #2389
  2267. - RELEASE-NOTES: toward 7.60.0
  2268. - [Kobi Gurkan brought this change]
  2269. http2: fixes typo
  2270. Closes #2387
  2271. - user-agent.d:: mention --proxy-header as well
  2272. Bug: https://github.com/curl/curl/issues/2381
  2273. - transfer: make HTTP without headers count correct body size
  2274. This is what "HTTP/0.9" basically looks like.
  2275. Reported on IRC
  2276. Closes #2382
  2277. - test1208: marked flaky
  2278. It fails somewhere between every 3rd to 10th travis-CI run
  2279. - SECURITY-PROCESS: mention how we write/add advisories
  2280. - [dasimx brought this change]
  2281. FTP: fix typo in recursive callback detection for seeking
  2282. Fixes #2380
  2283. Version 7.59.0 (13 Mar 2018)
  2284. Daniel Stenberg (13 Mar 2018)
  2285. - release: 7.59.0
  2286. Kamil Dudka (13 Mar 2018)
  2287. - tests/.../spnego.py: fix identifier typo
  2288. Detected by Coverity Analysis:
  2289. Error: IDENTIFIER_TYPO:
  2290. curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
  2291. * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
  2292. * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
  2293. curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
  2294. curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
  2295. curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
  2296. curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
  2297. Closes #2379
  2298. Daniel Stenberg (13 Mar 2018)
  2299. - CURLOPT_COOKIEFILE.3: "-" as file name means stdin
  2300. Reported-by: Aron Bergman
  2301. Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
  2302. [ci skip]
  2303. - Revert "hostip: fix compiler warning: 'variable set but not used'"
  2304. This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
  2305. The assignment really needs to be there or we risk working with an
  2306. uninitialized pointer.
  2307. Michael Kaufmann (12 Mar 2018)
  2308. - limit-rate: fix compiler warning
  2309. follow-up to 72a0f62
  2310. Viktor Szakats (12 Mar 2018)
  2311. - checksrc.pl: add -i and -m options
  2312. To sync it with changes made for the libssh2 project.
  2313. Also cleanup some whitespace.
  2314. - curl-openssl.m4: fix spelling [ci skip]
  2315. - FAQ: fix a broken URL [ci skip]
  2316. Daniel Stenberg (12 Mar 2018)
  2317. - http2: mark the connection for close on GOAWAY
  2318. ... don't consider it an error!
  2319. Assisted-by: Jay Satiro
  2320. Reported-by: Łukasz Domeradzki
  2321. Fixes #2365
  2322. Closes #2375
  2323. - credits: Viktor prefers without accent
  2324. - openldap: white space changes, fixed up the copyright years
  2325. - openldap: check ldap_get_attribute_ber() results for NULL before using
  2326. CVE-2018-1000121
  2327. Reported-by: Dario Weisser
  2328. Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
  2329. - FTP: reject path components with control codes
  2330. Refuse to operate when given path components featuring byte values lower
  2331. than 32.
  2332. Previously, inserting a %00 sequence early in the directory part when
  2333. using the 'singlecwd' ftp method could make curl write a zero byte
  2334. outside of the allocated buffer.
  2335. Test case 340 verifies.
  2336. CVE-2018-1000120
  2337. Reported-by: Duy Phan Thanh
  2338. Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
  2339. - readwrite: make sure excess reads don't go beyond buffer end
  2340. CVE-2018-1000122
  2341. Bug: https://curl.haxx.se/docs/adv_2018-b047.html
  2342. Detected by OSS-fuzz
  2343. - BUGS: updated link to security process
  2344. - limit-rate: kick in even before "limit" data has been received
  2345. ... and make sure to avoid integer overflows with really large values.
  2346. Reported-by: 刘佩东
  2347. Fixes #2371
  2348. Closes #2373
  2349. - docs/SECURITY.md -> docs/SECURITY-PROCESS.md
  2350. - SECURITY.md: call it the security process
  2351. Michael Kaufmann (11 Mar 2018)
  2352. - Curl_range: fix FTP-only and FILE-only builds
  2353. follow-up to e04417d
  2354. - hostip: fix compiler warning: 'variable set but not used'
  2355. Daniel Stenberg (11 Mar 2018)
  2356. - HTTP: allow "header;" to replace an internal header with a blank one
  2357. Reported-by: Michael Kaufmann
  2358. Fixes #2357
  2359. Closes #2362
  2360. - http2: verbose output new MAX_CONCURRENT_STREAMS values
  2361. ... as it is interesting for many users.
  2362. - SECURITY: distros' max embargo time is 14 days now
  2363. Patrick Monnerat (8 Mar 2018)
  2364. - curl tool: accept --compressed also if Brotli is enabled and zlib is not.
  2365. Daniel Stenberg (5 Mar 2018)
  2366. - THANKS + mailmap: remove duplicates, fixup full names
  2367. - [sergii.kavunenko brought this change]
  2368. WolfSSL: adding TLSv1.3
  2369. Closes #2349
  2370. - RELEASE-NOTES/THANKS: synced with cc1d4c505
  2371. - [Richard Alcock brought this change]
  2372. winbuild: prefer documented zlib library names
  2373. Check for existence of import and static libraries with documented names
  2374. and use them if they do. Fallback to previous names.
  2375. According to
  2376. https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
  2377. Windows, the names of the import library is "zdll.lib" and static
  2378. library is "zlib.lib".
  2379. closes #2354
  2380. Marcel Raad (4 Mar 2018)
  2381. - krb5: use nondeprecated functions
  2382. gss_seal/gss_unseal have been deprecated in favor of
  2383. gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
  2384. version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
  2385. 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
  2386. "GSS_Unwrap() (formerly GSS_Unseal())".
  2387. Use the nondeprecated functions to avoid deprecation warnings.
  2388. [1] https://tools.ietf.org/html/rfc2078
  2389. [2] https://tools.ietf.org/html/rfc1964
  2390. Closes https://github.com/curl/curl/pull/2356
  2391. Daniel Stenberg (4 Mar 2018)
  2392. - curl.1: mention how to add numerical IP addresses in NO_PROXY
  2393. - CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
  2394. - NO_PROXY: fix for IPv6 numericals in the URL
  2395. Added test 1265 that verifies.
  2396. Reported-by: steelman on github
  2397. Fixes #2353
  2398. Closes #2355
  2399. - build: get CFLAGS (including -werror) used for examples and tests
  2400. ... so that the CI and more detects compiler warnings/errors properly!
  2401. Closes #2337
  2402. Marcel Raad (3 Mar 2018)
  2403. - curl_ctype: fix macro redefinition warnings
  2404. On MinGW and Cygwin, GCC and clang have been complaining about macro
  2405. redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
  2406. by undefining the macros before redefining them as suggested in
  2407. https://github.com/curl/curl/pull/2269.
  2408. Suggested-by: Daniel Stenberg
  2409. Dan Fandrich (2 Mar 2018)
  2410. - unit1307: proper cleanup on OOM to fix torture tests
  2411. Marcel Raad (28 Feb 2018)
  2412. - unit1309: fix warning on Windows x64
  2413. When targeting x64, MinGW-w64 complains about conversions between
  2414. 32-bit long and 64-bit pointers. Fix this by reusing the
  2415. GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
  2416. from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
  2417. CURLX_INTEGER_TO_POINTER_CAST.
  2418. Closes https://github.com/curl/curl/pull/2341
  2419. - travis: update compiler versions
  2420. Update clang to version 3.9 and GCC to version 6.
  2421. Closes https://github.com/curl/curl/pull/2345
  2422. Daniel Stenberg (26 Feb 2018)
  2423. - docs/MANUAL: formfind.pl is not accessible on the site anymore
  2424. Fixes #2342
  2425. Jay Satiro (24 Feb 2018)
  2426. - curl-openssl.m4: Fix version check for OpenSSL 1.1.1
  2427. - Add OpenSSL 1.1.1 to the header/library version lists.
  2428. - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
  2429. which was added in that version.
  2430. Prior to this change an erroneous header/library mismatch was caused by
  2431. lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
  2432. Viktor Szakats (23 Feb 2018)
  2433. - lib655: silence compiler warning
  2434. Closes https://github.com/curl/curl/pull/2335
  2435. - spelling fixes
  2436. Detected using the `codespell` tool.
  2437. Also contains one URL protocol upgrade.
  2438. Closes https://github.com/curl/curl/pull/2334
  2439. Daniel Stenberg (24 Feb 2018)
  2440. - projects/README: remove reference to dead IDN link/package
  2441. Reported-by: Stefan Kanthak and Rod Widdowson
  2442. Fixes #2325
  2443. Jay Satiro (23 Feb 2018)
  2444. - [Rod Widdowson brought this change]
  2445. winbuild: Use macros for the names of some build utilities
  2446. - Add macros to the top of the makefile for rc and mt utilities so that
  2447. it is easier to change their locations.
  2448. Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
  2449. Reported-by: Stefan Kanthak
  2450. Closes https://github.com/curl/curl/issues/2329
  2451. Daniel Stenberg (23 Feb 2018)
  2452. - TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
  2453. - curl_share_setopt.3: connection cache is shared within multi handles
  2454. Jay Satiro (22 Feb 2018)
  2455. - [Rod Widdowson brought this change]
  2456. winbuild: Use CALL to run batch scripts
  2457. Co-authored-by: Stefan Kanthak
  2458. Closes https://github.com/curl/curl/issues/2330
  2459. Closes https://github.com/curl/curl/pull/2331
  2460. Patrick Monnerat (22 Feb 2018)
  2461. - os400: add curl_resolver_start_callback type to ILE/RPG binding
  2462. Daniel Stenberg (22 Feb 2018)
  2463. - form.d: rephrased somewhat, added two example command lines
  2464. Jay Satiro (21 Feb 2018)
  2465. - [Francisco Sedano brought this change]
  2466. url: Add option CURLOPT_RESOLVER_START_FUNCTION
  2467. - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
  2468. will be called every time before a new resolve request is started
  2469. (ie before a host is resolved) with a pointer to backend-specific
  2470. resolver data. Currently this is only useful for ares.
  2471. - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
  2472. pass to the resolver start callback.
  2473. Closes https://github.com/curl/curl/pull/2311
  2474. - lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  2475. - In keeping with the naming of our other connect timeout options rename
  2476. CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
  2477. This change adds the _MS suffix since the option expects milliseconds.
  2478. This is more intuitive for our users since other connect timeout options
  2479. that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
  2480. CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
  2481. The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
  2482. Follow-up to 2427d94 which added the lib and tool option yesterday.
  2483. Ref: https://github.com/curl/curl/pull/2260
  2484. Patrick Monnerat (21 Feb 2018)
  2485. - sasl: prefer PLAIN mechanism over LOGIN
  2486. SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
  2487. PLAIN should be used instead if available.
  2488. Daniel Stenberg (21 Feb 2018)
  2489. - RELEASE-NOTES: synced with 2427d94c6
  2490. Jay Satiro (20 Feb 2018)
  2491. - [Anders Bakken brought this change]
  2492. url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
  2493. - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
  2494. eyeball timeout value.
  2495. - Add new optval macro CURL_HET_DEFAULT to represent the default happy
  2496. eyeballs timeout value (currently 200 ms).
  2497. - Add new tool option --happy-eyeballs-timeout-ms to expose
  2498. CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
  2499. other -timeout options in the tool expect seconds not milliseconds.
  2500. Closes https://github.com/curl/curl/pull/2260
  2501. - hostip: fix 'potentially uninitialized variable' warning
  2502. Follow-up to 50d1b33.
  2503. Caught by AppVeyor.
  2504. Daniel Stenberg (20 Feb 2018)
  2505. - TODO: warning if curl version is not in sync with libcurl version
  2506. Jay Satiro (20 Feb 2018)
  2507. - [Anders Bakken brought this change]
  2508. CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
  2509. This enables users to preresolve but still take advantage of happy
  2510. eyeballs and trying multiple addresses if some are not connecting.
  2511. Ref: https://github.com/curl/curl/pull/2260
  2512. Daniel Stenberg (20 Feb 2018)
  2513. - [Sergio Borghese brought this change]
  2514. examples/sftpuploadresume: resume upload via CURLOPT_APPEND
  2515. URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
  2516. - curl --version: show PSL if the run-time lib has it enabled
  2517. ... not of the #define was set at build-time!
  2518. - TODO: "Support in-memory certs/ca certs/keys"
  2519. removed SSLKEYLOGFILE support (fixed)
  2520. removed "consider SSL patches" (outdated)
  2521. Closes #2310
  2522. - CURLOPT_HEADER.3: clarify problems with different data sizes
  2523. - test1556: verify >16KB headers to the header callback
  2524. - header callback: don't chop headers into smaller pieces
  2525. Reported-by: Guido Berhoerster
  2526. Fixes #2314
  2527. Closes #2316
  2528. - test1154: verify that long HTTP headers get rejected
  2529. - http: fix the max header length detection logic
  2530. Previously, it would only check for max length if the existing alloc
  2531. buffer was to small to fit it, which often would make the header still
  2532. get used.
  2533. Reported-by: Guido Berhoerster
  2534. Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
  2535. Closes #2315
  2536. - CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
  2537. Reported-by: Erik Johansson
  2538. Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
  2539. - CURLOPT_HEADERFUNCTION.3: mention folded headers
  2540. - TODO: 1.1 Option to refuse usernames in URLs
  2541. Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
  2542. - TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
  2543. - ssh: add two missing state names
  2544. The list of state names (used in debug builds) was out of sync in
  2545. relation to the list of states (used in all builds).
  2546. I now added an assert to make sure the sizes of the two lists match, to
  2547. aid in detecting this mistake better in the future.
  2548. Regression since c92d2e14cf, shipped in 7.58.0.
  2549. Reported-by: Somnath Kundu
  2550. Fixes #2312
  2551. Closes #2313
  2552. - Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
  2553. This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
  2554. Reported-by: Jay Satiro
  2555. Jay Satiro (15 Feb 2018)
  2556. - non-ascii: fix implicit declaration warning
  2557. Follow-up to b46cfbc.
  2558. Caught by Travis CI.
  2559. Daniel Stenberg (15 Feb 2018)
  2560. - travis: add build with iconv enabled
  2561. ... to verify it builds and works fine.
  2562. Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
  2563. Closes #1872
  2564. - TODO: 18.18 retry on network is unreachable
  2565. Closes #1603
  2566. - KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
  2567. Closes #1254
  2568. Kamil Dudka (15 Feb 2018)
  2569. - nss: use PK11_CreateManagedGenericObject() if available
  2570. ... so that the memory allocated by applications using libcurl does not
  2571. grow per each TLS connection.
  2572. Bug: https://bugzilla.redhat.com/1510247
  2573. Closes #2297
  2574. Daniel Stenberg (15 Feb 2018)
  2575. - [Björn Stenberg brought this change]
  2576. TODO fixed: Detect when called from within callbacks
  2577. Closes #2302
  2578. - BINDINGS: fix curb link (and remove ruby-curl-multi)
  2579. Reported-by: Klaus Stein
  2580. - curl_gssapi: make sure this file too uses our *printf()
  2581. - libcurl-security.3: separate file:// section
  2582. ... just to make it more apparent. Even if it repeats
  2583. some pieces of information.
  2584. - libcurl-security.3: the http://192.168.0.1/my_router_config case
  2585. Mentioned-By: Rich Moore
  2586. - libcurl-security.3: mention the URL standards problems too
  2587. - libcurl-security.3: split out from libcurl-tutorial.3
  2588. To make more accessible.
  2589. Merged in some new language from "URLs are dangerous things" as discussed on
  2590. the mailing list a few days ago:
  2591. Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
  2592. - RELEASE-NOTES: synced with e551910f8
  2593. Patrick Monnerat (13 Feb 2018)
  2594. - tests: new tests for http raw mode
  2595. Test 319 checks proper raw mode data with non-chunked gzip
  2596. transfer-encoded server data.
  2597. Test 326 checks raw mode with chunked server data.
  2598. Bug: #2303
  2599. Closes #2308
  2600. Kamil Dudka (12 Feb 2018)
  2601. - tlsauthtype.d: works only if libcurl is built with TLS-SRP support
  2602. Bug: https://bugzilla.redhat.com/1542256
  2603. Closes #2306
  2604. Patrick Monnerat (12 Feb 2018)
  2605. - smtp: fix processing of initial dot in data
  2606. RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
  2607. should be taken into account when chasing the <CRLF>.<CRLF> end marker.
  2608. Thus a leading dot character in data is also subject to escaping.
  2609. Tests 911 and test server are adapted to this situation.
  2610. New tests 951 and 952 check proper handling of initial dot in data.
  2611. Closes #2304
  2612. Daniel Stenberg (12 Feb 2018)
  2613. - sha256: avoid redefine
  2614. - [Douglas Mencken brought this change]
  2615. sha256: build with OpenSSL < 0.9.8 too
  2616. support for SHA-2 was introduced in OpenSSL 0.9.8
  2617. Closes #2305
  2618. - [Bruno Grasselli brought this change]
  2619. README: language fix
  2620. s/off/from
  2621. Closes #2300
  2622. Patrick Monnerat (12 Feb 2018)
  2623. - http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
  2624. Bug: #2303
  2625. Reported-By: Henry Roeland
  2626. Daniel Stenberg (9 Feb 2018)
  2627. - get_posix_time: only check for overflows if they can happen!
  2628. Michael Kaufmann (9 Feb 2018)
  2629. - schannel: fix "no previous prototype" compiler warning
  2630. Jay Satiro (9 Feb 2018)
  2631. - [Mohammad AlSaleh brought this change]
  2632. content_encoding: Add "none" alias to "identity"
  2633. Some servers return a "content-encoding" header with a non-standard
  2634. "none" value.
  2635. Add "none" as an alias to "identity" as a work-around, to avoid
  2636. unrecognised content encoding type errors.
  2637. Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
  2638. Closes https://github.com/curl/curl/pull/2298
  2639. Steve Holme (8 Feb 2018)
  2640. - build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
  2641. - build-openssl.bat: Fixed incorrect move if destination build folder exists
  2642. Michael Kaufmann (8 Feb 2018)
  2643. - schannel: fix compiler warnings
  2644. Closes #2296
  2645. Steve Holme (7 Feb 2018)
  2646. - curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
  2647. Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
  2648. Added the necessary include file to curl_addrinfo.c.
  2649. Note: The SDK (which is considered beta) has to be installed, VS 2017
  2650. project file has to be re-targeted for Windows 10.0.17061 and #define
  2651. enabled in config-win32.h.
  2652. Patrick Monnerat (7 Feb 2018)
  2653. - fnmatch: optimize processing of consecutive *s and ?s pattern characters
  2654. Reported-By: Daniel Stenberg
  2655. Fixes #2291
  2656. Closes #2293
  2657. Steve Holme (6 Feb 2018)
  2658. - build-openssl.bat/build-wolfssl.bat: Build platform is optional
  2659. Whilst the compiler parameter is mandatory, platform is optional as it
  2660. is automatically calculated by the :configure section.
  2661. This partially reverts commit 6d62d2c55d.
  2662. Daniel Stenberg (6 Feb 2018)
  2663. - [Patrick Schlangen brought this change]
  2664. openssl: Don't add verify locations when verifypeer==0
  2665. When peer verification is disabled, calling
  2666. SSL_CTX_load_verify_locations is not necessary. Only call it when
  2667. verification is enabled to save resources and increase performance.
  2668. Closes #2290
  2669. Steve Holme (5 Feb 2018)
  2670. - build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
  2671. ...and not just the Community Edition.
  2672. - build-openssl.bat: Extend VC15 support to include Enterprise and Professional
  2673. ...and not just the Community Edition.
  2674. Michael Kaufmann (5 Feb 2018)
  2675. - time-cond: fix reading the file modification time on Windows
  2676. On Windows, stat() may adjust the unix file time by a daylight saving time
  2677. offset. Avoid this by calling GetFileTime() instead.
  2678. Fixes #2164
  2679. Closes #2204
  2680. Daniel Stenberg (5 Feb 2018)
  2681. - formdata: use the mime-content type function
  2682. Reduce code duplication by making Curl_mime_contenttype available and
  2683. used by the formdata function. This also makes the formdata function
  2684. recognize a set of more file extensions by default.
  2685. PR #2280 brought this to my attention.
  2686. Closes #2282
  2687. - getdate: return -1 for out of range
  2688. ...as that's how the function is documented to work.
  2689. Reported-by: Michael Kaufmann
  2690. Bug found in an autobuild with 32 bit time_t
  2691. Closes #2278
  2692. - [Ben Greear brought this change]
  2693. build: fix termios issue on android cross-compile
  2694. Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
  2695. Signed-off-by: Ben Greear <greearb@candelatech.com>
  2696. - time_t-fixes: remove typecasts to 'long' for info.filetime
  2697. They're now wrong.
  2698. Reported-by: Michael Kaufmann
  2699. Closes #2277
  2700. - curl_setup: move the precautionary define of SIZEOF_TIME_T
  2701. ... up to before it may be used for the TIME_T_MAX/MIN logic.
  2702. Reported-by: Michael Kaufmann
  2703. - parsedate: s/#if/#ifdef
  2704. Reported-by: Michael Kaufmann
  2705. Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
  2706. Patrick Monnerat (31 Jan 2018)
  2707. - fnmatch: pattern syntax can no longer fail
  2708. Whenever an expected pattern syntax rule cannot be matched, the
  2709. character starting the rule loses its special meaning and the parsing
  2710. is resumed:
  2711. - backslash at the end of pattern string matches itself.
  2712. - Error in [:keyword:] results in set containing :\[dekorwy.
  2713. Unit test 1307 updated for this new situation.
  2714. Closes #2273
  2715. - fnmatch: accept an alphanum to be followed by a non-alphanum in char set
  2716. Also be more tolerant about set pattern syntax.
  2717. Update unit test 1307 accordingly.
  2718. Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
  2719. - fnmatch: do not match the empty string with a character set
  2720. Jay Satiro (30 Jan 2018)
  2721. - build: fix windows build methods for curl_ctype.c
  2722. - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
  2723. curlx files since they are required by both src and lib.
  2724. Follow-up to 4272a0b which added curl_ctype.
  2725. Daniel Stenberg (30 Jan 2018)
  2726. - progress-bar.d: update to match implementation
  2727. ... since commit 993dd5651a6
  2728. Reported-by: Martin Dreher
  2729. Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
  2730. Closes #2271
  2731. - http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
  2732. ... instead of doing it unconditionally in debug builds. It cluttered up
  2733. the output a little too much.
  2734. - [Max Dymond brought this change]
  2735. file: Check the return code from Curl_range and bail out on error
  2736. - [Max Dymond brought this change]
  2737. Curl_range: add check to ensure "from <= to"
  2738. - [Max Dymond brought this change]
  2739. Curl_range: commonize FTP and FILE range handling
  2740. Closes #2205
  2741. - RELEASE-NOTES: synced with 811beab9f
  2742. - curlver: next release will be 7.59.0
  2743. - [Michał Janiszewski brought this change]
  2744. curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
  2745. Closes #2275
  2746. - time: support > year 2038 time stamps for system with 32bit long
  2747. ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
  2748. CURLINFO_FILETIME_T.
  2749. Fixes #2238
  2750. Closes #2264
  2751. - curl_easy_reset: clear digest auth state
  2752. Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
  2753. Reported-by: Ruurd Beerstra
  2754. Fixes #2255
  2755. Closes #2272
  2756. - [Adam Marcionek brought this change]
  2757. winbuild: make linker generate proper PDB
  2758. Link.exe requires /DEBUG to properly generate a full pdb file on release
  2759. builds.
  2760. Closes #2274
  2761. - curl: add --proxy-pinnedpubkey
  2762. To verify a proxy's public key. For when using HTTPS proxies.
  2763. Fixes #2192
  2764. Closes #2268
  2765. - configure: set PATH_SEPARATOR to colon for PATH w/o separator
  2766. The logic tries to figure out what the path separator in the $PATH
  2767. variable is, but if there's only one directory in the $PATH it
  2768. fails. This change make configure *guess* on colon instead of erroring
  2769. out, simply because that is probably the more common character.
  2770. PATH_SEPARATOR can always be set by the user to override the guessing.
  2771. (tricky bug to reproduce, as in my case for example the configure script
  2772. requires binaries in more than one directory so passing in a PATH with a
  2773. single dir fails.)
  2774. Reported-by: Earnestly on github
  2775. Fixes #2202
  2776. Closes #2265
  2777. - curl_ctype: private is*() type macros and functions
  2778. ... since the libc provided one are locale dependent in a way we don't
  2779. want. Also, the "native" isalnum() (for example) works differently on
  2780. different platforms which caused test 1307 failures on macos only.
  2781. Closes #2269
  2782. Marcel Raad (29 Jan 2018)
  2783. - build: open VC15 projects with VS 2017
  2784. Previously, they were opened with Visual Studio 2015 by default, which
  2785. cannot build them.
  2786. Daniel Stenberg (29 Jan 2018)
  2787. - RELEASE-NOTES: synced with 094647fca
  2788. - TODO: UTF-8 filenames in Content-Disposition
  2789. Closes #1888
  2790. - KNOWN_BUGS: DICT responses show the underlying protocol
  2791. Closes #1809
  2792. Jay Satiro (27 Jan 2018)
  2793. - [Alessandro Ghedini brought this change]
  2794. docs: fix typos in man pages
  2795. Closes https://github.com/curl/curl/pull/2266
  2796. Patrick Monnerat (26 Jan 2018)
  2797. - lib555: drop text conversion and encode data as ascii codes
  2798. If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
  2799. giving a result that is different from what is expected.
  2800. This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
  2801. to upload in ascii.
  2802. Bug: https://github.com/curl/curl/pull/1872
  2803. Daniel Stenberg (26 Jan 2018)
  2804. - lib517: make variable static to avoid compiler warning
  2805. ... with clang on macos
  2806. Patrick Monnerat (26 Jan 2018)
  2807. - lib544: sync ascii code data with textual data
  2808. Data mismatch caused test 545 to fail when character encoding
  2809. conversion is enabled.
  2810. Bug: https://github.com/curl/curl/pull/1872
  2811. Daniel Stenberg (25 Jan 2018)
  2812. - [Travis Burtrum brought this change]
  2813. GSKit: restore pinnedpubkey functionality
  2814. inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
  2815. Closes #2263
  2816. - [Dair Grant brought this change]
  2817. darwinssl: Don't import client certificates into Keychain on macOS
  2818. Closes #2085
  2819. - configure: fix the check for unsigned time_t
  2820. Assign the time_t variable negative value and then check if it is
  2821. greater than zero, which will evaluate true for unsigned time_t but
  2822. false for signed time_t.
  2823. - parsedate: fix date parsing for systems with 32 bit long
  2824. Make curl_getdate() handle dates before 1970 as well (returning negative
  2825. values).
  2826. Make test 517 test dates for 64 bit time_t.
  2827. This fixes bug (3) mentioned in #2238
  2828. Closes #2250
  2829. - [McDonough, Tim brought this change]
  2830. openssl: fix pinned public key build error in FIPS mode
  2831. Here is a version that should work with all versions of openssl 0.9.7
  2832. through 1.1.0.
  2833. Links to the docs:
  2834. https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
  2835. https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
  2836. At the very bottom of the 1.1.0 documentation there is a history section
  2837. that states, " stack allocated EVP_MD_CTXs are no longer supported."
  2838. If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
  2839. simple mapping can be used as described here:
  2840. https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
  2841. Closes #2258
  2842. - [Travis Burtrum brought this change]
  2843. SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
  2844. - [Travis Burtrum brought this change]
  2845. SChannel/WinSSL: Implement public key pinning
  2846. Closes #1429
  2847. - bump: towards 7.58.1
  2848. - cookies: remove verbose "cookie size:" output
  2849. It was once used for some debugging/verifying logic but should never have
  2850. ended up in git!
  2851. - TODO: hardcode the "localhost" addresses
  2852. - TODO: CURL_REFUSE_CLEARTEXT
  2853. An idea that popped up in discussions on twitter.
  2854. - progress-bar: don't use stderr explicitly, use bar->out
  2855. Reported-By: Gisle Vanem
  2856. Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
  2857. GitHub (24 Jan 2018)
  2858. - [Gisle Vanem brought this change]
  2859. Fixes for MSDOS etc.
  2860. djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
  2861. But djgpp seems the only choice for MSDOS anyway.
  2862. PellesC do have a 'F_OK' defined in it's <unistd.h>.
  2863. Update year in Copyright.
  2864. - [Gisle Vanem brought this change]
  2865. Fix small typo.
  2866. Version 7.58.0 (23 Jan 2018)
  2867. Daniel Stenberg (23 Jan 2018)
  2868. - RELEASE: 7.58.0
  2869. - [Gisle Vanem brought this change]
  2870. progress-bar: get screen width on windows
  2871. - test1454: --connect-to with IPv6 address w/o IPv6 support!
  2872. - CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
  2873. Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
  2874. Reported-by: John Hascall
  2875. Closes #2257
  2876. - docs: fix man page syntax to make test 1140 OK again
  2877. - http: prevent custom Authorization headers in redirects
  2878. ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
  2879. curl already handles Authorization headers created internally.
  2880. Note: this changes behavior slightly, for the sake of reducing mistakes.
  2881. Added test 317 and 318 to verify.
  2882. Reported-by: Craig de Stigter
  2883. Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
  2884. - curl: progress bar refresh, get width using ioctl()
  2885. Get screen width from the environment variable COLUMNS first, if set. If
  2886. not, use ioctl(). If nether works, assume 79.
  2887. Closes #2242
  2888. The "refresh" is for the -# output when no total transfer size is
  2889. known. It will now only use a single updated line even for this case:
  2890. The "-=O=-" ship moves when data is transferred. The four flying
  2891. "hashes" move (on a sine wave) on each refresh, independent of data.
  2892. - RELEASE-NOTES: synced with bb0ffcc36
  2893. - libcurl-env.3: first take
  2894. - TODO: two possible name resolver improvements
  2895. - [Kartik Mahajan brought this change]
  2896. http2: don't close connection when single transfer is stopped
  2897. Fixes #2237
  2898. Closes #2249
  2899. - test558: fix for multissl builds
  2900. vtls.c:multissl_init() might do a curl_free() call so strip that out to
  2901. make this work with more builds. We just want to verify that
  2902. memorytracking works so skipping one line is no harm.
  2903. - examples/url2file.c: add missing curl_global_cleanup() call
  2904. Reported-by: XhstormR on github
  2905. Fixes #2245
  2906. - [Michael Gmelin brought this change]
  2907. SSH: Fix state machine for ssh-agent authentication
  2908. In case an identity didn't match[0], the state machine would fail in
  2909. state SSH_AUTH_AGENT instead of progressing to the next identity in
  2910. ssh-agent. As a result, ssh-agent authentication only worked if the
  2911. identity required happened to be the first added to ssh-agent.
  2912. This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
  2913. stated that the "else" statement was required to prevent getting stuck
  2914. in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
  2915. interface I couldn't see how this could happen or reproduce it and I
  2916. also couldn't find a more detailed description of the problem which
  2917. would explain a test case to reproduce the problem this was supposed to
  2918. fix.
  2919. [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
  2920. Closes #2248
  2921. - openssl: fix potential memory leak in SSLKEYLOGFILE logic
  2922. Coverity CID 1427646.
  2923. - openssl: fix the libressl build again
  2924. Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
  2925. late OpenSSL version...
  2926. Fixes #2246
  2927. Closes #2247
  2928. Reported-by: jungle-boogie on github
  2929. - unit1307: test many wildcards too
  2930. - curl_fnmatch: only allow 5 '*' sections in a single pattern
  2931. ... to avoid excessive recursive calls. The number 5 is totally
  2932. arbitrary and could be modified if someone has a good motivation.
  2933. - ftp-wildcard: fix matching an empty string with "*[^a]"
  2934. .... and avoid advancing the pointer to trigger an out of buffer read.
  2935. Detected by OSS-fuzz
  2936. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
  2937. Assisted-by: Max Dymond
  2938. - SMB: fix numeric constant suffix and variable types
  2939. 1. don't use "ULL" suffix since unsupported in older MSVC
  2940. 2. use curl_off_t instead of custom long long ifdefs
  2941. 3. make get_posix_time() not do unaligned data access
  2942. Fixes #2211
  2943. Closes #2240
  2944. Reported-by: Chester Liu
  2945. - [rouzier brought this change]
  2946. CURLOPT_TCP_NODELAY.3: fix typo
  2947. Closes #2239
  2948. - smtp/pop3/imap_get_message: decrease the data length too...
  2949. Follow-up commit to 615edc1f73 which was incomplete.
  2950. Assisted-by: Max Dymond
  2951. Detected by OSS-fuzz
  2952. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
  2953. - openssl: enable SSLKEYLOGFILE support by default
  2954. Fixes #2210
  2955. Closes #2236
  2956. Patrick Monnerat (14 Jan 2018)
  2957. - mime: clone mime tree upon easy handle duplication.
  2958. A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
  2959. strongly bound to the handle: there is a pointer to the easy handle in
  2960. each item of the mime tree and following the parent pointer list
  2961. of mime items ends in a dummy part stored within the handle.
  2962. Because of this binding, a mime tree cannot be shared between different
  2963. easy handles, thus it needs to be cloned upon easy handle duplication.
  2964. There is no way for the caller to get the duplicated mime tree
  2965. handle: it is then set to be automatically destroyed upon freeing the
  2966. new easy handle.
  2967. New test 654 checks proper mime structure duplication/release.
  2968. Add a warning note in curl_mime_data_cb() documentation about sharing
  2969. user data between duplicated handles.
  2970. Closes #2235
  2971. - docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
  2972. Daniel Stenberg (13 Jan 2018)
  2973. - test395: HTTP with overflow Content-Length value
  2974. - test394: verify abort of rubbish in Content-Length: value
  2975. - test393: verify --max-filesize with excessive Content-Length
  2976. - HTTP: bail out on negative Content-Length: values
  2977. ... and make the max filesize check trigger if the value is too big.
  2978. Updates test 178.
  2979. Reported-by: Brad Spencer
  2980. Fixes #2212
  2981. Closes #2223
  2982. Marcel Raad (13 Jan 2018)
  2983. - [Dan Johnson brought this change]
  2984. configure.ac: append extra linker flags instead of prepending them.
  2985. Link order should list libraries after the libraries that use them,
  2986. so when we're guessing that we might also need to add -ldl in order
  2987. to use -lssl, we should add -ldl after -lssl.
  2988. Closes https://github.com/curl/curl/pull/2234
  2989. Daniel Stenberg (13 Jan 2018)
  2990. - RELEASE-NOTES: synced with 6fa10c8fa
  2991. Jay Satiro (13 Jan 2018)
  2992. - setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
  2993. Broken since f121575 (precedes 7.56.1).
  2994. Bug: https://github.com/curl/curl/issues/2225
  2995. Reported-by: cmfrolick@users.noreply.github.com
  2996. Closes https://github.com/curl/curl/pull/2227
  2997. Patrick Monnerat (13 Jan 2018)
  2998. - setopt: reintroduce non-static Curl_vsetopt() for OS400 support
  2999. This also upgrades ILE/RPG bindings with latest setopt options.
  3000. Reported-By: jonrumsey on github
  3001. Fixes #2230
  3002. Closes #2233
  3003. Jay Satiro (11 Jan 2018)
  3004. - [Zhouyihai Ding brought this change]
  3005. http2: fix incorrect trailer buffer size
  3006. Prior to this change the stored byte count of each trailer was
  3007. miscalculated and 1 less than required. It appears any trailer
  3008. after the first that was passed to Curl_client_write would be truncated
  3009. or corrupted as well as the size. Potentially the size of some
  3010. subsequent trailer could be erroneously extracted from the contents of
  3011. that trailer, and since that size is used by client write an
  3012. out-of-bounds read could occur and cause a crash or be otherwise
  3013. processed by client write.
  3014. The bug appears to have been born in 0761a51 (precedes 7.49.0).
  3015. Closes https://github.com/curl/curl/pull/2231
  3016. - [Basuke Suzuki brought this change]
  3017. easy: fix connection ownership in curl_easy_pause
  3018. Before calling Curl_client_chop_write(), change the owner of connection
  3019. to the current Curl_easy handle. This will fix the issue #2217.
  3020. Fixes https://github.com/curl/curl/issues/2217
  3021. Closes https://github.com/curl/curl/pull/2221
  3022. Daniel Stenberg (9 Jan 2018)
  3023. - [Dimitrios Apostolou brought this change]
  3024. system.h: Additionally check __LONG_MAX__ for defining curl_off_t
  3025. __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
  3026. in GCC 3.3.
  3027. Closes #2216
  3028. - COPYING: it's 2018!
  3029. - progress: calculate transfer speed on milliseconds if possible
  3030. to increase accuracy for quick transfers
  3031. Fixes #2200
  3032. Closes #2206
  3033. Jay Satiro (7 Jan 2018)
  3034. - scripts: allow all perl scripts to be run directly
  3035. - Enable execute permission (chmod +x)
  3036. - Change interpreter to /usr/bin/env perl
  3037. Closes https://github.com/curl/curl/pull/2222
  3038. - mail-rcpt.d: fix short-text description
  3039. - build: remove HAVE_LIMITS_H check
  3040. .. because limits.h presence isn't optional, it's required by C89.
  3041. Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
  3042. Closes https://github.com/curl/curl/pull/2215
  3043. - openssl: fix memory leak of SSLKEYLOGFILE filename
  3044. - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
  3045. initialization.
  3046. Caught by ASAN.
  3047. - Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
  3048. This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
  3049. SIZEOF_LONG should not be checked in system.h since that macro is only
  3050. defined when building libcurl.
  3051. Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
  3052. Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
  3053. Michael Kaufmann (30 Dec 2017)
  3054. - test1554: improve the error handling
  3055. - test1554: add global initialization and cleanup
  3056. Daniel Stenberg (29 Dec 2017)
  3057. - curl_version_info.3: call the argument 'age'
  3058. Reported-by: Pete Lomax
  3059. Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
  3060. Patrick Monnerat (27 Dec 2017)
  3061. - [Mikalai Ananenka brought this change]
  3062. brotli: data at the end of content can be lost
  3063. Decoding loop implementation did not concern the case when all
  3064. received data is consumed by Brotli decoder and the size of decoded
  3065. data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
  3066. For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
  3067. can result in the loss of data at the end of content.
  3068. Closes #2194
  3069. Jay Satiro (26 Dec 2017)
  3070. - examples/cacertinmem: ignore cert-already-exists error
  3071. - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
  3072. since it's possible the cert may have already been loaded by libcurl.
  3073. - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
  3074. Instead have it direct the reader to this cacertinmem.c example.
  3075. - Fix the CA certificate to use the right CA for example.com, Digicert.
  3076. Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
  3077. Reported-by: Thomas van Hesteren
  3078. Closes https://github.com/curl/curl/pull/2182
  3079. - [Gisle Vanem brought this change]
  3080. tool_getparam: Support size modifiers for --max-filesize
  3081. - Move the size modifier detection code from limit-rate to its own
  3082. function so that it can also be used with max-filesize.
  3083. Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
  3084. For example --max-filesize 1G
  3085. Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
  3086. Closes https://github.com/curl/curl/pull/2179
  3087. Steve Holme (22 Dec 2017)
  3088. - build: Fixed incorrect script termination from commit ad1dc10e61
  3089. - Makefile.vc: Added our standard copyright header
  3090. - winbuild: Added support for VC15
  3091. - build: Added Visual Studio 2017 project files
  3092. - build-wolfssl.bat: Added support for VC15
  3093. - build-openssl.bat: Added support for VC15
  3094. Jay Satiro (22 Dec 2017)
  3095. - [Dimitrios Apostolou brought this change]
  3096. curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
  3097. Closes https://github.com/curl/curl/pull/2186
  3098. - [Mattias Fornander brought this change]
  3099. examples/rtsp: fix error handling macros
  3100. Closes https://github.com/curl/curl/pull/2185
  3101. Patrick Monnerat (20 Dec 2017)
  3102. - curl_easy_reset: release mime-related data.
  3103. Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
  3104. functions dealing with UserDefined structure contents.
  3105. This avoids memory leakages on curl-generated part mime headers.
  3106. New test 2073 checks this using the cli tool --next option: it
  3107. triggers a valgrind error if bug is present.
  3108. Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
  3109. Reported-by: Martin Galvan
  3110. - content_encoding: rework zlib_inflate
  3111. - When zlib version is < 1.2.0.4, process gzip trailer before considering
  3112. extra data as an error.
  3113. - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
  3114. and minimize corrupt data output.
  3115. - Do not try to restart deflate decompression in raw mode if output has
  3116. started or if the leading data is not available anymore.
  3117. - New test 232 checks inflating raw-deflated content.
  3118. Closes #2068
  3119. - brotli: allow compiling with version 0.6.0.
  3120. Some error codes were not yet defined in brotli 0.6.0: do not issue code
  3121. for them in this case.
  3122. Daniel Stenberg (13 Dec 2017)
  3123. - CURLOPT_READFUNCTION.3: refer to argument with correct name
  3124. Bug: #2175
  3125. [ci skip]
  3126. - rand: add a clang-analyzer work-around
  3127. scan-build would warn on a potential access of an uninitialized
  3128. buffer. I deem it a false positive and had to add this somewhat ugly
  3129. work-around to silence it.
  3130. - krb5: fix a potential access of uninitialized memory
  3131. A scan-build warning.
  3132. - conncache: fix a return code [regression]
  3133. This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
  3134. out by scan-build!
  3135. - curl: support >256 bytes warning messsages
  3136. Bug: #2174
  3137. Michael Kaufmann (12 Dec 2017)
  3138. - libssh: fix a syntax error in configure.ac
  3139. Follow-up to c92d2e1
  3140. Closes #2172
  3141. Daniel Stenberg (12 Dec 2017)
  3142. - examples/smtp-mail.c: use separate defines for options and mail
  3143. ... to make it clearer that the options want address-only, while the
  3144. headers in an email can also have the real name.
  3145. Assisted-by: Sean MacLennan
  3146. - THANKS: added missing names
  3147. ... as I reran the contrithanks script after the mailmap name fixups.
  3148. - mailmap: added/clarified several names
  3149. - setopt: less *or equal* than INT_MAX/1000 should be fine
  3150. ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
  3151. CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
  3152. Reported-by: Dominik Hölzl
  3153. Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
  3154. Closes #2173
  3155. - [Dmitry Kostjuchenko brought this change]
  3156. vtls: replaced getenv() with curl_getenv()
  3157. Fixed undefined symbol of getenv() which does not exist when compiling
  3158. for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
  3159. curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
  3160. is defined.
  3161. Closes #2171
  3162. - RELEASE-NOTES: synced with 3b9ea70ee
  3163. - TODO: Expose tried IP addresses that failed
  3164. Suggested-by: Rainer Canavan
  3165. Closes #2126
  3166. - curl.1: mention http:// and https:// as valid proxy prefixes
  3167. - curl.1: documented two missing valid exit codes
  3168. - CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
  3169. - Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
  3170. This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
  3171. It was actually added rather recently in 8e8afa82cbb629 due to a crash
  3172. that would otherwise happen in the RTSP code. As I don't think we've
  3173. fixed that behavior yet, we better keep this work-around until we have
  3174. fixed it better.
  3175. Michael Kaufmann (10 Dec 2017)
  3176. - tests: mark data files as non-executable in git
  3177. - tests: update .gitignore for libtests
  3178. Daniel Stenberg (10 Dec 2017)
  3179. - multi_done: prune DNS cache
  3180. Prune the DNS cache immediately after the dns entry is unlocked in
  3181. multi_done. Timed out entries will then get discarded in a more orderly
  3182. fashion.
  3183. Test506 is updated
  3184. Reported-by: Oleg Pudeyev
  3185. Fixes #2169
  3186. Closes #2170
  3187. - mailmap: fixup two old git Author "aliases"
  3188. Jay Satiro (10 Dec 2017)
  3189. - openssl: Disable file buffering for Win32 SSLKEYLOGFILE
  3190. Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
  3191. like it does for other platforms. However, the Windows CRT does not
  3192. actually support line buffering (_IOLBF) and will use full buffering
  3193. (_IOFBF) instead. We can't use full buffering because multiple processes
  3194. may be writing to the file and that could lead to corruption, and since
  3195. full buffering is the only buffering available this commit disables
  3196. buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
  3197. Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
  3198. Daniel Stenberg (10 Dec 2017)
  3199. - RESOLVE: output verbose text when trying to set a duplicate name
  3200. ... to help users understand what is or isn't done!
  3201. - CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
  3202. - [John DeHelian brought this change]
  3203. sftp: allow quoted commands to use relative paths
  3204. Closes #1900
  3205. Jay Satiro (8 Dec 2017)
  3206. - [Richard Alcock brought this change]
  3207. CURLOPT_PRIVATE.3: fix grammar
  3208. - Change "never does nothing" double-negative to "never does anything".
  3209. Closes https://github.com/curl/curl/pull/2168
  3210. Daniel Stenberg (8 Dec 2017)
  3211. - curl: remove __EMX__ #ifdefs
  3212. These are OS/2-specific things added to the code in the year 2000. They
  3213. were always ugly. If there's any user left, they still don't need it
  3214. done this way.
  3215. Closes #2166
  3216. Jay Satiro (8 Dec 2017)
  3217. - openssl: improve data-pending check for https proxy
  3218. - Allow proxy_ssl to be checked for pending data even when connssl does
  3219. not yet have an SSL handle.
  3220. This change is for posterity. Currently there doesn't seem to be a code
  3221. path that will cause a pending data check when proxyssl could have
  3222. pending data and the connssl handle doesn't yet exist [1].
  3223. [1]: Recall that an https proxy connection starts out in connssl but if
  3224. the destination is also https then the proxy SSL backend data is moved
  3225. from connssl to proxyssl, which means connssl handle is temporarily
  3226. empty until an SSL handle for the destination can be created.
  3227. Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
  3228. Closes https://github.com/curl/curl/pull/1916
  3229. Daniel Stenberg (8 Dec 2017)
  3230. - curl: don't set CURLOPT_INTERLEAVEDATA
  3231. That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
  3232. and that option isn't set or used by the curl tool!
  3233. Updates the 9 tests that verify --libcurl
  3234. Closes #2167
  3235. - curl.h: remove incorrect comment about ERRORBUFFER
  3236. ... error messages are _not_ sent to stderr if this is not set.
  3237. - [Michael Felt brought this change]
  3238. configure: add AX_CODE_COVERAGE only if using gcc
  3239. Fixes #2076
  3240. Closes #2125
  3241. - curl: limit -# update frequency for unknown total size
  3242. Make it use a max 10Hz update frequency for this case as well. Return
  3243. early if the "point" hasn't moved since last invoke.
  3244. Reported-by: Elliot Saba
  3245. Fixes #2158
  3246. Closes #2163
  3247. - BINDINGS: another PostgreSQL client
  3248. ...the former link is dead.
  3249. Reported-by: Frank Gevaerts
  3250. - [Zachary Seguin brought this change]
  3251. CONNECT: keep close connection flag in http_connect_state struct
  3252. Fixes #2088
  3253. Closes #2157
  3254. - [Per Malmberg brought this change]
  3255. include: get netinet/in.h before linux/tcp.h
  3256. ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
  3257. 4.8.5)
  3258. Closes #2160
  3259. - openldap: fix checksrc nits
  3260. - [Stepan Broz brought this change]
  3261. openldap: add commented out debug possibilities
  3262. ... to aid debugging openldap library using its built-in debug messages.
  3263. Closes #2159
  3264. - examples: move threaded-shared-conn.c to the "complicated" ones
  3265. ... due it relying on pthreads to link.
  3266. - RELEASE-NOTES: synced with b261c44e8
  3267. ... and bump next release version to 7.58.0
  3268. - [Jan Ehrhardt brought this change]
  3269. URL: tolerate backslash after drive letter for FILE:
  3270. ... as in "file://c:\some\path\curl.out"
  3271. Reviewed-by: Matthew Kerwin
  3272. Closes #2154
  3273. - [Randall S. Becker brought this change]
  3274. tests: added netinet/in6.h includes in test servers
  3275. - [Randall S. Becker brought this change]
  3276. configure: check for netinet/in6.h
  3277. Needed by HPE NonStop NSE and NSX systems
  3278. Fixes #2146
  3279. Closes #2155
  3280. - curl-config: add --ssl-backends
  3281. Lists all SSL backends that were enabled at build-time.
  3282. Suggested-by: Oleg Pudeyev
  3283. Fixes #2128
  3284. - conncache: only allow multiplexing within same multi handle
  3285. Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
  3286. only get additional transfers added to them if the existing connection
  3287. is held by the same multi or easy handle. libcurl does not support doing
  3288. HTTP/2 streams in different threads using a shared connection.
  3289. Closes #2152
  3290. - threaded-shared-conn.c: fixed typo in commenta
  3291. - threaded-shared-conn.c: new example
  3292. - conncache: fix several lock issues
  3293. If the lock is released before the dealings with the bundle is over, it may
  3294. have changed by another thread in the mean time.
  3295. Fixes #2132
  3296. Fixes #2151
  3297. Closes #2139
  3298. - libssh: remove dead code in sftp_qoute
  3299. ... by removing a superfluous NULL pointer check that also confuses
  3300. Coverity.
  3301. Fixes #2143
  3302. Closes #2153
  3303. - sasl_getmesssage: make sure we have a long enough string to pass
  3304. For pop3/imap/smtp, added test 891 to somewhat verify the pop3
  3305. case.
  3306. For this, I enhanced the pingpong test server to be able to send back
  3307. responses with LF-only instead of always using CRLF.
  3308. Closes #2150
  3309. - libssh2: remove dead code from SSH_SFTP_QUOTE
  3310. Figured out while reviewing code in the libssh backend. The pointer was
  3311. checked for NULL after having been dereferenced, so we know it would
  3312. always equal true or it would've crashed.
  3313. Pointed-out-by: Nikos Mavrogiannopoulos
  3314. Bug #2143
  3315. Closes #2148
  3316. - ssh-libssh.c: please checksrc
  3317. Nikos Mavrogiannopoulos (4 Dec 2017)
  3318. - libssh: fixed dereference in statvfs access
  3319. The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
  3320. handling fails.
  3321. Fixes #2142
  3322. Daniel Stenberg (4 Dec 2017)
  3323. - [Guitared brought this change]
  3324. RESOURCES: update spec names
  3325. Closes #2145
  3326. Nikos Mavrogiannopoulos (3 Dec 2017)
  3327. - libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
  3328. The previous code was incorrectly following the libssh2 error detection
  3329. for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
  3330. Fixes #2142
  3331. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3332. - libssh: no need to call sftp_get_error as ssh_get_error is sufficient
  3333. Fixes #2141
  3334. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3335. Daniel Stenberg (2 Dec 2017)
  3336. - libssh: fix minor static code analyzer nits
  3337. - remove superfluous NULL check which otherwise tricks the static code
  3338. analyzers to assume NULL pointer dereferences.
  3339. - fix fallthrough in switch()
  3340. - indent mistake
  3341. - openssl: pkcs12 is supported by boringssl
  3342. Removes another #ifdef for BoringSSL
  3343. Pointed-out-by: David Benjamin
  3344. Closes #2134
  3345. - [Jay Satiro brought this change]
  3346. travis: use pip2 instead of pip
  3347. .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
  3348. 0.01s$ pip install --user cpp-coveralls
  3349. /Users/travis/.travis/job_stages: line 57: pip: command not found
  3350. Ref: https://github.com/travis-ci/travis-ci/issues/8829
  3351. Closes https://github.com/curl/curl/pull/2133
  3352. - [Nikos Mavrogiannopoulos brought this change]
  3353. lib582: do not verify host for SFTP
  3354. This SFTP test fails with libssh back-end due to failure to verify
  3355. the peer. Disable peer verification in the test as there seems to
  3356. be the intention of the test.
  3357. Note that the libssh back-end automatically verifies the peer's
  3358. host using the default known_hosts file.
  3359. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3360. - [Nikos Mavrogiannopoulos brought this change]
  3361. libssh: added SFTP support
  3362. The SFTP back-end supports asynchronous reading only, limited
  3363. to 32-bit file length. Writing is synchronous with no other
  3364. limitations.
  3365. This also brings keyboard-interactive authentication.
  3366. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3367. - [Nikos Mavrogiannopoulos brought this change]
  3368. symbols-in-versions: added new symbols with 7.56.3 version
  3369. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3370. - [Nikos Mavrogiannopoulos brought this change]
  3371. .travis.yml: added build --with-libssh
  3372. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
  3373. - [Nikos Mavrogiannopoulos brought this change]
  3374. libssh2: return CURLE_UPLOAD_FAILED on failure to upload
  3375. This brings its in sync with the error code returned by the
  3376. libssh backend.
  3377. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
  3378. - [Nikos Mavrogiannopoulos brought this change]
  3379. libssh2: send the correct CURLE error code on scp file not found
  3380. That also updates tests to expect the right error code
  3381. libssh2 back-end returns CURLE_SSH error if the remote file
  3382. is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
  3383. which is sent by the libssh backend.
  3384. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
  3385. - [Nikos Mavrogiannopoulos brought this change]
  3386. Added support for libssh SSH SCP back-end
  3387. libssh is an alternative library to libssh2.
  3388. https://www.libssh.org/
  3389. That patch set also introduces support for ECDSA
  3390. ed25519 keys, as well as gssapi authentication.
  3391. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
  3392. - RELEASE-NOTES: synced with af8cc7a69
  3393. - curlver: towards 7.57.1
  3394. - [W. Mark Kubacki brought this change]
  3395. lib: don't export all symbols, just everything curl_*
  3396. Absent any 'symbol map' or script to limit what gets exported, static
  3397. linking of libraries previously resulted in a libcurl with curl's and
  3398. those other symbols being (re-)exported.
  3399. This did not happen if 'versioned symbols' were enabled (which is not
  3400. the default) because then a version script is employed.
  3401. This limits exports to everything starting in 'curl_*'., which is
  3402. what "libcurl.vers" exports.
  3403. This avoids strange side-effects such as with mixing methods
  3404. from system libraries and those erroneously offered by libcurl.
  3405. Closes #2127
  3406. - [Johannes Schindelin brought this change]
  3407. SSL: Avoid magic allocation of SSL backend specific data
  3408. Originally, my idea was to allocate the two structures (or more
  3409. precisely, the connectdata structure and the four SSL backend-specific
  3410. strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
  3411. that they all could be free()d together.
  3412. However, getting the alignment right is tricky. Too tricky.
  3413. So let's just bite the bullet and allocate the SSL backend-specific
  3414. data separately.
  3415. As a consequence, we now have to be very careful to release the memory
  3416. allocated for the SSL backend-specific data whenever we release any
  3417. connectdata.
  3418. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  3419. Closes #2119
  3420. - examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
  3421. Reported-by: Dima Tisnek
  3422. - travis: add boringssl build
  3423. Uses a separate build without --enable-debug and no valgrind.
  3424. The debug option causes far too many warnings in boringssl's headers
  3425. (C++ comments, trailing commas etc). Valgrind triggers some false
  3426. positive errors in thread-local data used by boringssl.
  3427. Closes #2118
  3428. Version 7.57.0 (29 Nov 2017)
  3429. Daniel Stenberg (29 Nov 2017)
  3430. - RELEASE-NOTES: curl 7.57.0
  3431. - THANKS: added contributors from 7.57.0 release
  3432. - openssl: fix boringssl build again
  3433. commit d3ab7c5a21e broke the boringssl build since it doesn't have
  3434. RSA_flags(), so we disable that code block for boringssl builds.
  3435. Reported-by: W. Mark Kubacki
  3436. Fixes #2117
  3437. - curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
  3438. - libcurl-share.3: the connection cache is shareable now
  3439. - global_init: ignore CURL_GLOBAL_SSL's absense
  3440. This bit is no longer used. It is not clear what it meant for users to
  3441. "init the TLS" in a world with different TLS backends and since the
  3442. introduction of multissl, libcurl didn't properly work if inited without
  3443. this bit set.
  3444. Not a single user responded to the call for users of it:
  3445. https://curl.haxx.se/mail/lib-2017-11/0072.html
  3446. Reported-by: Evgeny Grin
  3447. Assisted-by: Jay Satiro
  3448. Fixes #2089
  3449. Fixes #2083
  3450. Closes #2107
  3451. - ntlm: avoid integer overflow for malloc size
  3452. Reported-by: Alex Nichols
  3453. Assisted-by: Kamil Dudka and Max Dymond
  3454. CVE-2017-8816
  3455. Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
  3456. - wildcardmatch: fix heap buffer overflow in setcharset
  3457. The code would previous read beyond the end of the pattern string if the
  3458. match pattern ends with an open bracket when the default pattern
  3459. matching function is used.
  3460. Detected by OSS-Fuzz:
  3461. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
  3462. CVE-2017-8817
  3463. Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
  3464. - [Jay Satiro brought this change]
  3465. url: fix alignment of ssl_backend_data struct
  3466. - Align the array of ssl_backend_data on a max 32 byte boundary.
  3467. 8 is likely to be ok but I went with 32 for posterity should one of
  3468. the ssl_backend_data structs change to contain a larger sized variable
  3469. in the future.
  3470. Prior to this change (since dev 70f1db3, release 7.56) the connectdata
  3471. structure was undersized by 4 bytes in 32-bit builds with ssl enabled
  3472. because long long * was mistakenly used for alignment instead of
  3473. long long, with the intention being an 8 byte boundary. Also long long
  3474. may not be an available type.
  3475. The undersized connectdata could lead to oob read/write past the end in
  3476. what was expected to be the last 4 bytes of the connection's secondary
  3477. socket https proxy ssl_backend_data struct (the secondary socket in a
  3478. connection is used by ftp, others?).
  3479. Closes https://github.com/curl/curl/issues/2093
  3480. CVE-2017-8818
  3481. Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
  3482. - ssh: remove check for a NULL pointer (!)
  3483. With this check present, scan-build warns that we might dereference this
  3484. point in other places where it isn't first checked for NULL. Thus, if it
  3485. *can* be NULL we have a problem on a few places. However, this pointer
  3486. should not be possible to be NULL here so I remove the check and thus
  3487. also three different scan-build warnings.
  3488. Closes #2111
  3489. - [Matthew Kerwin brought this change]
  3490. test: add test for bad UNC/SMB path in file: URL
  3491. - [Matthew Kerwin brought this change]
  3492. test: add tests to ensure basic file: URLs
  3493. - [Matthew Kerwin brought this change]
  3494. URL: update "file:" URL handling
  3495. * LOTS of comment updates
  3496. * explicit error for SMB shares (e.g. "file:////share/path/file")
  3497. * more strict handling of authority (i.e. "//localhost/")
  3498. * now accepts dodgy old "C:|" drive letters
  3499. * more precise handling of drive letters in and out of Windows
  3500. (especially recognising both "file:c:/" and "file:/c:/")
  3501. Closes #2110
  3502. - metalink: fix memory-leak and NULL pointer dereference
  3503. Reported by scan-build
  3504. Closes #2109
  3505. - [Alessandro Ghedini brought this change]
  3506. connect: add support for new TCP Fast Open API on Linux
  3507. The new API added in Linux 4.11 only requires setting a socket option
  3508. before connecting, without the whole sento() machinery.
  3509. Notably, this makes it possible to use TFO with SSL connections on Linux
  3510. as well, without the need to mess around with OpenSSL (or whatever other
  3511. SSL library) internals.
  3512. Closes #2056
  3513. - make: fix "make distclean"
  3514. Fixes #2097
  3515. Closes #2108
  3516. - RELEASE-NOTES: synced with 31f18d272
  3517. Jay Satiro (23 Nov 2017)
  3518. - connect: improve the bind error message
  3519. eg consider a non-existent interface eth8, curl --interface eth8
  3520. Before: curl: (45) Could not resolve host: eth8
  3521. After: curl: (45) Couldn't bind to 'eth8'
  3522. Bug: https://github.com/curl/curl/issues/2104
  3523. Reported-by: Alfonso Martone
  3524. Daniel Stenberg (23 Nov 2017)
  3525. - examples/rtsp: clear RANGE again after use
  3526. Fixes #2106
  3527. Reported-by: youngchopin on github
  3528. - [Michael Kaufmann brought this change]
  3529. test1264: verify URL with space in host name being rejected
  3530. - url: reject ASCII control characters and space in host names
  3531. Host names like "127.0.0.1 moo" would otherwise be accepted by some
  3532. getaddrinfo() implementations.
  3533. Updated test 1034 and 1035 accordingly.
  3534. Fixes #2073
  3535. Closes #2092
  3536. - Curl_open: fix OOM return error correctly
  3537. Closes #2098
  3538. - http2: fix "Value stored to 'end' is never read" scan-build error
  3539. - http2: fix "Value stored to 'hdbuf' is never read" scan-build error
  3540. - openssl: fix "Value stored to 'rc' is never read" scan-build error
  3541. - mime: fix "Value stored to 'sz' is never read" scan-build error
  3542. - Curl_llist_remove: fix potential NULL pointer deref
  3543. Fixes a scan-build warning.
  3544. - ntlm: remove unnecessary NULL-check to please scan-build
  3545. - BUGS: spellchecked
  3546. Jay Satiro (18 Nov 2017)
  3547. - [fmmedeiros brought this change]
  3548. examples/curlx: Fix code style
  3549. - Add braces around multi-line if statement.
  3550. Closes https://github.com/curl/curl/pull/2096
  3551. Daniel Stenberg (17 Nov 2017)
  3552. - resolve: allow IP address within [] brackets
  3553. ... so that IPv6 addresses can be passed like they can for connect-to
  3554. and how they're used in URLs.
  3555. Added test 1324 to verify
  3556. Reported-by: Alex Malinovich
  3557. Fixes #2087
  3558. Closes #2091
  3559. - [Pavol Markovic brought this change]
  3560. macOS: Fix missing connectx function with Xcode version older than 9.0
  3561. The previous fix https://github.com/curl/curl/pull/1788 worked just for
  3562. Xcode 9. This commit extends the fix to older Xcode versions effectively
  3563. by not using connectx function.
  3564. Fixes https://github.com/curl/curl/issues/1330
  3565. Fixes https://github.com/curl/curl/issues/2080
  3566. Closes https://github.com/curl/curl/pull/1336
  3567. Closes #2082
  3568. - [Dirk Feytons brought this change]
  3569. openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
  3570. Fixes #2079
  3571. Closes #2081
  3572. - TODO: ignore private IP addresses in PASV response
  3573. Closes #1455
  3574. - RELEASE-NOTES: synced with ae7369b6d
  3575. Michael Kaufmann (14 Nov 2017)
  3576. - URL: return error on malformed URLs with junk after IPv6 bracket
  3577. Follow-up to aadb7c7. Verified by new test 1263.
  3578. Closes #2072
  3579. Daniel Stenberg (14 Nov 2017)
  3580. - INTERNALS: we may use libidn2 now, not libidn
  3581. Patrick Monnerat (13 Nov 2017)
  3582. - zlib/brotli: only include header files in modules needing them
  3583. There is a conflict on symbol 'free_func' between openssl/crypto.h and
  3584. zlib.h on AIX. This is an attempt to resolve it.
  3585. Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
  3586. Reported-By: Michael Felt
  3587. Daniel Stenberg (13 Nov 2017)
  3588. - SMB: fix uninitialized local variable
  3589. Reported-by: Brian Carpenter
  3590. - [Orgad Shaneh brought this change]
  3591. connect.c: remove executable bit on file
  3592. Closes #2071
  3593. - [hsiao yi brought this change]
  3594. README.md: fixed layout
  3595. Closes #2069
  3596. - setopt: split out curl_easy_setopt() to its own file
  3597. ... to make url.c smaller.
  3598. Closes #1944
  3599. Jay Satiro (10 Nov 2017)
  3600. - [John Starks brought this change]
  3601. cmake: Add missing setmode check
  3602. Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
  3603. curl will corrupt binary files when writing them to stdout on Windows.
  3604. Closes https://github.com/curl/curl/pull/2067
  3605. Daniel Stenberg (10 Nov 2017)
  3606. - curl_share_setopt: va_end was not called if conncache errors
  3607. CID 984459, detected by Coverity
  3608. Sergei Nikulov (10 Nov 2017)
  3609. - [John Starks brought this change]
  3610. cmake: Correctly include curl.rc in Windows builds (#2064)
  3611. Update CMakeLists.txt to add curl.rc to the correct list.
  3612. Daniel Stenberg (9 Nov 2017)
  3613. - RELEASE-NOTES: synced with 32828cc4f
  3614. - [Luca Boccassi brought this change]
  3615. --interface: add support for Linux VRF
  3616. The --interface command (CURLOPT_INTERFACE option) already uses
  3617. SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
  3618. address first, which fails in case the user passes a VRF.
  3619. Try to use the socket option immediately and parse it as a fallback
  3620. instead. Update the documentation to mention this feature, and that it
  3621. requires the binary to be ran by root or with CAP_NET_RAW capabilities
  3622. for this to work.
  3623. Closes #2024
  3624. - curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
  3625. Closes #2043
  3626. - examples: add shared-connection-cache
  3627. - test1554: verify connection cache sharing
  3628. - share: add support for sharing the connection cache
  3629. - imap: deal with commands case insensitively
  3630. As documented in RFC 3501 section 9:
  3631. https://tools.ietf.org/html/rfc3501#section-9
  3632. Closes #2061
  3633. - connect: store IPv6 connection status after valid connection
  3634. ... previously it would store it already in the happy eyeballs stage
  3635. which could lead to the IPv6 bit being set for an IPv4 connection,
  3636. leading to curl not wanting to do EPSV=>PASV for FTP transfers.
  3637. Closes #2053
  3638. - curl_multi_fdset.3: emphasize curl_multi_timeout
  3639. ... even when there's no socket to wait for, the timeout can still be
  3640. very short.
  3641. Jay Satiro (9 Nov 2017)
  3642. - content_encoding: fix inflate_stream for no bytes available
  3643. - Don't call zlib's inflate() when avail_in stream bytes is 0.
  3644. This is a follow up to the parent commit 19e66e5. Prior to that change
  3645. libcurl's inflate_stream could call zlib's inflate even when no bytes
  3646. were available, causing inflate to return Z_BUF_ERROR, and then
  3647. inflate_stream would treat that as a hard error and return
  3648. CURLE_BAD_CONTENT_ENCODING.
  3649. According to the zlib FAQ, Z_BUF_ERROR is not fatal.
  3650. This bug would happen randomly since packet sizes are arbitrary. A test
  3651. of 10,000 transfers had 55 fail (ie 0.55%).
  3652. Ref: https://zlib.net/zlib_faq.html#faq05
  3653. Closes https://github.com/curl/curl/pull/2060
  3654. Patrick Monnerat (7 Nov 2017)
  3655. - content_encoding: do not write 0 length data
  3656. Daniel Stenberg (6 Nov 2017)
  3657. - fnmatch: remove dead code
  3658. There was a duplicate check for backslashes in the setcharset()
  3659. function.
  3660. Coverity CID 1420611
  3661. - url: remove unncessary NULL-check
  3662. Since 'conn' won't be NULL in there and we also access the pointer in
  3663. there without the check.
  3664. Coverity CID 1420610
  3665. Viktor Szakats (6 Nov 2017)
  3666. - src/Makefile.m32: fix typo in brotli lib customization
  3667. Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
  3668. - Makefile.m32: allow to customize brotli libs
  3669. It adds the ability to link against static brotli libs.
  3670. Also fix brotli include path.
  3671. Patrick Monnerat (5 Nov 2017)
  3672. - travis: add a job with brotli enabled
  3673. - [Viktor Szakats brought this change]
  3674. Makefile.m32: add brotli support
  3675. - HTTP: implement Brotli content encoding
  3676. This uses the brotli external library (https://github.com/google/brotli).
  3677. Brotli becomes a feature: additional curl_version_info() bit and
  3678. structure fields are provided for it and CURLVERSION_NOW bumped.
  3679. Tests 314 and 315 check Brotli content unencoding with correct and
  3680. erroneous data.
  3681. Some tests are updated to accomodate with the now configuration dependent
  3682. parameters of the Accept-Encoding header.
  3683. - HTTP: support multiple Content-Encodings
  3684. This is implemented as an output streaming stack of unencoders, the last
  3685. calling the client write procedure.
  3686. New test 230 checks this feature.
  3687. Bug: https://github.com/curl/curl/pull/2002
  3688. Reported-By: Daniel Bankhead
  3689. Jay Satiro (4 Nov 2017)
  3690. - url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
  3691. Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
  3692. check on this option is incorrect; we have to accept any value.
  3693. Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
  3694. erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
  3695. Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
  3696. Daniel Stenberg (4 Nov 2017)
  3697. - ntlm: avoid malloc(0) for zero length passwords
  3698. It triggers an assert() when built with memdebug since malloc(0) may
  3699. return NULL *or* a valid pointer.
  3700. Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
  3701. Assisted-by: Max Dymond
  3702. Closes #2054
  3703. - RELEASE-NOTES: synced with ee8016b3d
  3704. - curl: speed up handling of many URLs
  3705. By properly keeping track of the last entry in the list of URLs/uploads
  3706. to handle, curl now avoids many meaningless traverses of the list which
  3707. speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
  3708. URLs).
  3709. Added test 1291, to verify that it doesn't take ages - but we don't have
  3710. any detection of "too slow" command in the test suite.
  3711. Reported-by: arainchik on github
  3712. Fixes #1959
  3713. Closes #2052
  3714. - curl: pass through [] in URLs instead of calling globbing error
  3715. Assisted-by: Per Lundberg
  3716. Fixes #2044
  3717. Closes #2046
  3718. Closes #2048
  3719. - CURLOPT_INFILESIZE: accept -1
  3720. Regression since f121575
  3721. Reported-by: Petr Voytsik
  3722. Fixes #2047
  3723. Jay Satiro (2 Nov 2017)
  3724. - url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
  3725. Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
  3726. erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
  3727. Dan Fandrich (1 Nov 2017)
  3728. - http2: Fixed OOM handling in upgrade request
  3729. This caused the torture tests on test 1800 to fail.
  3730. - tests: Fixed torture tests on tests 556 and 650
  3731. Test cleanup after OOM wasn't being consistently performed.
  3732. Daniel Stenberg (1 Nov 2017)
  3733. - CURLOPT_MAXREDIRS: allow -1 as a value
  3734. ... which is valid according to documentation. Regression since
  3735. f121575c0b5f.
  3736. Verified now in test 501.
  3737. Reported-by: cbartl on github
  3738. Fixes #2038
  3739. Closes #2039
  3740. - include: remove conncache.h inclusion from where its not needed
  3741. Jay Satiro (1 Nov 2017)
  3742. - url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
  3743. .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
  3744. Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
  3745. erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
  3746. Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
  3747. Reported-by: Andrew Lambert
  3748. Daniel Stenberg (31 Oct 2017)
  3749. - cookie: avoid NULL dereference
  3750. ... when expiring old cookies.
  3751. Reported-by: Pavel Gushchin
  3752. Fixes #2032
  3753. Closes #2035
  3754. Marcel Raad (30 Oct 2017)
  3755. - memdebug: use send/recv signature for curl_dosend/curl_dorecv
  3756. This avoids build errors and warnings caused by implicit casts.
  3757. Closes https://github.com/curl/curl/pull/2031
  3758. Daniel Stenberg (30 Oct 2017)
  3759. - [Juro Bystricky brought this change]
  3760. mkhelp.pl: support reproducible build
  3761. Do not generate line with the current date, such as:
  3762. * Generation time: Tue Oct-24 18:01:41 2017
  3763. This will improve reproducibility. The generated string is only
  3764. part of a comment, so there should be no adverse consequences.
  3765. Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
  3766. closes #2026
  3767. Dan Fandrich (30 Oct 2017)
  3768. - runtests.pl: Fixed typo in message
  3769. Daniel Stenberg (30 Oct 2017)
  3770. - curlx: the timeval functions are no longer provided as curlx_*
  3771. Pointed-out-by: Dmitri Tikhonov
  3772. Bug: #2034
  3773. - select: update comments
  3774. s/curlx_tvnow/Curl_now
  3775. - INTERNALS: remove curlx_tv* functions no longer provided
  3776. - [Dmitri Tikhonov brought this change]
  3777. timeval: use mach time on MacOS
  3778. If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
  3779. closes #2033
  3780. Patrick Monnerat (29 Oct 2017)
  3781. - cli tool: improve ";type=" handling in -F option arguments
  3782. - cli tool: in -F option arg, comma is a delimiter for files only
  3783. Also upgrade test 1133 to cover this case and clarify man page about
  3784. form data quoting.
  3785. Bug: https://github.com/curl/curl/issues/2022
  3786. Reported-By: omau on github
  3787. Daniel Stenberg (29 Oct 2017)
  3788. - timeleft: made two more users of Curl_timeleft use timediff_t
  3789. Jakub Zakrzewski (28 Oct 2017)
  3790. - cmake: Export libcurl and curl targets to use by other cmake projects
  3791. The config files define curl and libcurl targets as imported targets
  3792. CURL::curl and CURL::libcurl. For backward compatibility with CMake-
  3793. provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
  3794. also set.
  3795. Closes #1879
  3796. Daniel Stenberg (28 Oct 2017)
  3797. - RELEASE-NOTES: synced with f20cbac97
  3798. - [Florin Petriuc brought this change]
  3799. auth: Added test cases for RFC7616
  3800. Updated docs to include support for RFC7616
  3801. Signed-off-by: Florin <petriuc.florin@gmail.com>
  3802. Closes #1934
  3803. - [Florin Petriuc brought this change]
  3804. auth: add support for RFC7616 - HTTP Digest access authentication
  3805. Signed-off-by: Florin <petriuc.florin@gmail.com>
  3806. - [Daniel Bankhead brought this change]
  3807. TODO: support multiple Content-Encodings
  3808. Closes #2002
  3809. - ROADMAP: cleanup
  3810. Removed done stuff. Removed entries no longer considered for the near
  3811. term.
  3812. - [Magicansk brought this change]
  3813. ROADMAP.md: spelling fixes
  3814. Closes #2028
  3815. - Curl_timeleft: change return type to timediff_t
  3816. returning 'time_t' is problematic when that type is unsigned and we
  3817. return values less than zero to signal "already expired", used in
  3818. several places in the code.
  3819. Closes #2021
  3820. - appveyor: add a win32 build
  3821. - setopt: fix CURLOPT_SSH_AUTH_TYPES option read
  3822. Regression since f121575c0b5f
  3823. Reported-by: Rob Cotrone
  3824. Marcel Raad (27 Oct 2017)
  3825. - resolvers: only include anything if needed
  3826. This avoids warnings about unused stuff.
  3827. Closes https://github.com/curl/curl/pull/2023
  3828. Daniel Stenberg (27 Oct 2017)
  3829. - HELP-US: rename the subtitle too since the label is changed
  3830. "PR-welcome" was the former name.
  3831. - curl_setup.h: oops, shorten the too long line
  3832. - [Martin Storsjo brought this change]
  3833. curl_setup: Improve detection of CURL_WINDOWS_APP
  3834. If WINAPI_FAMILY is defined, it should be safe to try to include
  3835. winapifamily.h to check what the define evaluates to.
  3836. This should fix detection of CURL_WINDOWS_APP if building with
  3837. _WIN32_WINNT set to 0x0600.
  3838. Closes #2025
  3839. Jay Satiro (26 Oct 2017)
  3840. - transfer: Fix chunked-encoding upload bug
  3841. - When uploading via chunked-encoding don't compare file size to bytes
  3842. sent to determine whether the upload has finished.
  3843. Chunked-encoding adds its own overhead which why the bytes sent is not
  3844. equal to the file size. Prior to this change if a file was uploaded in
  3845. chunked-encoding and its size was known it was possible that the upload
  3846. could end prematurely without sending the final few chunks. That would
  3847. result in a server hang waiting for the remaining data, likely followed
  3848. by a disconnect.
  3849. The scope of this bug is limited to some arbitrary file sizes which have
  3850. not been determined. One size that triggers the bug is 475020.
  3851. Bug: https://github.com/curl/curl/issues/2001
  3852. Reported-by: moohoorama@users.noreply.github.com
  3853. Closes https://github.com/curl/curl/pull/2010
  3854. Daniel Stenberg (26 Oct 2017)
  3855. - timeval: make timediff_t also work on 32bit windows
  3856. ... by using curl_off_t for the typedef if time_t is larger than 4
  3857. bytes.
  3858. Reported-by: Gisle Vanem
  3859. Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
  3860. mmitcomment-25205058
  3861. Closes #2019
  3862. - curl_fnmatch: return error on illegal wildcard pattern
  3863. ... instead of doing an infinite loop!
  3864. Added test 1162 to verify.
  3865. Reported-by: Max Dymond
  3866. Fixes #2015
  3867. Closes #2017
  3868. - [Max Dymond brought this change]
  3869. wildcards: don't use with non-supported protocols
  3870. Fixes timeouts in the fuzzing tests for non-FTP protocols.
  3871. Closes #2016
  3872. - [Max Dymond brought this change]
  3873. multi: allow table handle sizes to be overridden
  3874. Allow users to specify their own hash define for
  3875. CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
  3876. Closes #1982
  3877. - time: rename Curl_tvnow to Curl_now
  3878. ... since the 'tv' stood for timeval and this function does not return a
  3879. timeval struct anymore.
  3880. Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
  3881. clean up the descriptive comments.
  3882. Closes #2011
  3883. - ftplistparser: follow-up cleanup to remove PL_ERROR()
  3884. - [Max Dymond brought this change]
  3885. ftplistparser: free off temporary memory always
  3886. When using the FTP list parser, ensure that the memory that's
  3887. allocated is always freed.
  3888. Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
  3889. Closes #2013
  3890. - timediff: return timediff_t from the time diff functions
  3891. ... to cater for systems with unsigned time_t variables.
  3892. - Renamed the functions to curlx_timediff and Curl_timediff_us.
  3893. - Added overflow protection for both of them in either direction for
  3894. both 32 bit and 64 bit time_ts
  3895. - Reprefixed the curlx_time functions to use Curl_*
  3896. Reported-by: Peter Piekarski
  3897. Fixes #2004
  3898. Closes #2005
  3899. - [Paul Howarth brought this change]
  3900. libtest: Add required test libraries for lib1552 and lib1553
  3901. They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
  3902. This fixes build failures on Fedora 13.
  3903. Closes #2006
  3904. - [Alessandro Ghedini brought this change]
  3905. libcurl-tutorial.3: fix typo
  3906. closes #2008
  3907. Alessandro Ghedini (23 Oct 2017)
  3908. - curl_mime_filedata.3: fix typos
  3909. Daniel Stenberg (23 Oct 2017)
  3910. - RELEASE-NOTES: clean slate towards 7.57.0
  3911. - [Max Dymond brought this change]
  3912. travis: exit if any steps fail
  3913. We don't expect any steps to fail in travis. Exit the script if they do.
  3914. Closes #1966
  3915. Version 7.56.1 (23 Oct 2017)
  3916. Daniel Stenberg (23 Oct 2017)
  3917. - RELEASE-NOTES: 7.56.1
  3918. - THANKS: update at 7.56.1 release time
  3919. - [Jon DeVree brought this change]
  3920. mk-ca-bundle: Remove URL for aurora
  3921. Aurora is no longer used by Mozilla
  3922. https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
  3923. - [Jon DeVree brought this change]
  3924. mk-ca-bundle: Fix URL for NSS
  3925. The 'tip' is the most recent branch committed to, this should be
  3926. 'default' like the URLs for the browser are.
  3927. Closes #1998
  3928. - imap: if a FETCH response has no size, don't call write callback
  3929. CVE-2017-1000257
  3930. Reported-by: Brian Carpenter and 0xd34db347
  3931. Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
  3932. - ftp: reject illegal IP/port in PASV 227 response
  3933. ... by using range checks. Among other things, this avoids an undefined
  3934. behavior for a left shift that could happen on negative or very large
  3935. values.
  3936. Closes #1997
  3937. Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
  3938. Patrick Monnerat (20 Oct 2017)
  3939. - test653: check reuse of easy handle after mime data change
  3940. See issue #1999
  3941. - mime: do not reuse previously computed multipart size
  3942. The contents might have changed: size must be recomputed.
  3943. Reported-by: moteus on github
  3944. Fixes #1999
  3945. - test308: disable if MultiSSL feature enabled
  3946. Even if OpenSSL is enabled, it might not be the default backend when
  3947. multi-ssl is enabled, causing the test to fail.
  3948. - runtests: support MultiSSL client feature
  3949. - vtls: change struct Curl_ssl `close' field name to `close_one'.
  3950. On OS/400, `close' is an ASCII system macro that corrupts the code if
  3951. not used in a context not targetting the close() system API.
  3952. - os400: add missing symbols in config file.
  3953. Also adjust makefile to renamed files and warn about installation dirs mix-up.
  3954. - test652: curl_mime_data + base64 encoder with large contents
  3955. - mime: limit bas64-encoded lines length to 76 characters
  3956. Daniel Stenberg (16 Oct 2017)
  3957. - RELEASE-NOTES: synced with f121575c0
  3958. - setopt: range check most long options
  3959. ... filter early instead of risking "funny values" having to be dealt
  3960. with elsewhere.
  3961. - setopt: avoid integer overflows when setting millsecond values
  3962. ... that are multiplied by 1000 when stored.
  3963. For 32 bit long systems, the max value accepted (2147483 seconds) is >
  3964. 596 hours which is unlikely to ever be set by a legitimate application -
  3965. and previously it didn't work either, it just caused undefined behavior.
  3966. Also updated the man pages for these timeout options to mention the
  3967. return code.
  3968. Closes #1938
  3969. Viktor Szakats (15 Oct 2017)
  3970. - makefile.m32: allow to override gcc, ar and ranlib
  3971. Allow to ovverride certain build tools, making it possible to
  3972. use LLVM/Clang to build curl. The default behavior is unchanged.
  3973. To build with clang (as offered by MSYS2), these settings can
  3974. be used:
  3975. CURL_CC=clang
  3976. CURL_AR=llvm-ar
  3977. CURL_RANLIB=llvm-ranlib
  3978. Closes https://github.com/curl/curl/pull/1993
  3979. - ldap: silence clang warning
  3980. Use memset() to initialize a structure to avoid LLVM/Clang warning:
  3981. ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
  3982. Closes https://github.com/curl/curl/pull/1992
  3983. Daniel Stenberg (14 Oct 2017)
  3984. - runtests: use valgrind for torture as well
  3985. NOTE: it makes them terribly slow. I recommend only using valgrind for
  3986. specific torture tests or using lots of patience.
  3987. - memdebug: trace send, recv and socket
  3988. ... to allow them to be included in torture tests too.
  3989. closes #1980
  3990. - configure: remove the C++ compiler check
  3991. ... we used it only for the fuzzer, which we now have in a separate git
  3992. repo.
  3993. Closes #1990
  3994. Patrick Monnerat (13 Oct 2017)
  3995. - mime: do not call failf() if easy handle is NULL.
  3996. Daniel Stenberg (13 Oct 2017)
  3997. - test651: curl_formadd with huge COPYCONTENTS
  3998. - mime: fix the content reader to handle >16K data properly
  3999. Reported-by: Jeroen Ooms
  4000. Closes #1988
  4001. Patrick Monnerat (12 Oct 2017)
  4002. - mime: keep "text/plain" content type if user-specified.
  4003. Include test cases in 554, 587, 650.
  4004. Fixes https://github.com/curl/curl/issues/1986
  4005. - cli tool: use file2memory() to buffer stdin in -F option.
  4006. Closes PR https://github.com/curl/curl/pull/1985
  4007. - cli tool: reimplement stdin buffering in -F option.
  4008. If stdin is not a regular file, its content is memory-buffered to enable
  4009. a possible data "rewind".
  4010. In all cases, stdin data size is determined before real use to avoid
  4011. having an unknown part's size.
  4012. --libcurl generated code is left as an unbuffered stdin fread/fseek callback
  4013. part with unknown data size.
  4014. Buffering is not supported in deprecated curl_formadd() API.
  4015. Daniel Stenberg (12 Oct 2017)
  4016. - winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
  4017. - HELP-US: the label "PR-welcome" is now renamed to "help wanted"
  4018. following the new github "standard"
  4019. - RELEASE-NOTES: synced with 5505df7d2
  4020. Jay Satiro (11 Oct 2017)
  4021. - [Artak Galoyan brought this change]
  4022. url: Update current connection SSL verify params in setopt
  4023. Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
  4024. connection updates the current connection's (i.e.'connectdata'
  4025. structure) appropriate ssl_config (and ssl_proxy_config) structures
  4026. variables, making these options effective for ongoing connection.
  4027. This functionality was available before and was broken by the
  4028. following change:
  4029. "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
  4030. CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
  4031. Bug: https://github.com/curl/curl/issues/1941
  4032. Closes https://github.com/curl/curl/pull/1951
  4033. Daniel Stenberg (11 Oct 2017)
  4034. - [David Benjamin brought this change]
  4035. openssl: don't use old BORINGSSL_YYYYMM macros
  4036. Those were temporary things we'd add and remove for our own convenience
  4037. long ago. The last few stayed around for too long as an oversight but
  4038. have since been removed. These days we have a running
  4039. BORINGSSL_API_VERSION counter which is bumped when we find it
  4040. convenient, but 2015-11-19 was quite some time ago, so just check
  4041. OPENSSL_IS_BORINGSSL.
  4042. Closes #1979
  4043. - test950; verify SMTP with custom request
  4044. - ftpserver: support case insensitive commands
  4045. - smtp_done: free data before returning (on send failure)
  4046. ... as otherwise it could leak that memory.
  4047. Detected by OSS-fuzz:
  4048. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
  4049. Assisted-by: Max Dymond
  4050. Closes #1977
  4051. - FTP: URL decode path for dir listing in nocwd mode
  4052. Reported-by: Zenju on github
  4053. Test 244 added to verify
  4054. Fixes #1974
  4055. Closes #1976
  4056. - test298: verify --ftp-method nowcwd with URL encoded path
  4057. Ref: #1974
  4058. - CURLOPT_XFERINFODATA.3: fix duplicate see also
  4059. - CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
  4060. - FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
  4061. - openssl: enable PKCS12 support for !BoringSSL
  4062. Enable PKCS12 for all non-boringssl builds without relying on configure
  4063. or cmake checks.
  4064. Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
  4065. Reported-by: Christian Schmitz
  4066. Closes #1948
  4067. - [Kristiyan Tsaklev brought this change]
  4068. curl: don't pass semicolons when parsing Content-Disposition
  4069. Test 1422 updated to verify.
  4070. Closes #1964
  4071. Patrick Monnerat (9 Oct 2017)
  4072. - mime: properly unbind mime structure in curl_mime_free().
  4073. This allows freeing a mime structure bound to the easy handle before
  4074. curl_easy_cleanup().
  4075. Fixes #1970.
  4076. Daniel Stenberg (9 Oct 2017)
  4077. - RTSP: avoid integer overflow on funny RTSP response
  4078. ... like a very large non-existing RTSP version number.
  4079. Added test 577 to verify.
  4080. Detected by OSS-fuzz.
  4081. Closes #1969
  4082. Patrick Monnerat (8 Oct 2017)
  4083. - ftpserver: properly reset $ftptargetdir.
  4084. - test643: verify curl_mime_subparts() rejects cyclic additions.
  4085. - mime: refuse to add subparts to one of their own descendants.
  4086. Reported-by: Alexey Melnichuk
  4087. Fixes #1962
  4088. - mime: avoid resetting a part's encoder when part's contents change.
  4089. - mime: improve unbinding top multipart from easy handle.
  4090. Also avoid dangling pointers in referencing parts.
  4091. Daniel Stenberg (8 Oct 2017)
  4092. - RELEASE-NOTES: synced with a4c1c75da30af1
  4093. - curlver.h: next expected release is 7.57.0
  4094. Patrick Monnerat (8 Oct 2017)
  4095. - mime: be tolerant about setting twice the same header list in a part.
  4096. - docs: clarify form/mime usage of non-regular data files.
  4097. Daniel Stenberg (8 Oct 2017)
  4098. - Revert "multi_done: wait for name resolve to finish if still ongoing"
  4099. This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
  4100. Caused memory leaks in the fuzzer, needs to be done differently.
  4101. Disable test 1553 for now too, as it causes memory leaks without this
  4102. commit!
  4103. - remove_handle: call multi_done() first, then clear dns cache pointer
  4104. Closes #1960
  4105. - multi_done: wait for name resolve to finish if still ongoing
  4106. ... as we must clean up memory.
  4107. - pingpong: return error when trying to send without connection
  4108. When imap_done() got called before a connection is setup, it would try
  4109. to "finish up" and dereffed a NULL pointer.
  4110. Test case 1553 managed to reproduce. I had to actually use a host name
  4111. to try to resolve to slow it down, as using the normal local server IP
  4112. will make libcurl get a connection in the first curl_multi_perform()
  4113. loop and then the bug doesn't trigger.
  4114. Fixes #1953
  4115. Assisted-by: Max Dymond
  4116. Dan Fandrich (6 Oct 2017)
  4117. - tests: added flaky keyword to tests 587 and 644
  4118. These are around 5% flaky in my Linux x86 autobuilds.
  4119. Marcel Raad (6 Oct 2017)
  4120. - vtls: fix warnings with --disable-crypto-auth
  4121. When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
  4122. are not used.
  4123. Daniel Stenberg (6 Oct 2017)
  4124. - multi_cleanup: call DONE on handles that never got that
  4125. ... fixes a memory leak with at least IMAP when remove_handle is never
  4126. called and the transfer is abruptly just abandoned early.
  4127. Test 1552 added to verify
  4128. Detected by OSS-fuzz
  4129. Assisted-by: Max Dymond
  4130. Closes #1954
  4131. - [Benbuck Nason brought this change]
  4132. strtoofft: Remove extraneous null check
  4133. Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
  4134. argument.
  4135. Closes #1952
  4136. - openssl: fix build without HAVE_OPAQUE_EVP_PKEY
  4137. Reported-by: Javier Sixto
  4138. Fixes #1955
  4139. Closes #1956
  4140. Viktor Szakats (6 Oct 2017)
  4141. - lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
  4142. The source code is now prepared to handle the case when both
  4143. Win32 Crypto and OpenSSL/NSS crypto backends are enabled
  4144. at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
  4145. whenever the targeted Windows version supports it. Since this
  4146. matches the minimum Windows version supported by curl
  4147. (Windows 2000), enable it unconditionally for the Win32 platform.
  4148. This in turn enables SMB (and SMBS) protocol support whenever
  4149. Win32 Crypto is available, regardless of what other crypto backends
  4150. are enabled.
  4151. Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
  4152. Closes https://github.com/curl/curl/pull/1943
  4153. Daniel Stenberg (5 Oct 2017)
  4154. - build: fix --disable-crypto-auth
  4155. Reported-by: Wyatt O'Day
  4156. Fixes #1945
  4157. Closes #1947
  4158. Jay Satiro (5 Oct 2017)
  4159. - [Nick Zitzmann brought this change]
  4160. darwinssl: add support for TLSv1.3
  4161. Closes https://github.com/curl/curl/pull/1794
  4162. Daniel Stenberg (4 Oct 2017)
  4163. - [Felix Kaiser brought this change]
  4164. docs: fix typo in curl_mime_data_cb man page
  4165. Closes #1946
  4166. Viktor Szakats (4 Oct 2017)
  4167. - lib/Makefile.m32: allow customizing dll suffixes
  4168. - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
  4169. libcurl dll name. Useful to add `-x64` to 64-bit builds so that
  4170. it can live in the same directory as the 32-bit one. By default
  4171. this is empty.
  4172. - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
  4173. generated import library (implib) for libcurl .dll. It defaults
  4174. to `dll`, and it's useful to modify that to `.dll` to have the
  4175. standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
  4176. Closes https://github.com/curl/curl/pull/1942
  4177. Daniel Stenberg (4 Oct 2017)
  4178. - [Max Dymond brought this change]
  4179. fuzzer: move to using external curl-fuzzer
  4180. Use the external curl-fuzzer repository for fuzzing.
  4181. Closes #1923
  4182. - failf: skip the sprintf() if there are no consumers
  4183. Closes #1936
  4184. - ftp: UBsan fixup 'pointer index expression overflowed'
  4185. Closes #1939
  4186. - RELEASE-PROCEDURE: update the release schedule
  4187. Version 7.56.0 (4 Oct 2017)
  4188. Daniel Stenberg (4 Oct 2017)
  4189. - RELEASE-NOTES: curl 7.56.0
  4190. - THANKS: added new 7.56.0 contributors
  4191. Jay Satiro (4 Oct 2017)
  4192. - build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
  4193. Ref: https://github.com/curl/curl/issues/1002
  4194. Michael Kaufmann (3 Oct 2017)
  4195. - idn: fix source code comment
  4196. - vtls: compare and clone ssl configs properly
  4197. Compare these settings in Curl_ssl_config_matches():
  4198. - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
  4199. - random_file (CURLOPT_RANDOM_FILE)
  4200. - egdsocket (CURLOPT_EGDSOCKET)
  4201. Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
  4202. and copy the setting "sessionid" unconditionally.
  4203. This means that reusing connections that are secured with a client
  4204. certificate is now possible, and the statement "TLS session resumption
  4205. is disabled when a client certificate is used" in the old advisory at
  4206. https://curl.haxx.se/docs/adv_20170419.html is obsolete.
  4207. Reviewed-by: Daniel Stenberg
  4208. Closes #1917
  4209. - proxy: read the "no_proxy" variable only if necessary
  4210. Reviewed-by: Daniel Stenberg
  4211. Closes #1919
  4212. Patrick Monnerat (3 Oct 2017)
  4213. - libcurl-tutorial: add casts in example to avoid compilation warnings.
  4214. Daniel Stenberg (3 Oct 2017)
  4215. - examples: bring back curl_formadd-using examples
  4216. ... now with a -formadd suffix. While the new mime API is introduced in
  4217. 7.56.0 we must acknowledge that lots of users can't upgrade their curl
  4218. versions immediately.
  4219. - test1153: verify quoted double-qoutes in PWD response
  4220. - FTP: zero terminate the entry path even on bad input
  4221. ... a single double quote could leave the entry path buffer without a zero
  4222. terminating byte. CVE-2017-1000254
  4223. Test 1152 added to verify.
  4224. Reported-by: Max Dymond
  4225. Bug: https://curl.haxx.se/docs/adv_20171004.html
  4226. Jay Satiro (2 Oct 2017)
  4227. - [Sergei Nikulov brought this change]
  4228. cmake: disable tests and man generation if perl/nroff not found
  4229. Fixes https://github.com/curl/curl/issues/1500
  4230. Reported-by: Jay Satiro
  4231. Fixes https://github.com/curl/curl/pull/1662
  4232. Assisted-by: Tom Seddon
  4233. Assisted-by: dpull@users.noreply.github.com
  4234. Assisted-by: elelel@users.noreply.github.com
  4235. Closes https://github.com/curl/curl/pull/1924
  4236. Patrick Monnerat (2 Oct 2017)
  4237. - libcurl-tutorial: fix two typos.
  4238. - TODO: remove deprecated form API items.
  4239. - libcurl-tutorial: describe MIME API and deprecate form API.
  4240. Include a guide to form/mime API conversion.
  4241. Daniel Stenberg (30 Sep 2017)
  4242. - cookie: fix memory leak if path was set twice in header
  4243. ... this will let the second occurance override the first.
  4244. Added test 1161 to verify.
  4245. Reported-by: Max Dymond
  4246. Fixes #1932
  4247. Closes #1933
  4248. Dan Fandrich (30 Sep 2017)
  4249. - test650: Use variable replacement to set the host address and port
  4250. Otherwise, the test fails when the -b test option is used to set a
  4251. different test port range.
  4252. - Set and use more necessary options when some protocols are disabled
  4253. When curl and libcurl are built with some protocols disabled, they stop
  4254. setting and receiving some options that don't make sense with those
  4255. protocols. In particular, when HTTP is disabled many options aren't set
  4256. that are used only by HTTP. However, some options that appear to be
  4257. HTTP-only are actually used by other protocols as well (some despite
  4258. having HTTP in the name) and should be set, but weren't. This change now
  4259. causes some of these options to be set and used for more (or for all)
  4260. protocols. In particular, this fixes tests 646 through 649 in an
  4261. HTTP-disabled build, which use the MIME API in the mail protocols.
  4262. Daniel Stenberg (29 Sep 2017)
  4263. - test1160: verifies cookie leak for large cookies
  4264. The fix done in 20ea22ff735
  4265. - cookie: fix memory leak on oversized rejection
  4266. Regression brought by 2bc230de63b
  4267. Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
  4268. Assisted-by: Max Dymond
  4269. Closes #1930
  4270. - [Anders Bakken brought this change]
  4271. connect: fix race condition with happy eyeballs timeout
  4272. The timer should be started after conn->connecttime is set. Otherwise
  4273. the timer could expire without this condition being true:
  4274. /* should we try another protocol family? */
  4275. if(i == 0 && conn->tempaddr[1] == NULL &&
  4276. curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
  4277. Ref: #1928
  4278. Michael Kaufmann (28 Sep 2017)
  4279. - docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
  4280. Closes #1922
  4281. - docs: clarify the use of environment variables for proxy
  4282. Closes #1921
  4283. - http: add custom empty headers to repeated requests
  4284. Closes #1920
  4285. - reuse_conn: don't copy flags that are known to be equal
  4286. A connection can only be reused if the flags "conn_to_host" and
  4287. "conn_to_port" match. Therefore it is not necessary to copy these flags
  4288. in reuse_conn().
  4289. Closes #1918
  4290. Daniel Stenberg (27 Sep 2017)
  4291. - curl.h: include <sys/select.h> on cygwin too
  4292. When building with -std=c++14 on cygwin, this header won't be
  4293. automatically included as it otherwise is.
  4294. The <sys/select.h> include decision should ideally be reversed and be
  4295. avoided where that header file doesn't exist.
  4296. Reported-by: Ian Fette
  4297. Fixes #1925
  4298. - RELEASE-NOTES: synced with d8ab5dc50
  4299. Michael Kaufmann (24 Sep 2017)
  4300. - tests: adjust .gitignore for new tests
  4301. Jay Satiro (23 Sep 2017)
  4302. - ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
  4303. .. and include the core NTLM header in all NTLM-related source files.
  4304. Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
  4305. but did not include vtls.h where it was defined.
  4306. Closes https://github.com/curl/curl/pull/1911
  4307. Daniel Stenberg (23 Sep 2017)
  4308. - file_range: avoid integer overflow when figuring out byte range
  4309. When trying to bump the value with one and the value is already at max,
  4310. it causes an integer overflow.
  4311. Closes #1908
  4312. Detected by oss-fuzz:
  4313. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
  4314. Assisted-by: Max Dymond
  4315. Michael Kaufmann (23 Sep 2017)
  4316. - tests: fix a compiler warning in test 643
  4317. Jay Satiro (23 Sep 2017)
  4318. - symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
  4319. - Use spaces instead of tabs as the delimiter.
  4320. Follow up to 7c52b12 which added the entry. The entry had used tabs but
  4321. the symbol-scan parser doesn't recognize tabs and would fail the symbol.
  4322. Viktor Szakats (22 Sep 2017)
  4323. - metalink: fix NSS issue in MultiSSL builds
  4324. In MultiSSL mode (i.e. when more than one SSL backend is compiled
  4325. in), we cannot use the compile time flag `USE_NSS` as indicator that
  4326. the NSS backend is in use. As far as Metalink is concerned, the SSL
  4327. backend is only used for MD5, SHA-1 and SHA-256 calculations,
  4328. therefore one of the available SSL backends is selected at compile
  4329. time, in a strict order of preference.
  4330. Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
  4331. to determine whether the SSL backend used for Metalink is the NSS
  4332. backend, and use that to guard the code that wants to de-initialize
  4333. the NSS-specific data structure.
  4334. Ref: https://github.com/curl/curl/pull/1848
  4335. - ntlm: use strict order for SSL backend #if branches
  4336. With the recently introduced MultiSSL support multiple SSL backends
  4337. can be compiled into cURL That means that now the order of the SSL
  4338. One option would be to use the same SSL backend as was configured
  4339. via `curl_global_sslset()`, however, NTLMv2 support would appear
  4340. to be available only with some SSL backends. For example, when
  4341. eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
  4342. support for NTLMv1 using Windows' Crypt API, it specifically did
  4343. *not* introduce NTLMv2 support using Crypt API at the same time.
  4344. So let's select one specific SSL backend for NTLM support when
  4345. compiled with multiple SSL backends, using a priority order such
  4346. that we support NTLMv2 even if only one compiled-in SSL backend can
  4347. be used for that.
  4348. Ref: https://github.com/curl/curl/pull/1848
  4349. Daniel Stenberg (22 Sep 2017)
  4350. - symbols-in-versions: add CURLSSLSET_NO_BACKENDS
  4351. ...fixup from b8e0fe19ec
  4352. - imap: quote atoms properly when escaping characters
  4353. Updates test 800 to verify
  4354. Fixes #1902
  4355. Closes #1903
  4356. - tests: make the imap server not verify user+password
  4357. ... as the test cases themselves do that and it makes it easier to add
  4358. crazy test cases.
  4359. Test 800 updated to use user name + password that need quoting.
  4360. Test 856 updated to trigger an auth fail differently.
  4361. Ref: #1902
  4362. - vtls: provide curl_global_sslset() even in non-SSL builds
  4363. ... it just returns error:
  4364. Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
  4365. Reported-by: Marcel Raad
  4366. Closes #1906
  4367. Patrick Monnerat (22 Sep 2017)
  4368. - form/mime: field names are not allowed to contain zero-valued bytes.
  4369. Also suppress length argument of curl_mime_name() (names are always
  4370. zero-terminated).
  4371. Daniel Stenberg (21 Sep 2017)
  4372. - [Dirk Feytons brought this change]
  4373. openssl: only verify RSA private key if supported
  4374. In some cases the RSA key does not support verifying it because it's
  4375. located on a smart card, an engine wants to hide it, ...
  4376. Check the flags on the key before trying to verify it.
  4377. OpenSSL does the same thing internally; see ssl/ssl_rsa.c
  4378. Closes #1904
  4379. Marcel Raad (21 Sep 2017)
  4380. - examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
  4381. Otherwise, typecheck-gcc.h warns on MinGW-w64.
  4382. Patrick Monnerat (20 Sep 2017)
  4383. - mime: rephrase the multipart output state machine (#1898) ...
  4384. ... in hope coverity will like it much.
  4385. - mime: fix an explicit null dereference (#1899)
  4386. Daniel Stenberg (20 Sep 2017)
  4387. - curl: check fseek() return code and bail on error
  4388. Detected by coverity. CID 1418137.
  4389. - smtp: fix memory leak in OOM
  4390. Regression since ce0881edee
  4391. Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
  4392. torture testing.
  4393. - RELEASE-NOTES: synced with 5fe85587c
  4394. - [Pavel Pavlov brought this change]
  4395. cookies: use lock when using CURLINFO_COOKIELIST
  4396. Closes #1896
  4397. - [Max Dymond brought this change]
  4398. ossfuzz: changes before merging the generated corpora
  4399. Before merging in the oss-fuzz corpora from Google, there are some changes
  4400. to the fuzzer.
  4401. - Add a read corpus script, to display corpus files nicely.
  4402. - Change the behaviour of the fuzzer so that TLV parse failures all now
  4403. go down the same execution paths, which should reduce the size of the
  4404. corpora.
  4405. - Make unknown TLVs a failure to parse, which should decrease the size
  4406. of the corpora as well.
  4407. Closes #1881