ChangeLog 289 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232
  1. 2021-09-03 Dmitry V. Levin <ldv@altlinux.org>
  2. Fix a typo found using codespell tool.
  3. * modules/pam_pwhistory/pam_pwhistory.c: Replace "crypted password" with
  4. "hashed password" in comment.
  5. * modules/pam_unix/passverify.c (create_password_hash): Rename "crypted"
  6. local variable to "hashed".
  7. 2021-08-30 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  8. configure.ac: also search libcrypt through pkg-config.
  9. libxcrypt provides a libcrypt.pc file so use it if available as this
  10. will allow to retrieve the library path (e.g.
  11. -L/home/buildroot/output/host//riscv64-buildroot-linux-musl/sysroot/usr/lib)
  12. which is useful when cross-compiling and will avoid the following build
  13. failure on buildroot:
  14. /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv64-buildroot-linux-musl/10.2.0/../../../../riscv64-buildroot-linux-musl/bin/ld: .libs/passverify.o: in function `.L30':
  15. passverify.c:(.text+0x368): undefined reference to `crypt_checksalt'
  16. Fixes:
  17. - http://autobuild.buildroot.org/results/20b14e222b35c2d1269960075832b784ba81aa1a
  18. 2021-08-19 Dmitry V. Levin <ldv@altlinux.org>
  19. pam_unix: workaround the problem caused by libnss_systemd.
  20. The getspnam(3) manual page says that errno shall be set to EACCES when
  21. the caller does not have permission to access the shadow password file.
  22. Unfortunately, this contract is broken when libnss_systemd is used in
  23. the nss stack.
  24. Workaround this problem by falling back to the helper invocation when
  25. pam_modutil_getspnam returns NULL regardless of errno. As pam_unix
  26. already behaves this way when selinux is enabled, it should be OK
  27. for the case when selinux is not enabled, too.
  28. * modules/pam_unix/passverify.c (get_account_info): When
  29. pam_modutil_getspnam returns NULL, unconditionally fall back
  30. to the helper invocation.
  31. Complements: f220cace2053 ("Permit unix_chkpwd & pam_unix.so to run without being setuid-root")
  32. Resolves: https://github.com/linux-pam/linux-pam/issues/379
  33. 2021-08-18 Jérôme Fenal <jfenal@free.fr>
  34. po: update translations using Weblate (French)
  35. Currently translated at 100.0% (100 of 100 strings).
  36. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  37. 2021-08-02 panchenbo <panchenbo@uniontech.com>
  38. po/zh_CN.po: fix pam_lastlog translation errors.
  39. Closes: https://github.com/linux-pam/linux-pam/issues/383
  40. 2021-07-24 simmon <simmon@nplob.com>
  41. po: update translations using Weblate (Korean)
  42. Currently translated at 100.0% (100 of 100 strings).
  43. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
  44. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  45. po: update translations using Weblate (Swedish)
  46. Currently translated at 100.0% (100 of 100 strings).
  47. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/
  48. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  49. po: update translations using Weblate (Portuguese (Brazil))
  50. Currently translated at 100.0% (100 of 100 strings).
  51. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
  52. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  53. po: update translations using Weblate (Portuguese (Brazil))
  54. Currently translated at 100.0% (100 of 100 strings).
  55. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/
  56. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  57. po: update translations using Weblate (Dutch)
  58. Currently translated at 100.0% (100 of 100 strings).
  59. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
  60. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  61. po: update translations using Weblate (Italian)
  62. Currently translated at 100.0% (100 of 100 strings).
  63. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
  64. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  65. po: update translations using Weblate (Hebrew)
  66. Currently translated at 100.0% (100 of 100 strings).
  67. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
  68. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  69. po: update translations using Weblate (Finnish)
  70. Currently translated at 100.0% (100 of 100 strings).
  71. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
  72. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  73. po: update translations using Weblate (Danish)
  74. Currently translated at 100.0% (100 of 100 strings).
  75. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/
  76. 2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
  77. po: update translations using Weblate (Catalan)
  78. Currently translated at 100.0% (100 of 100 strings).
  79. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
  80. 2021-07-22 Yuri Chornoivan <yurchor@ukr.net>
  81. po: update translations using Weblate (Ukrainian)
  82. Currently translated at 100.0% (100 of 100 strings).
  83. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/
  84. 2021-07-22 Oğuz Ersen <oguzersen@protonmail.com>
  85. po: update translations using Weblate (Turkish)
  86. Currently translated at 100.0% (100 of 100 strings).
  87. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  88. 2021-07-21 Piotr Drąg <piotrdrag@gmail.com>
  89. po: update translations using Weblate (Polish)
  90. Currently translated at 100.0% (100 of 100 strings).
  91. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  92. 2021-07-21 Dmitry V. Levin <ldv@altlinux.org>
  93. po: update translations using Weblate (German)
  94. Currently translated at 100.0% (100 of 100 strings).
  95. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
  96. 2021-07-21 Dmitry V. Levin <ldv@altlinux.org>
  97. po: update translations using Weblate (Russian)
  98. Currently translated at 100.0% (100 of 100 strings).
  99. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/
  100. 2021-07-21 Seong-ho Cho <darkcircle.0426@gmail.com>
  101. po: update translations using Weblate (Korean)
  102. Currently translated at 100.0% (99 of 99 strings).
  103. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
  104. 2021-07-20 Dmitry V. Levin <ldv@altlinux.org>
  105. po: update .pot and .po files.
  106. Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po"
  107. command.
  108. Prepare for 1.5.2 release.
  109. * configure.ac (AC_INIT): Raise version to 1.5.2.
  110. * NEWS: Update.
  111. pam_faillock: remove confusing comment.
  112. * modules/pam_faillock/pam_faillock.c (faillock_message): Remove the
  113. comment that meant to help translators but actually confused xgettext.
  114. 2021-07-09 Iker Pedrosa <ipedrosa@redhat.com>
  115. pam_filter: Close file after controlling tty.
  116. Failing to check the descriptor value meant that there was a bug in the
  117. attempt to close the controlling tty. Moreover, this would lead to a
  118. file descriptor leak as pointed out by the static analyzer tool:
  119. Error: RESOURCE_LEAK (CWE-772): [#def26]
  120. Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: open_fn: Returning handle opened by "open". [Note: The source code implementation of the function has been overridden by a user model.]
  121. Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: var_assign: Assigning: "t" = handle returned from "open("/dev/tty", 2)".
  122. Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: off_by_one: Testing whether handle "t" is strictly greater than zero is suspicious. "t" leaks when it is zero.
  123. Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: remediation: Did you intend to include equality with zero?
  124. Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:367: leaked_handle: Handle variable "t" going out of scope leaks the handle.
  125. 365| pam_syslog(pamh, LOG_ERR,
  126. 366| "child cannot become new session: %m");
  127. 367|-> return PAM_ABORT;
  128. 368| }
  129. 369|
  130. 2021-06-29 Andrew G. Morgan <morgan@kernel.org>
  131. Permit unix_chkpwd & pam_unix.so to run without being setuid-root.
  132. Remove the hard-coding of the idea that the only way pam_unix.so can
  133. read the shadow file is if it can, in some way, run setuid-root.
  134. Linux capabilities only require cap_dac_override to read the /etc/shadow
  135. file.
  136. This change achieves two things: it opens a path for a linux-pam
  137. application to run without being setuid-root; further, it allows
  138. unix_chkpwd to run non-setuid-root if it is installed:
  139. sudo setcap cap_dac_override=ep unix_chkpwd
  140. If we wanted to link against libcap, we could install this binary with
  141. cap_dac_override=p, and use cap_set_proc() to raise the effective bit
  142. at runtime. However, some distributions already link unix_chkpwd
  143. against libcap-ng for some, likely spurious, reason so "ep" is fine
  144. for now.
  145. 2021-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  146. configure.ac: fix build with libxcrypt and uclibc-ng.
  147. Fix the following build failure with libxcrypt and uclibc-ng:
  148. ld: unix_chkpwd-passverify.o: in function `verify_pwd_hash':
  149. passverify.c:(.text+0xab4): undefined reference to `crypt_checksalt'
  150. Fixes:
  151. - http://autobuild.buildroot.org/results/65d68b7c9c7de1c7cb0f941ff9982f93a49a56f8
  152. 2021-06-14 Mathieu Trossevin <mathieu.trossevin@gmail.com>
  153. Add pkgconfig files for provided libraries.
  154. * .gitignore: Add .pc files as they are generated by autoconf.
  155. * configure.ac: Generate .pc files for libpam, libpam_misc and libpamc.
  156. * libpam/Makefile.am: Install pam.pc.
  157. * libpam/pam.pc.in: New file.
  158. * libpam_misc/Makefile.am: Install pam_misc.pc
  159. * libpam_misc/pam_misc.pc.in: New file.
  160. * libpamc/Makefile.am: Install pamc.pc
  161. This allow applications and PAM modules to automatically find libpam,
  162. libpam_misc and libpamc if they are installed instead of having to
  163. manually search for them.
  164. 2021-06-14 Björn Esser <besser82@fedoraproject.org>
  165. Remove support for legacy xcrypt.
  166. Since many distributions are shipping a version of libxcrypt >= 4.0.0
  167. as a replacement for glibc's libcrypt now, older versions of xcrypt,
  168. which could be installed in parallel, are not relevant anymore.
  169. * configure.ac (AC_CHECK_HEADERS): Remove xcrypt.h.
  170. (AC_SEARCH_LIBS): Remove xcrypt.
  171. (AC_CHECK_FUNCS): Remove crypt_gensalt_r.
  172. (AC_DEFINE): Remove HAVE_LIBXCRYPT.
  173. * modules/pam_pwhistory/opasswd.c [HAVE_LIBXCRYPT]: Remove.
  174. * modules/pam_unix/bigcrypt.c [HAVE_LIBXCRYPT]: Likewise.
  175. * modules/pam_userdb/pam_userdb.c [HAVE_LIBXCRYPT]: Likewise.
  176. * modules/pam_unix/passverify.c [HAVE_LIBXCRYPT]: Likewise.
  177. (create_password_hash) [HAVE_LIBXCRYPT]: Likewise.
  178. 2021-06-14 Jeff Squyres <jsquyres@cisco.com>
  179. pam_misc: set default length of misc_conv() buffer to 4096.
  180. pam_misc: make length of misc_conv() configurable.
  181. Add --with-misc-conv-bufsize=<number> option to configure to allow
  182. a longer buffer size for libpam_misc's misc_conv() function (it still
  183. defaults to 512 bytes).
  184. 2021-06-14 Iker Pedrosa <ipedrosa@redhat.com>
  185. pam_timestamp: replace hmac implementation.
  186. sha1 is no longer recommended as a cryptographic algorithm for
  187. authentication. Thus, the idea of this change is to replace the
  188. implementation provided by hmacsha1 included in pam_timestamp module by
  189. the one in the openssl library. This way, there's no need to maintain
  190. the cryptographic algorithm implementation and it can be easily changed
  191. with a single configuration change.
  192. modules/pam_timestamp/hmac_openssl_wrapper.c: implement wrapper
  193. functions around openssl's hmac implementation. Moreover, manage the key
  194. generation and its read and write in a file. Include an option to
  195. configure the cryptographic algorithm in login.defs file.
  196. modules/pam_timestamp/hmac_openssl_wrapper.h: likewise.
  197. modules/pam_timestamp/pam_timestamp.c: replace calls to functions
  198. provided by hmacsha1 by functions provided by openssl's wrapper.
  199. configure.ac: include openssl dependecy if it is enabled.
  200. modules/pam_timestamp/Makefile.am: include new files and openssl library
  201. to compilation.
  202. ci/install-dependencies.sh: include openssl library to dependencies.
  203. NEWS: add new item to next release.
  204. Make.xml.rules.in: add stringparam profiling for hmac
  205. doc/custom-man.xsl: change import docbook to one with profiling
  206. modules/pam_timestamp/pam_timestamp.8.xml: add conditional paragraph to
  207. indicate the value in /etc/login.defs that holds the value for the
  208. encryption algorithm
  209. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1947294
  210. 2021-06-13 Dmitry V. Levin <ldv@altlinux.org>
  211. .github: add gcc-11, clang-12, and clang-11 jobs.
  212. * .github/workflows/ci.yml (gcc11-x86_64, gcc11-x86, gcc11-x32,
  213. clang12-x86_64, clang11-x86_64): New jobs.
  214. 2021-06-13 Dmitry V. Levin <ldv@altlinux.org>
  215. tests: fix -Wmaybe-uninitialized warnings.
  216. Fix the following class of compilation warnings reported by gcc 11:
  217. tst-pam_end.c: In function ‘main’:
  218. tst-pam_end.c:55:12: error: ‘conv’ may be used uninitialized [-Werror=maybe-uninitialized]
  219. 55 | retval = pam_start (service, user, &conv, &pamh);
  220. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  221. In file included from tst-pam_end.c:41:
  222. ../libpam/include/security/pam_appl.h:23:1: note: by argument 3 of type ‘const struct pam_conv *’ to ‘pam_start’ declared here
  223. 23 | pam_start(const char *service_name, const char *user,
  224. | ^~~~~~~~~
  225. tst-pam_end.c:49:19: note: ‘conv’ declared here
  226. 49 | struct pam_conv conv;
  227. | ^~~~
  228. * tests/tst-pam_end.c (main): Initialize conv variable.
  229. * tests/tst-pam_fail_delay.c: Likewise.
  230. * tests/tst-pam_get_item.c: Likewise.
  231. * tests/tst-pam_getenvlist.c: Likewise.
  232. * tests/tst-pam_set_data.c: Likewise.
  233. * tests/tst-pam_set_item.c: Likewise.
  234. * tests/tst-pam_start.c: Likewise.
  235. * tests/tst-pam_start_confdir.c: Likewise.
  236. 2021-06-10 Dmitry V. Levin <ldv@altlinux.org>
  237. pam_unix: do not use crypt_checksalt when checking for password expiration
  238. According to Zack Weinberg, the intended meaning of
  239. CRYPT_SALT_METHOD_LEGACY is "passwd(1) should not use this hashing
  240. method", it is not supposed to mean "force a password change on next
  241. login for any user with an existing stored hash using this method".
  242. This reverts commit 4da9febc39b955892a30686e8396785b96bb8ba5.
  243. * modules/pam_unix/passverify.c (check_shadow_expiry)
  244. [CRYPT_CHECKSALT_AVAILABLE]: Remove.
  245. Closes: https://github.com/linux-pam/linux-pam/issues/367
  246. 2021-06-10 Patrick Schleizer <adrelanos@whonix.org>
  247. pam_exec: implement quiet_log option.
  248. * modules/pam_exec/pam_exec.c (call_exec): Implement quiet_log option.
  249. * modules/pam_exec/pam_exec.8.xml: Document it.
  250. Resolves: https://github.com/linux-pam/linux-pam/issues/334
  251. 2021-05-24 Jeff Squyres <jsquyres@cisco.com>
  252. pam.conf: clarify default action for unspecified return codes.
  253. Add short blurbs explaining that if a return code is not specified in
  254. the "[value1=action1 value2=action2 ...]" form and "default=action" is
  255. not specified, that return code's action defaults to "bad".
  256. 2021-05-01 Hasan <aliyevH@hotmail.com>
  257. man: fix spelling bug in pam_end.3.xml.
  258. * doc/man/pam_end.3.xml: Fix repeated words.
  259. 2021-04-25 simmon <simmon@nplob.com>
  260. po: update translations using Weblate (Korean)
  261. Currently translated at 100.0% (99 of 99 strings).
  262. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
  263. 2021-04-25 Emilio Herrera <ehespinosa57@gmail.com>
  264. po: update translations using Weblate (Spanish)
  265. Currently translated at 81.8% (81 of 99 strings).
  266. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/
  267. 2021-04-22 Josef Moellers <jmoellers@suse.de>
  268. pam_limits: "Unlimited" is not a valid value for RLIMIT_NOFILE.
  269. Replace it with a value obtained from /proc/sys/fs/nr_open
  270. * modules/pam_limits/limits.conf.5.xml: Document the replacement.
  271. * modules/pam_limits/pam_limits.c: Replace unlimited RLIMIT_NOFILE
  272. value with a value obtained from /proc/sys/fs/nr_open
  273. 2021-04-21 Stanislav Zidek <szidek@redhat.com>
  274. pam_userdb: Prevent garbage characters from db.
  275. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1791965
  276. 2021-04-12 Tomas Mraz <tmraz@fedoraproject.org>
  277. misc_conv: Flush the terminal input after the password is read.
  278. Fixes #347
  279. * libpam_misc/misc_conv.c (read_string): Use TCSAFLUSH instead
  280. of TCSADRAIN when resetting the terminal echo state
  281. 2021-04-12 Tomas Mraz <tmraz@fedoraproject.org>
  282. pam_access: clean up the remote host matching code.
  283. * modules/pam_access/pam_access.c (from_match): Split out remote_match()
  284. function and avoid calling it when matching against LOCAL keyword.
  285. There is also no point in doing domain match against TTY or SERVICE.
  286. 2021-03-25 chuanqin <chuanqing.qin@nokia-sbell.com>
  287. pam_faillock: convert spaces to tab to keep code style.
  288. convert spaces to tab which mixture use in modules/pam_faillock/main.c
  289. 2021-03-08 theslimshaney <33791263+theslimshaney@users.noreply.github.com>
  290. pam_env: fix example in pam_env.conf.5 for setting variable.
  291. 2021-03-05 dshein-alt <76520100+dshein-alt@users.noreply.github.com>
  292. pam_mkhomedir: use HOME_MODE or UMASK from /etc/login.defs.
  293. Follow the example of useradd(8) and set the user home directory mode
  294. to the value of HOME_MODE or UMASK configuration item from
  295. /etc/login.defs when umask option is not specified.
  296. 2021-02-13 Ricky Tigg <ricky.tigg@gmail.com>
  297. Ricky Tigg <ricky.tigg@gmail.com>
  298. po: update translations using Weblate (Finnish)
  299. Currently translated at 100.0% (99 of 99 strings).
  300. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
  301. 2021-02-13 Balázs Meskó <meskobalazs@mailbox.org>
  302. Balázs Meskó <meskobalazs@mailbox.org>
  303. po: update translations using Weblate (Hungarian)
  304. Currently translated at 77.7% (77 of 99 strings).
  305. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hu/
  306. 2021-02-13 Carmen Bianca Bakker <carmen@carmenbianca.eu>
  307. Carmen Bianca Bakker <carmen@carmenbianca.eu>
  308. po: update translations using Weblate (Esperanto)
  309. Currently translated at 43.4% (43 of 99 strings).
  310. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/eo/
  311. 2021-02-13 Weblate <noreply@weblate.org>
  312. Weblate <noreply@weblate.org>
  313. Update translation files.
  314. Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
  315. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/
  316. Translation: linux-pam/master
  317. 2021-01-27 Changqing Li <changqing.li@windriver.com>
  318. configure.ac: add --with-systemdunitdir option.
  319. * Add this option to support the following scenario:
  320. prefix = '/usr'
  321. servicedir = '/lib/systemd/system'
  322. * The default behavior is changed:
  323. If this option is not given, servicedir will be set to the value that is
  324. obtained from systemd pkg-config file. If the value cannot be obtained,
  325. servicedir will be set to the default value '$(prefix)/lib/systemd/system'.
  326. 2021-01-27 Changqing Li <changqing.li@windriver.com>
  327. faillock: create tallydir before creating tallyfile.
  328. The default tallydir is "/var/run/faillock", and this default
  329. tallydir may not exist.
  330. Function open may fail as tallydir does not exist when creating
  331. the tallyfile. Therefore, faillock will not work well.
  332. Fix this problem by creating tallydir before creating tallyfile
  333. when the tallydir does not exist.
  334. 2021-01-27 Ludwig Nussel <ludwig.nussel@suse.de>
  335. pam_securetty: don't complain about missing config.
  336. Not shipping a config file should be perfectly valid for distros while
  337. still having eg login pre-configured to honor securetty when present.
  338. PAM itself doesn't ship any template either. So avoid spamming the log
  339. file if /etc/securetty wasn't found.
  340. 2021-01-25 Kolja <razzeee@gmail.com>
  341. faillock: Use pluralization via dngettext or fallback.
  342. 2021-01-18 Andreas-Johann Ø Ulvestad <aj@aju.no>
  343. Andreas-Johann Ø Ulvestad <aj@aju.no>
  344. po: update translations using Weblate (Norwegian Nynorsk)
  345. Currently translated at 100.0% (99 of 99 strings).
  346. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nn/
  347. 2021-01-18 Jan Kuparinen <copper_fin@hotmail.com>
  348. Jan Kuparinen <copper_fin@hotmail.com>
  349. po: update translations using Weblate (Finnish)
  350. Currently translated at 100.0% (99 of 99 strings).
  351. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
  352. 2020-12-28 Dmitry V. Levin <ldv@altlinux.org>
  353. pam_umask: fix handling of umask parameter.
  354. Potential failures of strdup(3) were ignored, fix this by not using
  355. strdup(3) at all.
  356. * modules/pam_umask/pam_umask.c (struct options_t): Add const to umask
  357. field, add login_umask field.
  358. (parse_option): Do not use strdup.
  359. (get_options): Assign pam_modutil_search_key return values
  360. to options->login_umask.
  361. (pam_sm_open_session): Free options.login_umask instead of
  362. options.umask.
  363. 2020-12-28 Sven Hartge <sven@svenhartge.de>
  364. pam_setquota: Minor whitespace, spelling and mail address fixes.
  365. 2020-12-26 Vlad <milovlad@outlook.com>
  366. Vlad <milovlad@outlook.com>
  367. po: update translations using Weblate (Romanian)
  368. Currently translated at 100.0% (99 of 99 strings).
  369. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ro/
  370. 2020-12-23 Dmitry V. Levin <ldv@altlinux.org>
  371. pam_mkhomedir: fix umask wording in documentation.
  372. * modules/pam_mkhomedir/pam_mkhomedir.8.xml (umask): Fix wording.
  373. 2020-12-20 Dmitry V. Levin <ldv@altlinux.org>
  374. po: update translations using Weblate (Bulgarian)
  375. Currently translated at 100.0% (122 of 122 strings).
  376. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/bg/
  377. 2020-12-17 Issam E. Maghni <issam.e.maghni@mailbox.org>
  378. configure: test -a|o is not POSIX.
  379. Fixes `test: too many arguments` when building Linux-PAM using sbase.
  380. This is due to a non-POSIX syntax test ... -a ... and test ... -o ....
  381. > The XSI extensions specifying the -a and -o binary primaries and the
  382. > '(' and ')' operators have been marked obsolescent.
  383. See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
  384. 2020-12-08 Christian Göttsche <cgzones@googlemail.com>
  385. pam_namespace: check for string_to_security_class failure.
  386. Check for the unlikely case string_to_security_class() does not find the
  387. associated SELinux security class.
  388. This will only happen if the loaded SELinux policy does not define the
  389. class "dir" (which no sane policy does) or querying the selinuxfs
  390. fails.
  391. Suggested by #309
  392. 2020-12-08 Christian Göttsche <cgzones@googlemail.com>
  393. pam_selinux: check for string_to_security_class failure.
  394. Check for the unlikely case string_to_security_class() does not find the
  395. associated SELinux security class.
  396. This will only happen if the loaded SELinux policy does not define the
  397. class "chr_file" (which no sane policy does) or querying the selinuxfs
  398. fails.
  399. Suggested by #309
  400. 2020-12-07 Tomas Mraz <tmraz@fedoraproject.org>
  401. Clarify the effect of 'done' in documentation.
  402. The done action does not terminate the stack processing in case
  403. there is a failing module with bad action up in the stack.
  404. Fixes #307
  405. * doc/man/pam.conf-syntax.xml: Clarify the effect of 'done'.
  406. 2020-11-28 Dmitry V. Levin <ldv@altlinux.org>
  407. .github: partially migrate from ubuntu-18.04 to ubuntu-20.04.
  408. * .github/workflows/ci.yml (runs-on): Switch from ubuntu-latest to
  409. ubuntu-20.04 for whitespace-errors and *-x86_64 jobs. Stick with
  410. ubuntu-18.04 for *-x86 and *-x32 jobs until we figure out how to
  411. obtain -lcrypt on ubuntu-20.04 for these architectures.
  412. 2020-11-28 Dmitry V. Levin <ldv@altlinux.org>
  413. ci: do not install libxcrypt-dev.
  414. Apparently, both -lcrypt and -lxcrypt from ubuntu-18.04 already provide
  415. crypt_r.
  416. * ci/install-dependencies.sh (packages): Remove libxcrypt-dev.
  417. 2020-11-24 Thomas M. DuBuisson <tommd@muse.dev>
  418. pam_unix: fix memory leak on error path.
  419. * modules/pam_unix/bigcrypt.c (bigcrypt) [HAVE_CRYPT_R]: Do not leak
  420. cdata if crypt_r() fails.
  421. 2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
  422. maint: update release procedure.
  423. * maint/README-release: Update.
  424. 2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
  425. po: update .po and .pot files.
  426. Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po"
  427. command. This removes translations of pam_cracklib, pam_tally, and
  428. pam_tally2 modules that were removed in v1.5.0.
  429. Complements: v1.5.0~10 "Remove deprecated pam_cracklib module"
  430. Complements: v1.5.0~9 "Remove deprecated pam_tally and pam_tally2 modules"
  431. 2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
  432. po: cleanup POTFILES.in.
  433. * po/POTFILES.in: Strip "./" prefix, sort the list.
  434. 2020-11-24 Jan Kuparinen <copper_fin@hotmail.com>
  435. Jan Kuparinen <copper_fin@hotmail.com>
  436. po: update translations using Weblate (Finnish)
  437. Currently translated at 100.0% (122 of 122 strings).
  438. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
  439. 2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
  440. Prepare for 1.5.1 release.
  441. * configure.ac (AC_INIT): Raise version to 1.5.1.
  442. Fix various typos found using codespell tool.
  443. * modules/pam_limits/limits.conf: Replace "overriden" with "overridden".
  444. * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Replace
  445. "preseves" with "preserves".
  446. * modules/pam_setquota/pam_setquota.8.xml: Replace "specifed" with
  447. "specified".
  448. * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Replace
  449. "fileystem" with "filesystem", "conditons" with "conditions".
  450. Fix grammar: replace "an user" with "a user" everywhere.
  451. * NEWS: Replace "an user" with "a user".
  452. * modules/pam_faillock/pam_faillock.8.xml: Likewise.
  453. * modules/pam_lastlog/pam_lastlog.8.xml: Likewise.
  454. * modules/pam_limits/pam_limits.c: Likewise.
  455. * modules/pam_sepermit/sepermit.conf: Likewise.
  456. * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise.
  457. * modules/pam_userdb/pam_userdb.c: Likewise.
  458. 2020-11-24 Tomas Mraz <tmraz@fedoraproject.org>
  459. pam_wheel: Use pam_modutil_user_in_group_uid_gid instead of reimplementation
  460. The pam_modutil_user_in_group... functions use getgrouplist to check
  461. the membership so they work also in setups with remote services which do
  462. not provide group members in struct group.
  463. Fixes #297
  464. * modules/pam_wheel/pam_wheel.c (perform_check): Call pam_modutil_user_in_group_uid_gid
  465. to do the group check.
  466. 2020-11-24 Tomas Mraz <tmraz@fedoraproject.org>
  467. Add NEWS entries for the 1.5.1 security fix release.
  468. 2020-11-20 Tomas Mraz <tmraz@fedoraproject.org>
  469. Second blank check with root for non-existent users must never return 1.
  470. The commit af0faf66 ("pam_unix: avoid determining if user exists") introduced
  471. a regression where the blank check could return 1 if root had an empty
  472. password hash because in the second case the password hash of root was
  473. used. We now always return 0 in this case.
  474. The issue was found by Johannes Löthberg.
  475. Fixes #284
  476. * modules/pam_unix/support.c (_unix_blankpasswd): Make the loop
  477. to cover the complete blank check so both existing and non existing
  478. cases are identical except for the possible return value.
  479. 2020-11-12 Tavian Barnes <tavianator@tavianator.com>
  480. faillock: Add a nodelay option.
  481. Fixes #295
  482. 2020-11-10 Allison Karlitskaya <allison.karlitskaya@redhat.com>
  483. libpam: add supplementary groups on priv drop.
  484. Replace the setgroups(0, NULL) call in pam_modutil_drop_priv() with a
  485. call to initgroups(). This makes sure that the user's supplementary
  486. groups are also configured. Fall back to setgroups(0, NULL) in case the
  487. initgroups() call fails.
  488. This fixes the permission check in pam_motd: this feature was intended
  489. to allow setting permissions on a motd file to prevent it from being
  490. shown to users who are not a member of a particular group (for example,
  491. wheel).
  492. Closes #292
  493. 2020-11-05 Tomas Mraz <tmraz@fedoraproject.org>
  494. pam_env: deprecation notice of reading the user environment.
  495. * modules/pam_env/pam_env.8.xml: Add the notice to the manual.
  496. * modules/pam_env/pam_env.c (_pam_parse): Log deprecation warning
  497. if user_readenv is set.
  498. 2020-11-04 Andreas Schneider <asn@cryptomilk.org>
  499. libpam: Fix memory leak on error path in _pam_start_internal()
  500. 2020-11-04 Andreas Schneider <asn@cryptomilk.org>
  501. libpam: Fix memory leak with pam_start_confdir()
  502. Found with AddressSanitzer in pam_wrapper tests.
  503. ==985738== 44 bytes in 4 blocks are definitely lost in loss record 18 of 18
  504. ==985738== at 0x4839809: malloc (vg_replace_malloc.c:307)
  505. ==985738== by 0x48957E1: _pam_strdup (pam_misc.c:129)
  506. ==985738== by 0x489851B: _pam_start_internal (pam_start.c:85)
  507. ==985738== by 0x4849C8C: libpam_pam_start_confdir (pam_wrapper.c:418)
  508. ==985738== by 0x484AF94: pwrap_pam_start (pam_wrapper.c:1461)
  509. ==985738== by 0x484AFEE: pam_start (pam_wrapper.c:1483)
  510. ==985738== by 0x401723: setup_noconv (test_pam_wrapper.c:189)
  511. ==985738== by 0x4889E82: ??? (in /usr/lib64/libcmocka.so.0.7.0)
  512. ==985738== by 0x488A444: _cmocka_run_group_tests (in /usr/lib64/libcmocka.so.0.7.0)
  513. ==985738== by 0x403EE5: main (test_pam_wrapper.c:1059)
  514. 2020-11-04 Tomas Mraz <tmraz@fedoraproject.org>
  515. pam_env: allow environment files without EOL at EOF.
  516. Fixes #263
  517. * modules/pam_env/pam_env.c (_assemble_line): Do not error out if at feof()
  518. 2020-11-03 Dmitry V. Levin <ldv@altlinux.org>
  519. Prepare for 1.5.0 release.
  520. * configure.ac (AC_INIT): Raise version to 1.5.0.
  521. * NEWS: Update.
  522. 2020-11-03 ikerexxe <ipedrosa@redhat.com>
  523. pam_ftp: fix potential memory leak.
  524. modules/pam_ftp/pam_ftp.c: free anon_user before returning as it may be
  525. still in use.
  526. pam_faillock: fix unread store statement.
  527. modules/pam_faillock/main.c: remove store statement since the value is
  528. only read in the enclosing expression.
  529. pam_dispatch: fix unread store statement.
  530. libpam/pam_dispatch: remove store statement since the value is never
  531. read.
  532. 2020-10-29 Dmitry V. Levin <ldv@altlinux.org>
  533. Remove deprecated pam_tally and pam_tally2 modules.
  534. * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove
  535. --enable-tally --enable-tally2.
  536. * configure.ac: Remove --enable-tally and --enable-tally2 options.
  537. (AM_CONDITIONAL): Remove COND_BUILD_PAM_TALLY and COND_BUILD_PAM_TALLY2.
  538. (AC_CONFIG_FILES): Remove modules/pam_tally/Makefile and
  539. modules/pam_tally2/Makefile.
  540. * doc/sag/pam_tally.xml: Remove.
  541. * doc/sag/pam_tally2.xml: Likewise.
  542. * doc/sag/Linux-PAM_SAG.xml: Do not include pam_tally.xml and
  543. pam_tally2.xml.
  544. * modules/Makefile.am (MAYBE_PAM_TALLY, MAYBE_PAM_TALLY2): Remove.
  545. (SUBDIRS): Remove MAYBE_PAM_TALLY and MAYBE_PAM_TALLY2.
  546. * modules/pam_tally/.gitignore: Remove.
  547. * modules/pam_tally/Makefile.am: Likewise.
  548. * modules/pam_tally/README.xml: Likewise.
  549. * modules/pam_tally/faillog.h: Likewise.
  550. * modules/pam_tally/pam_tally.8.xml: Likewise.
  551. * modules/pam_tally/pam_tally.c: Likewise.
  552. * modules/pam_tally/pam_tally_app.c: Likewise.
  553. * modules/pam_tally/tst-pam_tally: Likewise.
  554. * modules/pam_tally2/.gitignore: Likewise.
  555. * modules/pam_tally2/Makefile.am: Likewise.
  556. * modules/pam_tally2/README.xml: Likewise.
  557. * modules/pam_tally2/pam_tally2.8.xml: Likewise.
  558. * modules/pam_tally2/pam_tally2.c: Likewise.
  559. * modules/pam_tally2/pam_tally2_app.c: Likewise.
  560. * modules/pam_tally2/tallylog.h: Likewise.
  561. * modules/pam_tally2/tst-pam_tally2: Likewise.
  562. * modules/pam_timestamp/pam_timestamp_check.8.xml: Fix typo by replacing
  563. pam_tally with pam_timestamp.
  564. * po/POTFILES.in: Remove ./modules/pam_tally/pam_tally_app.c,
  565. ./modules/pam_tally/pam_tally.c, ./modules/pam_tally2/pam_tally2_app.c,
  566. and ./modules/pam_tally2/pam_tally2.c.
  567. * NEWS: Document this change.
  568. Remove deprecated pam_cracklib module.
  569. * ci/install-dependencies.sh: Remove libcrack2-dev.
  570. * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove
  571. --enable-cracklib=check.
  572. * conf/pam.conf: Remove references to pam_cracklib.so.
  573. * configure.ac: Remove --enable-cracklib option.
  574. (AC_SUBST): Remove LIBCRACK.
  575. (AM_CONDITIONAL): Remove COND_BUILD_PAM_CRACKLIB.
  576. (AC_CONFIG_FILES): Remove modules/pam_cracklib/Makefile.
  577. * doc/sag/pam_cracklib.xml: Remove.
  578. * doc/sag/Linux-PAM_SAG.xml: Do not include pam_cracklib.xml.
  579. * modules/Makefile.am (MAYBE_PAM_CRACKLIB): Remove.
  580. (SUBDIRS): Remove MAYBE_PAM_CRACKLIB.
  581. * modules/pam_cracklib/Makefile.am: Remove.
  582. * modules/pam_cracklib/README.xml: Likewise.
  583. * modules/pam_cracklib/pam_cracklib.8.xml: Likewise.
  584. * modules/pam_cracklib/pam_cracklib.c: Likewise.
  585. * modules/pam_cracklib/tst-pam_cracklib: Likewise.
  586. * xtests/tst-pam_cracklib1.c: Likewise.
  587. * xtests/tst-pam_cracklib1.pamd: Likewise.
  588. * xtests/tst-pam_cracklib2.c: Likewise.
  589. * xtests/tst-pam_cracklib2.pamd: Likewise.
  590. * modules/pam_pwhistory/pam_pwhistory.8.xml: Replace pam_cracklib
  591. in examples with pam_passwdqc.
  592. * modules/pam_unix/pam_unix.8.xml: Likewise.
  593. * po/POTFILES.in: Remove ./modules/pam_cracklib/pam_cracklib.c.
  594. * xtests/.gitignore: Remove tst-pam_cracklib1 and tst-pam_cracklib2.
  595. * xtests/Makefile.am (EXTRA_DIST): Remove tst-pam_cracklib1.pamd
  596. and tst-pam_cracklib2.pamd.
  597. (XTESTS): Remove tst-pam_cracklib1 and tst-pam_cracklib2.
  598. * NEWS: Document this change.
  599. 2020-10-27 DDoSolitary <DDoSolitary@gmail.com>
  600. pam_env: fix a typo in doc of pam_env.conf.
  601. 2020-10-25 Christian Göttsche <cgzones@googlemail.com>
  602. Add missing format function attributes and enable -Wmissing-format-attribute
  603. Exported functions already have these attributes, add them to other functions.
  604. This enables compilers to find format specifier mismatches, like:
  605. foo_print("Hello %d", "world")
  606. * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Wmissing-format-attribute.
  607. * conf/pam_conv1/Makefile.am (AM_CFLAGS): Add -I$(top_srcdir)/libpam/include.
  608. * conf/pam_conv1/pam_conv_y.y: Include <security/_pam_types.h>.
  609. (yyerror): Add printf format attribute.
  610. * modules/pam_pwhistory/opasswd.c (helper_log_err): Likewise.
  611. * modules/pam_rootok/pam_rootok.c (log_callback): Likewise.
  612. * modules/pam_tally/pam_tally.c (tally_log): Likewise.
  613. * modules/pam_tally2/pam_tally2.c (tally_log): Likewise.
  614. * modules/pam_unix/passverify.c (helper_log_err): Likewise.
  615. 2020-10-21 Milo Casagrande <milo@milo.name>
  616. Milo Casagrande <milo@milo.name>
  617. po: update translations using Weblate (Italian)
  618. Currently translated at 100.0% (122 of 122 strings).
  619. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
  620. 2020-10-21 Yaron Shahrabani <sh.yaron@gmail.com>
  621. Yaron Shahrabani <sh.yaron@gmail.com>
  622. po: update translations using Weblate (Hebrew)
  623. Currently translated at 100.0% (122 of 122 strings).
  624. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
  625. 2020-10-21 ikerexxe <ipedrosa@redhat.com>
  626. pam_motd: unset prompt value to drop privileges.
  627. modules/pam_motd/pam_motd.c: set NULL value instead of "key user" for the
  628. prompt when dropping privileges.
  629. 2020-10-20 Tomas Mraz <tmraz@fedoraproject.org>
  630. pam_modutil_sanitize_fds: Add explicit casts to avoid warnings.
  631. Revert "libpam/pam_modutil_sanitize.c: optimize the way to close fds"
  632. This reverts commit 1b087edc7f05237bf5eccc405704cd82b848e761.
  633. 2020-10-14 ikerexxe <ipedrosa@redhat.com>
  634. pam_motd: document file filtering.
  635. modules/pam_motd/pam_motd.8.xml: document file filtering of motd
  636. messages.
  637. NEWS: annotate change.
  638. 2020-10-14 ikerexxe <ipedrosa@redhat.com>
  639. pam_motd: filter motd by user and group.
  640. modules/pam_motd/pam_motd.c: filter motd by user and group owning the
  641. proper files. This is achieved by changing the ids of the process
  642. reading the files from root to the target user.
  643. Resolves:
  644. https://bugzilla.redhat.com/show_bug.cgi?id=1861640
  645. 2020-10-13 Mikhail Labiuk <m.labyuk@omprussia.ru>
  646. pam_faillock: fix invalid error message.
  647. args_parse function pass "conf=" argument to set_conf_opt() after handling by self.
  648. set_conf_opt is not able to handle "conf" argument and write error:
  649. sddm-helper[415]: pam_faillock(sddm:auth): Unknown option: conf
  650. 2020-10-05 ikerexxe <ipedrosa@redhat.com>
  651. pam_namespace: polyinstantiation refer to gdm doc.
  652. modules/pam_namespace/pam_namespace.8.xml: delete obsolete information
  653. about polyinstantiation and refer to gdm's documentation.
  654. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1861841
  655. 2020-09-30 Anton D. Kachalov <rnouse@google.com>
  656. Prevent SEGFAULT for unknown UID.
  657. When running systemd service with DynamicUser being set, the dynamic UID
  658. might be not mapped to user name (/etc/nsswitch.conf is not configured
  659. with systemd nss module).
  660. The getuidname() routine might return NULL and this is not checked by callee.
  661. 2020-09-10 ikerexxe <ipedrosa@redhat.com>
  662. pam_wheel: clarify use_uid option in man page.
  663. modules/pam_wheel/pam_wheel.8.xml: indicate that use_uid option uses the
  664. real uid of the calling process.
  665. 2020-09-10 ikerexxe <ipedrosa@redhat.com>
  666. pam_wheel: if getlogin fails fallback to PAM_RUSER.
  667. modules/pam_wheel/pam_wheel.c: if getlogin fails to obtain the real user
  668. ID, then try with PAM_RUSER.
  669. Resolves:
  670. https://bugzilla.redhat.com/show_bug.cgi?id=1866866
  671. 2020-09-10 ikerexxe <ipedrosa@redhat.com>
  672. pam_wheel: improve coding style.
  673. modules/pam_wheel/pam_wheel.c: improve indentation and explicitly state
  674. condition statements
  675. 2020-08-08 Dmitry V. Levin <ldv@altlinux.org>
  676. configure: add --disable-unix option.
  677. Some distributions do not build pam_unix, e.g. ALT uses pam_tcb instead.
  678. Add a configure option to disable build of pam_unix so that those who
  679. choose not to build pam_unix no longer have to edit modules/Makefile.am
  680. file. The default is unchanged, i.e. build of pam_unix is enabled.
  681. * configure.ac (AC_ARG_ENABLE): Add unix.
  682. (AM_CONDITIONAL): Add COND_BUILD_PAM_UNIX.
  683. * modules/Makefile.am [COND_BUILD_PAM_UNIX] (MAYBE_PAM_UNIX): Define.
  684. (SUBDIRS): Replace pam_unix with $(COND_BUILD_PAM_UNIX).
  685. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  686. Build all installed executables with -Wl,-z,now if available.
  687. This makes them built with full RELRO if -Wl,-z,relro is specified.
  688. * m4/ld-z-now.m4: New file.
  689. * m4/.gitignore: Add it to exclude list.
  690. * configure.ac: Call PAM_LD_Z_NOW.
  691. (EXE_LDFLAGS): Append $ZNOW_LDFLAGS.
  692. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  693. modules: build all helpers with proper CFLAGS and LDFLAGS.
  694. This makes all installed executables built with @EXE_CFLAGS@ and
  695. @EXE_LDFLAGS@.
  696. * modules/pam_mkhomedir/Makefile.am (mkhomedir_helper_CFLAGS,
  697. mkhomedir_helper_LDFLAGS): New variables.
  698. * modules/pam_tally/Makefile.am (pam_tally_CFLAGS, pam_tally_LDFLAGS):
  699. Likewise.
  700. * modules/pam_tally2/Makefile.am (pam_tally2_CFLAGS,
  701. pam_tally2_LDFLAGS): Likewise.
  702. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  703. build: rename PIE_* AC_SUBST variables to EXE_*
  704. There are going to be other options added to CFLAGS and LDFLAGS
  705. of executables made along with modules.
  706. * configure.ac (EXE_CFLAGS, EXE_LDFLAGS): New variables initialized from
  707. PIE_CFLAGS and PIE_LDFLAGS, respectively. AC_SUBST them instead of
  708. PIE_CFLAGS and PIE_LDFLAGS. All users updated.
  709. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  710. m4: make libprelude-config diagnostics less noisy.
  711. Before this change, every normal build of Linux-PAM used to contain
  712. the following diagnostics:
  713. checking for libprelude-config... no
  714. checking for libprelude - version >= 0.9.0... no
  715. *** The libprelude-config script installed by LIBPRELUDE could not be found
  716. *** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in
  717. *** your path, or set the LIBPRELUDE_CONFIG environment variable to the
  718. *** full path to libprelude-config.
  719. Given that libprelude-config is rarely used nowadays,
  720. the first two lines of diagnostics should be enough.
  721. * m4/libprelude.m4 (AM_PATH_LIBPRELUDE): When libprelude-config
  722. is not found, do not print the lengthy diagnostics unless
  723. --with-libprelude-prefix was specified.
  724. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  725. configure.ac: rewrite --disable-pie and -fpie/pie check.
  726. * configure.ac: Rewrite -fpie/pie check using AC_LINK_IFELSE to make
  727. the code more readable. Add --enable-pie=check support and make it
  728. the default, terminate if --enable-pie is specified but -fpie/pie
  729. support is not available.
  730. m4: rewrite ld --no-undefined check.
  731. * m4/ld-no-undefined.m4: Rewrite using AC_LINK_IFELSE to create a more readable
  732. autoconf macro.
  733. m4: rewrite ld --as-needed check.
  734. * m4/ld-as-needed.m4: Rewrite using AC_LINK_IFELSE to create a more readable
  735. autoconf macro.
  736. m4: rewrite ld -O1 check.
  737. * m4/ld-O1.m4: Rewrite using AC_LINK_IFELSE to create a more readable
  738. autoconf macro.
  739. 2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
  740. m4: rewrite __attribute__((unused)) check.
  741. Rewrite using AC_CACHE_CHECK to create a more readable autoconf macro.
  742. * m4/attribute.m4: New file.
  743. * m4/japhar_grep_cflags.m4: Remove.
  744. * m4/.gitignore: Replace japhar_grep_cflags.m4 with attribute.m4.
  745. * configure.ac: Replace AC_C___ATTRIBUTE__ with PAM_ATTRIBUTE_UNUSED.
  746. 2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
  747. build: add -Wcast-align=strict to WARN_CFLAGS.
  748. This way -Wcast-align will be tested regardless of the target machine.
  749. * m4/warn_lang_flags.m4: Add gl_WARN_ADD([-Wcast-align=strict]).
  750. 2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
  751. configure.ac: rewrite WARN_CFLAGS initialization.
  752. As the old machinery was not prepared for adding compiler options
  753. conditionally when the compiler supports them, replace it with
  754. a new machinery that implements this.
  755. * m4/warnings.m4: New file.
  756. * m4/warn_lang_flags.m4: Likewise.
  757. * m4/.gitignore: Add exclusions for them.
  758. * m4/japhar_grep_cflags.m4 (JAPHAR_GREP_CFLAGS): Remove.
  759. * configure.ac: Call pam_WARN_LANG_FLAGS. Remove all uses
  760. of JAPHAR_GREP_CFLAGS.
  761. 2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
  762. Fix -Wcast-align compilation warnings on arm.
  763. Apparently, gcc is also not smart enough to infer the alignment
  764. of structure fields, for details see
  765. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89133
  766. Use unions to avoid these casts altogether, this fixes compilation
  767. warnings reported by gcc on arm, e.g.:
  768. md5.c: In function 'MD5Update':
  769. md5.c:92:35: error: cast increases required alignment of target type [-Werror=cast-align]
  770. 92 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
  771. | ^
  772. md5.c:101:35: error: cast increases required alignment of target type [-Werror=cast-align]
  773. 101 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
  774. | ^
  775. md5.c: In function 'MD5Final':
  776. md5.c:136:35: error: cast increases required alignment of target type [-Werror=cast-align]
  777. 136 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
  778. | ^
  779. md5.c:147:9: error: cast increases required alignment of target type [-Werror=cast-align]
  780. 147 | memcpy((uint32 *)ctx->in + 14, ctx->bits, 2*sizeof(uint32));
  781. | ^
  782. md5.c:149:34: error: cast increases required alignment of target type [-Werror=cast-align]
  783. 149 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
  784. | ^
  785. * modules/pam_namespace/md5.h (struct MD5Context): Replace "buf" and
  786. "in" fields with unions. All users updated.
  787. * modules/pam_unix/md5.h (struct MD5Context): Likewise.
  788. * modules/pam_timestamp/sha1.h (struct sha1_context.pending): Replace
  789. with a union. All users updated.
  790. Complements: v1.4.0~195 ("Fix most of clang -Wcast-align compilation warnings")
  791. 2020-08-05 Dmitry V. Levin <ldv@altlinux.org>
  792. pam_namespace: fix big-endian check in md5 implementation.
  793. * modules/pam_namespace/md5.c: Do not check against the list of
  794. architectures that are known to be little-endian, instead check
  795. for WORDS_BIGENDIAN macro defined by AC_C_BIGENDIAN autoconf macro
  796. on big-endian platforms.
  797. 2020-08-05 Christian Göttsche <cgzones@googlemail.com>
  798. pam_namespace: skip context translation.
  799. These retrieved contexts are just passed to libselinux functions and not
  800. printed or otherwise made available to the outside, so a context
  801. translation to human readable MCS/MLS labels is not needed.
  802. (see man:setrans.conf(5))
  803. pam_xauth: skip context translation.
  804. The retrieved context is just passed to libselinux functions and not
  805. printed or otherwise made available to the outside, so a context
  806. translation to human readable MCS/MLS labels is not needed.
  807. (see man:setrans.conf(5))
  808. pam_xauth: replace deprecated security_context_t.
  809. libselinux 3.1 deprecated the typedef security_context_t.
  810. Use the underlaying type.
  811. pam_unix: skip context translation.
  812. These retrieved contexts are just passed to libselinux functions and not
  813. printed or otherwise made available to the outside, so a context
  814. translation to human readable MCS/MLS labels is not needed.
  815. (see man:setrans.conf(5))
  816. pam_unix: replace deprecated security_context_t.
  817. libselinux 3.1 deprecated the typedef security_context_t.
  818. Use the underlaying type.
  819. pam_rootok: skip context translation.
  820. The retrieved context is just passed to the libselinux function
  821. 'selinux_check_access()', so a context translation to human readable
  822. MCS/MLS labels is not needed. (see man:setrans.conf(5))
  823. pam_rootok: replace deprecated security_context_t.
  824. libselinux 3.1 deprecated the typedef security_context_t.
  825. Use the underlaying type.
  826. pam_namespace: replace deprecated matchpathcon.
  827. The matchpathcon family is deprecated.
  828. Use the selabel family.
  829. pam_namespace: replace deprecated security_context_t.
  830. libselinux 3.1 deprecated the typedef security_context_t.
  831. Use the underlaying type.
  832. 2020-08-03 Christian Göttsche <cgzones@googlemail.com>
  833. autotools: enable warnings.
  834. 2020-08-03 Christian Göttsche <cgzones@googlemail.com>
  835. autotools: update deprecated macros.
  836. see https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
  837. - update AC_HELP_STRING to AS_HELP_STRING
  838. - update AC_TRY_COMPILE to AC_COMPILE_IFELSE
  839. - update AC_TRY_RUN to AC_RUN_IFELSE
  840. - update AC_TRY_LINK to AC_LINK_IFELSE
  841. 2020-08-03 Issam Maghni <concatime@users.noreply.github.com>
  842. configure.ac: fix typo in --with-kernel-overflow-uid= option to match its documentation
  843. 2020-07-22 Tomas Mraz <tmraz@fedoraproject.org>
  844. pam_unix: Add comment for the ignored PAM_AUTHTOK_ERR case.
  845. * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Add comment
  846. about the reason for ignoring PAM_AUTHTOK_ERR.
  847. 2020-07-22 Tomas Mraz <tmraz@fedoraproject.org>
  848. Fix missing initialization of daysleft.
  849. The daysleft otherwise stays uninitialized if there is no shadow entry.
  850. Regression from commit f5adefa.
  851. Fixes #255
  852. * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Initialize daysleft.
  853. 2020-07-20 Charles Lee <lchopn@gmail.com>
  854. po: update translations using Weblate (Chinese (Simplified))
  855. Currently translated at 100.0% (122 of 122 strings).
  856. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/
  857. 2020-07-20 ikerexxe <ipedrosa@redhat.com>
  858. pam_pwhistory: add helper to handle SELinux.
  859. The purpose of the helper is to enable tighter confinement of login and
  860. password changing services. The helper is thus called only when SELinux
  861. is enabled on the system.
  862. Resolves: https://github.com/linux-pam/linux-pam/pull/247
  863. 2020-07-19 A S Alam <amanpreet.alam@gmail.com>
  864. po: update translations using Weblate (Punjabi)
  865. Currently translated at 100.0% (122 of 122 strings).
  866. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pa/
  867. 2020-07-15 Dmitry V. Levin <ldv@altlinux.org>
  868. pam_inline.h: cleanup pam_read_passwords a bit.
  869. * libpam/include/pam_inline.h (pam_read_passwords): Increment pptr once
  870. instead of using pptr+1 several times. This change is not expected
  871. to affect the code generated by the compiler as the latter is likely
  872. to perform the optimization itself.
  873. 2020-07-15 ikerexxe <ipedrosa@redhat.com>
  874. Move read_passwords function from pam_unix to pam_inline.h.
  875. [ldv: rewrote commit message]
  876. * modules/pam_unix/passverify.h (read_passwords): Remove prototype.
  877. * modules/pam_unix/passverify.c (read_passwords): Move ...
  878. * libpam/include/pam_inline.h: ... here, rename to pam_read_passwords,
  879. add static inline qualifiers.
  880. Include <unistd.h> and <errno.h>.
  881. * modules/pam_unix/unix_chkpwd.c: Include "pam_inline.h".
  882. (main): Replace read_passwords with pam_read_passwords.
  883. * modules/pam_unix/unix_update.c: Include "pam_inline.h".
  884. (set_password): Replace read_passwords with pam_read_passwords.
  885. 2020-07-15 Dmitry V. Levin <ldv@altlinux.org>
  886. pam_unix: use PAM_MAX_RESP_SIZE instead of its alias MAXPASS.
  887. * modules/pam_unix/passverify.h (MAXPASS): Remove.
  888. * modules/pam_unix/passverify.c (read_passwords): Replace MAXPASS
  889. with PAM_MAX_RESP_SIZE.
  890. * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass): Likewise.
  891. * modules/pam_unix/support.c (_unix_verify_password): Likewise.
  892. * modules/pam_unix/unix_chkpwd.c (main): Likewise.
  893. * modules/pam_unix/unix_update.c (set_password): Likewise.
  894. 2020-07-09 Lucas Ramage <ramage.lucas@protonmail.com>
  895. pam_stress: create man page.
  896. Resolves: https://github.com/linux-pam/linux-pam/issues/148
  897. * modules/pam_stress/README: Remove.
  898. * modules/pam_stress/README.xml: New file.
  899. * modules/pam_stress/pam_stress.8.xml: Likewise.
  900. * modules/pam_stress/Makefile.am (MAINTAINERCLEANFILES): Add
  901. $(MANS) and README.
  902. (EXTRA_DIST): Add $(XMLS).
  903. (XMLS): Add README.xml and pam_stress.8.xml.
  904. [HAVE_DOC] (dist_man_MANS): Add pam_stress.8.
  905. [ENABLE_REGENERATE_MAN] (dist_noinst_DATA): Add README.
  906. [ENABLE_REGENERATE_MAN]: Include $(top_srcdir)/Make.xml.rules.
  907. * modules/pam_stress/.gitignore: Remove.
  908. Resolves: https://github.com/linux-pam/linux-pam/pull/184
  909. 2020-07-05 Dmitry V. Levin <ldv@altlinux.org>
  910. po: update translations using Weblate (Slovak)
  911. Currently translated at 100.0% (122 of 122 strings).
  912. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/
  913. po: update translations using Weblate (Portuguese (Brazil))
  914. Currently translated at 100.0% (122 of 122 strings).
  915. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
  916. po: update translations using Weblate (Dutch)
  917. Currently translated at 100.0% (122 of 122 strings).
  918. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
  919. po: update translations using Weblate (Italian)
  920. Currently translated at 100.0% (122 of 122 strings).
  921. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
  922. po: update translations using Weblate (German)
  923. Currently translated at 100.0% (122 of 122 strings).
  924. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
  925. po: update translations using Weblate (Catalan)
  926. Currently translated at 100.0% (122 of 122 strings).
  927. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
  928. 2020-07-05 Yaron Shahrabani <sh.yaron@gmail.com>
  929. Translated using Weblate (Hebrew)
  930. Currently translated at 75.4% (92 of 122 strings)
  931. Translation: linux-pam/master
  932. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
  933. Translated using Weblate (Arabic)
  934. Currently translated at 61.4% (75 of 122 strings)
  935. Translation: linux-pam/master
  936. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ar/
  937. 2020-07-02 Dmitry V. Levin <ldv@altlinux.org>
  938. misc_conv: fix potential information leak on error path.
  939. * libpam_misc/misc_conv.c (read_string): Clear the stack buffer from
  940. data read earlier from stdin in case of a read error.
  941. 2020-07-01 ikerexxe <ipedrosa@redhat.com>
  942. pam_loginuid: fix unlikely negative 3rd argument of strncmp on error path
  943. [ldv: rewrote commit message]
  944. * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Do not pass to
  945. strncmp the return value of pam_modutil_read in an unlikely case when
  946. the latter fails to read from /proc/self/uid_map.
  947. 2020-07-01 ikerexxe <ipedrosa@redhat.com>
  948. pam_namespace, pam_mkhomedir: fix unlikely descriptor leaks on error path
  949. [ldv: rewrote commit message]
  950. * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Close just
  951. opened file descriptor "srcfd" in an unlikely case when it cannot be
  952. fstat'ed.
  953. * modules/pam_namespace/pam_namespace.c (create_instance): Close just
  954. opened file descriptor "fd" in an unlikely case when it cannot be
  955. fstat'ed.
  956. 2020-07-01 ikerexxe <ipedrosa@redhat.com>
  957. pam_rootok: fix use of va_list.
  958. CPPCHECK_WARNING (CWE-843):
  959. error[va_end_missing]: va_list 'ap' was opened but not closed by
  960. va_end().
  961. [ldv: According to POSIX documentation, each invocation of va_start()
  962. must be matched by a corresponding invocation of va_end().
  963. According to the GNU libc documentation, "with most C compilers,
  964. calling 'va_end' does nothing. This is always true in the GNU C
  965. compiler. But you might as well call 'va_end' just in case your
  966. program is someday compiled with a peculiar compiler."
  967. The main reason for applying this change is to pacify static analysis
  968. tools like cppcheck that insist on strict POSIX conformance in this
  969. respect.]
  970. 2020-07-01 ikerexxe <ipedrosa@redhat.com>
  971. misc_conv: fix potential stack buffer overflow.
  972. [ldv: rewrote commit message]
  973. * libpam_misc/misc_conv.c (read_string): Use _pam_overwrite_n instead
  974. of _pam_overwrite to clear stack buffer "line" because the latter does
  975. not have to be null-terminated.
  976. 2020-07-01 Yaron Shahrabani <sh.yaron@gmail.com>
  977. Translated using Weblate (Hebrew)
  978. Currently translated at 60.6% (74 of 122 strings)
  979. Translation: linux-pam/master
  980. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
  981. 2020-06-30 Dmitry V. Levin <ldv@altlinux.org>
  982. misc_conv: remove redundant check.
  983. * libpam_misc/misc_conv.c (read_string): Remove redundant nc > 0
  984. check as it has already been tested in the previous condition.
  985. 2020-06-29 ikerexxe <ipedrosa@redhat.com>
  986. pam_limits: clarify configuration file.
  987. Resolves: https://github.com/linux-pam/linux-pam/pull/249
  988. 2020-06-26 Dmitry V. Levin <ldv@altlinux.org>
  989. .gitignore: move doc-specific entries to doc/.gitignore.
  990. .gitignore: move module-specific entries to modules/.gitignore.
  991. 2020-06-26 ikerexxe <ipedrosa@redhat.com>
  992. pam_namespace: add systemd service file to gitignore.
  993. * modules/pam_namespace/.gitignore: Add pam_namespace.service.
  994. Complements: v1.4.0~247 ("pam_namespace: secure tmp-inst directories")
  995. 2020-06-26 ikerexxe <ipedrosa@redhat.com>
  996. pam_faillock: add faillock executable to gitignore.
  997. * modules/pam_faillock/.gitignore: Add faillock.
  998. Complements: v1.4.0~76 ("pam_faillock: New module for locking after multiple auth failures")
  999. 2020-06-25 ikerexxe <ipedrosa@redhat.com>
  1000. pam_env: clarify user_readenv option.
  1001. 2020-06-24 Baurzhan Muftakhidinov <baurthefirst@gmail.com>
  1002. Translated using Weblate (Kazakh)
  1003. Currently translated at 100.0% (122 of 122 strings)
  1004. Translation: linux-pam/master
  1005. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/
  1006. 2020-06-24 Yaron Shahrabani <sh.yaron@gmail.com>
  1007. Translated using Weblate (Hebrew)
  1008. Currently translated at 44.2% (54 of 122 strings)
  1009. Translation: linux-pam/master
  1010. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
  1011. 2020-06-22 Vito Caputo <vcaputo@pengaru.com>
  1012. modules/pam_limits: add support for nonewprivs.
  1013. Expose prctl(PR_SET_NO_NEW_PRIVS) as "nonewprivs" item.
  1014. The valid values are a boolean toggle 0/1 to keep semi-consistent
  1015. with the other numeric limits. It's slightly awkward as this is
  1016. an oddball relative to the other items in pam_limits but outside
  1017. of the item value itself this does seem at home in pam_limits.
  1018. Resolves: https://github.com/linux-pam/linux-pam/issues/224
  1019. Resolves: https://github.com/linux-pam/linux-pam/pull/225
  1020. 2020-06-17 ikerexxe <ipedrosa@redhat.com>
  1021. pam_usertype: avoid determining if user exists.
  1022. Taking a look at the time for the password prompt to appear it was
  1023. possible to determine if a user existed in a system. Solved it by
  1024. matching the runtime until the password prompt was shown by always
  1025. checking the password hash for an existing and a non-existing user.
  1026. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
  1027. 2020-06-17 ikerexxe <ipedrosa@redhat.com>
  1028. pam_unix: avoid determining if user exists.
  1029. Taking a look at the time for the password prompt to appear it was
  1030. possible to determine if a user existed in a system. Solved it by
  1031. matching the runtime until the password prompt was shown by always
  1032. checking the password hash for an existing and a non-existing user.
  1033. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
  1034. 2020-06-17 ikerexxe <ipedrosa@redhat.com>
  1035. pam_faillock: change /run/faillock/$USER permissions to 0660.
  1036. Nowadays, /run/faillock/$USER files have user:root ownership and 0600
  1037. permissions. This forces the process that writes to these files to have
  1038. CAP_DAC_OVERRIDE capabilites. Just by changing the permissions to 0660
  1039. the capability can be removed, which leads to a more secure system.
  1040. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1661822
  1041. 2020-06-16 Dmitry V. Levin <ldv@altlinux.org>
  1042. pam_modutil_check_user_in_passwd: avoid timing attacks.
  1043. * libpam/pam_modutil_check_user.c (pam_modutil_check_user_in_passwd): Do
  1044. not exit the file reading loop when the user is found, continue reading
  1045. the file to avoid timing attacks.
  1046. 2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  1047. pam_faillock: fix build on musl.
  1048. Use pam_modutil_check_user_in_passwd in pam_faillock.c instead of
  1049. fgetpwent_r which is not available on musl.
  1050. Resolves: https://github.com/linux-pam/linux-pam/issues/236
  1051. Resolves: https://github.com/linux-pam/linux-pam/pull/237
  1052. Fixes: http://autobuild.buildroot.org/results/0432736ffee376dd84757469434a4bbcfdcdaf4b
  1053. 2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  1054. Dmitry V. Levin <ldv@altlinux.org>
  1055. Move check_user_in_passwd from pam_localuser.c to pam_modutil.
  1056. * modules/pam_localuser/pam_localuser.c: Include
  1057. <security/pam_modutil.h>.
  1058. (pam_sm_authenticate): Replace check_user_in_passwd with
  1059. pam_modutil_check_user_in_passwd.
  1060. (check_user_in_passwd): Rename to pam_modutil_check_user_in_passwd,
  1061. move to ...
  1062. * libpam/pam_modutil_check_user.c: ... new file.
  1063. * libpam/Makefile.am (libpam_la_SOURCES): Add pam_modutil_check_user.c.
  1064. * libpam/include/security/pam_modutil.h
  1065. (pam_modutil_check_user_in_passwd): New function declaration.
  1066. * libpam/libpam.map (LIBPAM_MODUTIL_1.4.1): New interface.
  1067. 2020-06-15 Dmitry V. Levin <ldv@altlinux.org>
  1068. configure.ac: fix non-portable use of test builtin.
  1069. Portable code should not assume that test builtin supports == operator.
  1070. * configure.ac (opt_uidmin, opt_sysuidmin, opt_kerneloverflowuid): Fix
  1071. initialization.
  1072. Resolves: https://github.com/linux-pam/linux-pam/issues/241
  1073. Fixes: 926d7935e ("pam_usertype: new module to tell if uid is in login.defs ranges")
  1074. 2020-06-11 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  1075. configure.ac: fix build failure when crypt() does not require libcrypt.
  1076. Since commit 522246d20e4cd92fadc2d760228cb7e78cbeb4c5, the build fails
  1077. if "none required" is returned by AC_SEARCH_LIBS for libcrypt.
  1078. Resolves: https://github.com/linux-pam/linux-pam/pull/235
  1079. Fixes: http://autobuild.buildroot.org/results/92b3dd7c984d2b843ac9aacacd69eec99f28743e
  1080. Fixes: v1.4.0~228 ("Use cached 'crypt' library result correctly")
  1081. 2020-06-04 Dmitry V. Levin <ldv@altlinux.org>
  1082. build: do not generate tarballs compressed with bzip2 and gzip.
  1083. There are tarballs compressed with xz, that should be enough.
  1084. * Makefile.am (AUTOMAKE_OPTIONS): Remove dist-bzip2, add no-dist-gzip.
  1085. (releasedocs): Do not create Linux-PAM-$(VERSION)-docs.tar.bz2
  1086. and Linux-PAM-$(VERSION)-docs.tar.gz.
  1087. 2020-06-04 Dmitry V. Levin <ldv@altlinux.org>
  1088. maint: document release procedure.
  1089. * maint/README-release: New file.
  1090. maint: introduce gen-tag-message.
  1091. * maint/gen-tag-message: New script for preparing tag message.
  1092. maint: introduce make-dist.
  1093. * maint/make-dist: New script for preparing release tarballs.
  1094. 2020-06-03 Dmitry V. Levin <ldv@altlinux.org>
  1095. gitlog-to-changelog: update from gnulib.
  1096. 2020-05-29 Josef Möllers <jmoellers@suse.de>
  1097. Tomáš Mráz <tmraz@redhat.com>
  1098. Dmitry V. Levin <ldv@altlinux.org>
  1099. pam_setquota: skip mountpoints equal to the user's $HOME.
  1100. Matthias Gerstner found the following issue:
  1101. <quote>
  1102. So this pam_setquota module iterates over all mounted file systems using
  1103. `setmntent()` and `getmntent()`. It tries to find the longest match of
  1104. a file system mounted on /home/$USER or above (except when the
  1105. fs=/some/path parameter is passed to the pam module).
  1106. The thing is that /home/$USER is owned by the unprivileged user. And
  1107. there exist tools like fusermount from libfuse which is by default
  1108. installed setuid-root for everybody. fusermount allows to mount a FUSE
  1109. file system using an arbitrary "source device name" as the unprivileged
  1110. user.
  1111. Thus considering the following use case:
  1112. 1) there is only the root file system (/) or a file system is mounted on
  1113. /home, but not on /home/$USER.
  1114. 2) the attacker mounts a fake FUSE file system over its own home directory:
  1115. ```
  1116. user $ export _FUSE_COMMFD=0
  1117. user $ fusermount $HOME -ononempty,fsname=/dev/sda1
  1118. ```
  1119. This will result in a mount entry in /proc/mounts looking like this:
  1120. ```
  1121. /dev/sda1 on /home/$USER type fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)
  1122. ```
  1123. 3) when the attacker now logs in with pam_setquota configured then
  1124. pam_setquota will identify /dev/sda1 and the file system where
  1125. to apply the user's quota on.
  1126. As a result an unprivileged user has full control over onto which block
  1127. device the quota is applied.
  1128. </quote>
  1129. If the user's $HOME is on a separate partition, setting a quota on the
  1130. user's $HOME does not really make sense, so this patch skips mountpoints
  1131. equal to the user's $HOME, preventing the above mentioned bug as
  1132. a side-effect (or vice-versa).
  1133. Reported-by: Matthias Gerstner <mgerstner@suse.de>
  1134. Resolves: https://github.com/linux-pam/linux-pam/pull/230
  1135. 2020-05-25 Dmitry V. Levin <ldv@altlinux.org>
  1136. pam_debug: do not invoke pam_get_user and do not set PAM_USER.
  1137. pam_debug used to invoke pam_get_user and set PAM_USER to "nobody" when
  1138. pam_get_user returns an empty string as the user name. When either of
  1139. these functions returned an error value, it used to return that error
  1140. value. This hasn't been documented, and I couldn't find any rationale
  1141. for this behaviour.
  1142. * modules/pam_debug/pam_debug.c (pam_sm_authenticate): Do not invoke
  1143. pam_get_user and pam_set_item.
  1144. 2020-05-24 Yi-Jyun Pan <pan93412@gmail.com>
  1145. Translated using Weblate (Chinese (Traditional))
  1146. Currently translated at 100.0% (122 of 122 strings)
  1147. Translation: linux-pam/master
  1148. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_TW/
  1149. 2020-05-22 Dmitry V. Levin <ldv@altlinux.org>
  1150. modules: downgrade syslog level for errors related to pam_get_user.
  1151. * modules/pam_faillock/pam_faillock.c (get_pam_user): Downgrade
  1152. the syslog level for diagnostics of errors returned by
  1153. pam_modutil_getpwnam for users returned by pam_get_user
  1154. from LOG_ERR to LOG_NOTICE.
  1155. * modules/pam_keyinit/pam_keyinit.c (do_keyinit): Likewise.
  1156. * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise.
  1157. * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): Likewise.
  1158. * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Likewise.
  1159. * modules/pam_mail/pam_mail.c (_do_mail): Likewise.
  1160. * modules/pam_sepermit/pam_sepermit.c (sepermit_lock): Likewise.
  1161. * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise.
  1162. * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise.
  1163. * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise.
  1164. * modules/pam_xauth/pam_xauth.c (pam_sm_open_session,
  1165. pam_sm_close_session): Likewise.
  1166. * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Downgrade
  1167. the syslog level for diagnostics of errors returned by
  1168. pam_modutil_getpwnam for users returned by pam_get_user
  1169. from LOG_WARNING to LOG_NOTICE.
  1170. Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org>
  1171. 2020-05-22 Dmitry V. Levin <ldv@altlinux.org>
  1172. modules: downgrade syslog level for pam_get_user errors.
  1173. * modules/pam_access/pam_access.c (pam_sm_authenticate): Downgrade
  1174. the syslog level for pam_get_user errors from LOG_ERR to LOG_NOTICE.
  1175. * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Likewise.
  1176. * modules/pam_ftp/pam_ftp.c (pam_sm_authenticate): Likewise.
  1177. * modules/pam_group/pam_group.c (pam_sm_setcred): Likewise.
  1178. * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise.
  1179. * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Likewise.
  1180. * modules/pam_mail/pam_mail.c (_do_mail): Likewise.
  1181. * modules/pam_nologin/pam_nologin.c (perform_check): Likewise.
  1182. * modules/pam_rhosts/pam_rhosts.c (pam_sm_authenticate): Likewise.
  1183. * modules/pam_sepermit/pam_sepermit.c (pam_sm_authenticate): Likewise.
  1184. * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Likewise.
  1185. * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise.
  1186. * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise.
  1187. * modules/pam_time/pam_time.c (pam_sm_acct_mgmt): Likewise.
  1188. * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Likewise.
  1189. * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise.
  1190. * modules/pam_userdb/pam_userdb.c (pam_sm_authenticate,
  1191. pam_sm_acct_mgmt): Likewise.
  1192. * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Likewise.
  1193. * modules/pam_xauth/pam_xauth.c (pam_sm_open_session,
  1194. pam_sm_close_session): Likewise.
  1195. * modules/pam_securetty/pam_securetty.c (securetty_perform_check):
  1196. Downgrade the syslog level for pam_get_user errors from LOG_WARNING
  1197. to LOG_NOTICE.
  1198. * modules/pam_stress/pam_stress.c (pam_sm_authenticate): Likewise.
  1199. Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org>
  1200. 2020-05-22 Dmitry V. Levin <ldv@altlinux.org>
  1201. pam_localuser: add a test for return values.
  1202. * modules/pam_localuser/tst-pam_localuser-retval.c: New file.
  1203. * modules/pam_localuser/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1204. (check_PROGRAMS, tst_pam_localuser_retval_LDADD): New variables.
  1205. pam_localuser: refactor pam_sm_authenticate.
  1206. * modules/pam_localuser/pam_localuser.c (check_user_in_passwd): New
  1207. function.
  1208. (pam_sm_authenticate): Use it.
  1209. 2020-05-22 Dmitry V. Levin <ldv@altlinux.org>
  1210. pam_localuser: downgrade syslog level for errors related to user input.
  1211. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Downgrade
  1212. the syslog level for errors related to pam_get_user from LOG_ERR to
  1213. LOG_NOTICE.
  1214. Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org>
  1215. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1216. pam_localuser: re-format pam_sm_* function declarations.
  1217. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1218. pam_localuser: remove unused includes.
  1219. Also, remove unused MODULE_NAME macro.
  1220. * modules/pam_localuser/pam_localuser.c: Stop including unused header
  1221. files.
  1222. (MODULE_NAME): Remove.
  1223. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1224. pam_localuser: forward error values returned by pam_get_user.
  1225. Starting with commit c2c601f5340a59c5c62193d55b555d384380ea38,
  1226. pam_get_user is guaranteed to return one of the following values:
  1227. PAM_SUCCESS, PAM_BUF_ERR, PAM_CONV_AGAIN, or PAM_CONV_ERR.
  1228. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Do not
  1229. replace non-PAM_CONV_AGAIN error values returned by pam_get_user with
  1230. PAM_SERVICE_ERR.
  1231. * modules/pam_localuser/pam_localuser.8.xml (RETURN VALUES): Document
  1232. new return values.
  1233. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1234. pam_localuser: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN
  1235. Give the application a chance to handle PAM_INCOMPLETE.
  1236. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return
  1237. PAM_INCOMPLETE instead of PAM_SERVICE_ERR when pam_get_user returns
  1238. PAM_CONV_AGAIN.
  1239. * modules/pam_localuser/pam_localuser.8.xml (RETURN VALUES): Document
  1240. it.
  1241. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1242. pam_localuser: open the passwd file after user name validation.
  1243. Since user name is untrusted input, it should be validated earlier
  1244. rather than later.
  1245. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Open
  1246. the passwd file after user name validation.
  1247. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1248. pam_localuser: use BUFSIZ as the line buffer size.
  1249. As BUFSIZ is the buffer size used in stdio, it must be an efficient size
  1250. for the line buffer. Also, it's larger than LINE_MAX used as the line
  1251. buffer size before this change, effectively raising the maximum user
  1252. name length supported by this module.
  1253. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Replace
  1254. LINE_MAX with BUFSIZ.
  1255. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1256. pam_localuser: handle long lines in passwd files properly.
  1257. Before this change, a long line in the passwd file used to be treated as
  1258. several lines which could potentially result to false match and,
  1259. consequently, to incorrect PAM_SUCCESS return value.
  1260. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Handle
  1261. long lines in passwd files properly.
  1262. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1263. pam_localuser: get rid of a temporary buffer.
  1264. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Do not
  1265. copy the user name into a temporary buffer, use the user name itself in
  1266. comparisons.
  1267. pam_localuser: log unrecognized options.
  1268. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Log
  1269. unrecognized options.
  1270. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1271. pam_localuser: return PAM_SERVICE_ERR instead of PAM_SYSTEM_ERR.
  1272. When passwd file cannot be opened or the user name either cannot be
  1273. obtained or is not valid, return PAM_SERVICE_ERR instead of
  1274. PAM_SYSTEM_ERR.
  1275. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return
  1276. PAM_SERVICE_ERR instead of PAM_SYSTEM_ERR.
  1277. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1278. pam_localuser: reject user names that are too long.
  1279. Too long user names used to be truncated which could potentially result
  1280. to false match and, consequently, to incorrect PAM_SUCCESS return value.
  1281. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return
  1282. PAM_SERVICE_ERR if the user name is too long.
  1283. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1284. pam_localuser: reject user names containing a colon.
  1285. "root:x" is not a local user name even if the passwd file contains
  1286. a line starting with "root:x:".
  1287. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return
  1288. PAM_PERM_DENIED if the user name contains a colon.
  1289. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1290. pam_mkhomedir: add a test for return values.
  1291. * modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c: New file.
  1292. * modules/pam_mkhomedir/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1293. (check_PROGRAMS, tst_pam_mkhomedir_retval_LDADD): New variables.
  1294. pam_faildelay: add a test for return values.
  1295. * modules/pam_faildelay/tst-pam_faildelay-retval.c: New file.
  1296. * modules/pam_faildelay/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1297. (check_PROGRAMS, tst_pam_faildelay_retval_LDADD): New variables.
  1298. pam_rootok: add a test for return values.
  1299. * modules/pam_rootok/tst-pam_rootok-retval.c: New file.
  1300. * modules/pam_rootok/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1301. (check_PROGRAMS, tst_pam_rootok_retval_LDADD): New variables.
  1302. pam_nologin: add a test for return values.
  1303. * modules/pam_nologin/tst-pam_nologin-retval.c: New file.
  1304. * modules/pam_nologin/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1305. (check_PROGRAMS, tst_pam_nologin_retval_LDADD): New variables.
  1306. pam_echo: add a test for return values.
  1307. * modules/pam_echo/tst-pam_echo-retval.c: New file.
  1308. * modules/pam_echo/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1309. (check_PROGRAMS, tst_pam_echo_retval_LDADD): New variables.
  1310. pam_warn: add a test for return values.
  1311. * modules/pam_warn/tst-pam_warn-retval.c: New file.
  1312. * modules/pam_warn/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1313. (check_PROGRAMS, tst_pam_warn_retval_LDADD): New variables.
  1314. pam_debug: add a test for return values.
  1315. * modules/pam_debug/tst-pam_debug-retval.c: New file.
  1316. * modules/pam_debug/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1317. (check_PROGRAMS, tst_pam_debug_retval_LDADD): New variables.
  1318. pam_permit: add a test for return values.
  1319. * modules/pam_permit/tst-pam_permit-retval.c: New file.
  1320. * modules/pam_permit/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1321. (check_PROGRAMS, tst_pam_permit_retval_LDADD): New variables.
  1322. pam_deny: add a test for return values.
  1323. * modules/pam_deny/tst-pam_deny-retval.c: New file.
  1324. * modules/pam_deny/Makefile.am (TESTS): Add $(check_PROGRAMS).
  1325. (check_PROGRAMS, tst_pam_deny_retval_LDADD): New variables.
  1326. 2020-05-21 Dmitry V. Levin <ldv@altlinux.org>
  1327. Introduce test_assert.h.
  1328. Introduce a new internal header file for definitions of handy macros
  1329. providing convenient assertion testing functionality.
  1330. * libpam/include/test_assert.h: New file.
  1331. * libpam/Makefile.am (noinst_HEADERS): Add include/test_assert.h.
  1332. 2020-05-21 Andreas Henriksson <andreas+fedora@fatal.se>
  1333. Translated using Weblate (Swedish)
  1334. Currently translated at 100.0% (122 of 122 strings)
  1335. Translation: linux-pam/master
  1336. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/
  1337. 2020-05-17 Dmitry V. Levin <ldv@altlinux.org>
  1338. doc: fix the description of stack jump effects.
  1339. Every stack jump, besides the jump itself, has a side effect which is
  1340. one of 'ignore', 'ok', or 'bad'. Unfortunately, the side effect is far
  1341. from obvious because it depends on the PAM function call, and the
  1342. documentation that contradicts the implementation does not help either.
  1343. * doc/man/pam.conf-syntax.xml (actionN): Rewrite the description
  1344. of stack jump effects to match the implementation.
  1345. Fixes: 871a6e14d65c3c446ae0af51166dabc7a47a2b56
  1346. 2020-05-17 Weblate (bot) <noreply@weblate.org>
  1347. Allan Nordhøy <epost@anotheragency.no>
  1348. Dmitry V. Levin <ldv@altlinux.org>
  1349. Translations update from Weblate (#227)
  1350. * Translated using Weblate (Norwegian Bokmål)
  1351. Currently translated at 99.1% (121 of 122 strings)
  1352. Translation: linux-pam/master
  1353. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nb_NO/
  1354. * Translated using Weblate (Catalan)
  1355. Currently translated at 98.3% (120 of 122 strings)
  1356. Translation: linux-pam/master
  1357. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
  1358. 2020-05-16 Dmitry V. Levin <ldv@altlinux.org>
  1359. modules: do not check user name for emptyness before passing it to pam_modutil_getpwnam
  1360. pam_modutil_getpwnam is perfectly capable of handling empty strings as
  1361. user names, no need to double check that.
  1362. * modules/pam_access/pam_access.c (pam_sm_authenticate): Do not check
  1363. the user name for emptyness before passing it to pam_modutil_getpwnam.
  1364. * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise.
  1365. * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Likewise.
  1366. * modules/pam_shells/pam_shells.c (perform_check): Likewise.
  1367. * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise.
  1368. * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise.
  1369. * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise.
  1370. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1371. pam_usertype: Document return values forwarded from pam_get_user.
  1372. * modules/pam_usertype/pam_usertype.8.xml (RETURN VALUES): Document
  1373. PAM_BUF_ERR and PAM_CONV_ERR return values.
  1374. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1375. pam_usertype: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN
  1376. Give the application a chance to handle PAM_INCOMPLETE.
  1377. * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Return
  1378. PAM_INCOMPLETE instead of PAM_CONV_AGAIN when pam_get_user returns
  1379. PAM_CONV_AGAIN.
  1380. * modules/pam_usertype/pam_usertype.8.xml (RETURN VALUES): Document it.
  1381. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1382. pam_faillock: Document return values forwarded from pam_get_user.
  1383. * modules/pam_faillock/pam_faillock.8.xml (RETURN VALUES): Document
  1384. PAM_BUF_ERR and PAM_CONV_ERR return values.
  1385. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1386. pam_faillock: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN
  1387. Give the application a chance to handle PAM_INCOMPLETE.
  1388. * modules/pam_faillock/pam_faillock.c (get_pam_user): Return
  1389. PAM_INCOMPLETE instead of PAM_CONV_AGAIN when pam_get_user returns
  1390. PAM_CONV_AGAIN.
  1391. * modules/pam_faillock/pam_faillock.8.xml (RETURN VALUES): Document it.
  1392. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1393. pam_securetty: forward error values returned by pam_get_user.
  1394. Starting with commit c2c601f5340a59c5c62193d55b555d384380ea38,
  1395. pam_get_user is guaranteed to return one of the following values:
  1396. PAM_SUCCESS, PAM_BUF_ERR, PAM_CONV_AGAIN, or PAM_CONV_ERR.
  1397. * modules/pam_securetty/pam_securetty.c (pam_sm_authenticate): Do not
  1398. replace non-PAM_CONV_AGAIN error values returned by pam_get_user with
  1399. PAM_SERVICE_ERR.
  1400. * modules/pam_securetty/pam_securetty.8.xml (RETURN VALUES): Document
  1401. new return values.
  1402. 2020-05-15 Dmitry V. Levin <ldv@altlinux.org>
  1403. modules: do not check user name for NULL if pam_get_user returned PAM_SUCCESS
  1404. If pam_get_user returned PAM_SUCCESS, the user name is guaranteed
  1405. to be a valid C string, no need to double check that.
  1406. * modules/pam_access/pam_access.c (pam_sm_authenticate): Do not check
  1407. for NULL the user name returned by pam_get_user when the latter returned
  1408. PAM_SUCCESS.
  1409. * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Likewise.
  1410. * modules/pam_debug/pam_debug.c (pam_sm_authenticate): Likewise.
  1411. * modules/pam_filter/pam_filter.c (process_args): Likewise.
  1412. * modules/pam_ftp/pam_ftp.c (pam_sm_authenticate): Likewise.
  1413. * modules/pam_group/pam_group.c (pam_sm_setcred): Likewise.
  1414. * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise.
  1415. * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): Likewise.
  1416. * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Likewise.
  1417. * modules/pam_mail/pam_mail.c (_do_mail): Likewise.
  1418. * modules/pam_nologin/pam_nologin.c (perform_check): Likewise.
  1419. * modules/pam_permit/pam_permit.c (pam_sm_authenticate): Likewise.
  1420. * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Likewise.
  1421. * modules/pam_rhosts/pam_rhosts.c (pam_sm_authenticate): Likewise.
  1422. * modules/pam_securetty/pam_securetty.c (pam_sm_authenticate): Likewise.
  1423. * modules/pam_sepermit/pam_sepermit.c (pam_sm_authenticate): Likewise.
  1424. * modules/pam_shells/pam_shells.c (perform_check): Likewise.
  1425. * modules/pam_stress/pam_stress.c (pam_sm_authenticate): Likewise.
  1426. * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Likewise.
  1427. * modules/pam_time/pam_time.c (pam_sm_acct_mgmt): Likewise.
  1428. * modules/pam_timestamp/pam_timestamp.c (get_timestamp_name): Likewise.
  1429. * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise.
  1430. * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Likewise.
  1431. * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Likewise.
  1432. * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Likewise.
  1433. * modules/pam_wheel/pam_wheel.c (perform_check): Likewise.
  1434. * modules/pam_userdb/pam_userdb.c (pam_sm_authenticate, pam_sm_acct_mgmt):
  1435. Likewise.
  1436. 2020-05-14 Dmitry V. Levin <ldv@altlinux.org>
  1437. pam_umask: Document return values forwarded from pam_get_user.
  1438. * modules/pam_umask/pam_umask.8.xml (RETURN VALUES): Document
  1439. PAM_BUF_ERR, PAM_CONV_ERR, and PAM_INCOMPLETE return values.
  1440. pam_exec: Document return values forwarded from pam_get_user.
  1441. * modules/pam_exec/pam_exec.8.xml (RETURN VALUES): Document
  1442. PAM_BUF_ERR, PAM_CONV_ERR, and PAM_INCOMPLETE return values.
  1443. 2020-05-13 Dmitry V. Levin <ldv@altlinux.org>
  1444. Deprecate pam_cracklib, pam_tally, and pam_tally2.
  1445. Deprecate pam_cracklib, there are two better alternatives to this
  1446. obsolete module: pam_passwdqc from passwdqc project and pam_pwquality
  1447. from libpwquality project.
  1448. Deprecate pam_tally and pam_tally2 in favour of pam_faillock.
  1449. * configure.ac: Implement --enable-cracklib=check that enables build
  1450. of pam_cracklib when libcrack is available.
  1451. Disable build of pam_cracklib, pam_tally, and pam_tally2 by default.
  1452. * NEWS: Mention this change.
  1453. * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Add
  1454. --enable-tally, --enable-tally2, and --enable-cracklib=check
  1455. to check build of these deprecated modules.
  1456. 2020-05-13 Dmitry V. Levin <ldv@altlinux.org>
  1457. NEWS: update.
  1458. 2020-05-12 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com>
  1459. Use correct path for pam_namespace.service file (#223)
  1460. 2020-05-09 Dmitry V. Levin <ldv@altlinux.org>
  1461. pam_setquota: fix return value when the user is unknown.
  1462. Following the bad example in pam_mkhomedir module, from the very
  1463. beginning pam_setquota module used to return PAM_CRED_INSUFFICIENT
  1464. when pam_modutil_getpwnam() returned an error. Fix this now
  1465. by changing the return value to PAM_USER_UNKNOWN.
  1466. * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Return
  1467. PAM_USER_UNKNOWN instead of PAM_CRED_INSUFFICIENT.
  1468. * modules/pam_setquota/pam_setquota.8.xml (PAM_CRED_INSUFFICIENT):
  1469. Replace with PAM_USER_UNKNOWN.
  1470. 2020-05-09 Dmitry V. Levin <ldv@altlinux.org>
  1471. pam_mkhomedir: fix return value when the user is unknown.
  1472. From the very beginning pam_mkhomedir module used to return
  1473. PAM_CRED_INSUFFICIENT when getpwnam() or pam_modutil_getpwnam()
  1474. returned an error. Fix this now by changing the return value
  1475. to PAM_USER_UNKNOWN.
  1476. * modules/pam_mkhomedir/mkhomedir_helper.c (main): Return
  1477. PAM_USER_UNKNOWN instead of PAM_CRED_INSUFFICIENT.
  1478. * modules/pam_mkhomedir/pam_mkhomedir.c (pam_sm_open_session): Likewise.
  1479. * modules/pam_mkhomedir/pam_mkhomedir.8.xml (PAM_CRED_INSUFFICIENT):
  1480. Remove.
  1481. 2020-05-06 Dmitry V. Levin <ldv@altlinux.org>
  1482. pam_get_user: do not override valid values returned by the conversation function
  1483. When the conversation function returned a value different from
  1484. PAM_CONV_AGAIN and provided no response, pam_get_user used to replace
  1485. the return value with PAM_CONV_ERR. Fix this and replace the return
  1486. value only if it was PAM_SUCCESS.
  1487. * libpam/pam_item.c (pam_get_user): Do not override valid values
  1488. returned by the conversation function.
  1489. 2020-05-06 Dmitry V. Levin <ldv@altlinux.org>
  1490. pam_get_user: filter conversation function return values.
  1491. Do not assume that the conversation function provided by the application
  1492. strictly follows the return values guidelines, replace undocumented
  1493. return values with PAM_CONV_ERR.
  1494. * libpam/pam_item.c (pam_get_user): If the value returned by the
  1495. conversation function is not one of PAM_SUCCESS, PAM_BUF_ERR,
  1496. PAM_CONV_AGAIN, or PAM_CONV_ERR, replace it with PAM_CONV_ERR.
  1497. 2020-05-06 Dmitry V. Levin <ldv@altlinux.org>
  1498. man: document other valid pam_get_user return values.
  1499. * doc/man/pam_get_user.3.xml (pam_get_user-return_values): Add
  1500. PAM_BUF_ERR, PAM_ABORT, and PAM_CONV_AGAIN.
  1501. 2020-05-06 Dmitry V. Levin <ldv@altlinux.org>
  1502. pam_get_user: consistently return PAM_SYSTEM_ERR if user specified a NULL pointer
  1503. pam_get_user returns PAM_SYSTEM_ERR in case of pamh == NULL.
  1504. In case of user == NULL, however, it used to return PAM_PERM_DENIED,
  1505. and in case of NULL conversation function it used to return
  1506. PAM_SERVICE_ERR.
  1507. According to the documentation, PAM_SYSTEM_ERR shall be returned
  1508. if a NULL pointer was submitted.
  1509. Fix this inconsistency and return PAM_SYSTEM_ERR in each of these
  1510. programming error cases.
  1511. * libpam/pam_item.c (pam_get_user): Return PAM_SYSTEM_ERR instead of
  1512. PAM_PERM_DENIED if user == NULL. Return PAM_SYSTEM_ERR instead of
  1513. PAM_SERVICE_ERR if pamh->pam_conversation == NULL.
  1514. 2020-05-06 Weblate (bot) <noreply@weblate.org>
  1515. Translations update from Weblate.
  1516. * Translated using Weblate (Spanish)
  1517. Currently translated at 81.9% (100 of 122 strings)
  1518. * Translated using Weblate (Portuguese)
  1519. Currently translated at 100.0% (122 of 122 strings)
  1520. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1521. doc: remove references to PAM_SM_* macros.
  1522. Starting with commit a684595c0bbd88df71285f43fb27630e3829121e aka
  1523. Linux-PAM-1.3.0~14 (Remove "--enable-static-modules" option and support
  1524. from Linux-PAM), PAM_SM_* macros have no effect.
  1525. modules: remove PAM_SM_* macros.
  1526. Starting with commit a684595c0bbd88df71285f43fb27630e3829121e aka
  1527. Linux-PAM-1.3.0~14 (Remove "--enable-static-modules" option and support
  1528. from Linux-PAM), PAM_SM_* macros have no effect.
  1529. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1530. pam_usertype: do not override the default prompt.
  1531. Following the bad example in pam_succeed_if module, from the very
  1532. beginning pam_usertype used to override the default prompt used by
  1533. pam_get_user() with "login: ". Fix this now.
  1534. * modules/pam_usertype/pam_usertype.c (pam_sm_authenticate): Do not
  1535. request PAM_USER_PROMPT item, invoke pam_get_user() with the default
  1536. prompt.
  1537. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1538. pam_succeed_if: do not override the default prompt.
  1539. From the very beginning pam_succeed_if used to override the default
  1540. prompt used by pam_get_user() with "login: ". Fix this now.
  1541. * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Do not
  1542. request PAM_USER_PROMPT item, invoke pam_get_user() with the default
  1543. prompt.
  1544. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1545. modules/*/Makefile.am: rename TESTS to dist_check_SCRIPTS.
  1546. ... and remove $(TESTS) from EXTRA_DIST.
  1547. The change is performed automatically using the following script:
  1548. sed -i -e 's/^TESTS = \(tst.*\)/dist_check_SCRIPTS = \1\nTESTS = $(dist_check_SCRIPTS)/' \
  1549. -e '/^EXTRA_DIST/ s/ \$(TESTS)//' modules/*/Makefile.am
  1550. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1551. modules/*/Makefile.am: rename man_MANS to dist_man_MANS.
  1552. ... and remove $(MANS) from EXTRA_DIST.
  1553. The change is performed automatically using the following script:
  1554. sed -i 's/^man_MANS/dist_&/; /^EXTRA_DIST/ s/ \$(MANS)//' modules/*/Makefile.am
  1555. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1556. pam_namespace: cleanup pam_namespace.service installation.
  1557. * modules/pam_namespace/Makefile.am (service_DATA): New variable.
  1558. (install-data-local): Remove all commands related to servicedir.
  1559. (uninstall-local): Remove.
  1560. Fixes: 59812d1cf ("pam_namespace: secure tmp-inst directories")
  1561. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1562. modules/*/Makefile.am: add dist_ prefix to *_DATA.
  1563. ... and remove $(DATA) from EXTRA_DIST.
  1564. The change is performed automatically using the following script:
  1565. sed -i 's/^[a-z]*_DATA/dist_&/; /^EXTRA_DIST/ s/ \$(DATA)//' modules/*/Makefile.am
  1566. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1567. modules/pam_timestamp/Makefile.am: rename noinst_PROGRAMS to check_PROGRAMS
  1568. ... and remove nodist_TESTS.
  1569. * modules/pam_timestamp/Makefile.am (nodist_TESTS): Remove.
  1570. (TESTS): Replace $(nodist_TESTS) with $(check_PROGRAMS).
  1571. (noinst_PROGRAMS): Rename to check_PROGRAMS.
  1572. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1573. modules/pam_timestamp/Makefile.am: rename dist_TESTS to dist_check_SCRIPTS
  1574. ... and remove it from EXTRA_DIST
  1575. * modules/pam_timestamp/Makefile.am (EXTRA_DIST): Remove $(dist_TESTS).
  1576. (dist_TESTS): Rename to dist_check_SCRIPTS.
  1577. (TESTS): Replace $(dist_TESTS) with $(dist_check_SCRIPTS).
  1578. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1579. modules/pam_namespace/Makefile.am: add dist_ prefix to secureconf_SCRIPTS
  1580. ... and remove $(SCRIPTS) from EXTRA_DIST.
  1581. * modules/pam_namespace/Makefile.am (EXTRA_DIST): Remove $(SCRIPTS).
  1582. (secureconf_SCRIPTS): Rename to dist_secureconf_SCRIPTS.
  1583. 2020-05-03 Dmitry V. Levin <ldv@altlinux.org>
  1584. Translated using Weblate (Russian)
  1585. Currently translated at 100.0% (122 of 122 strings)
  1586. Translation: linux-pam/master
  1587. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/
  1588. 2020-05-03 Yuri Chornoivan <yurchor@ukr.net>
  1589. Translated using Weblate (Ukrainian)
  1590. Currently translated at 100.0% (122 of 122 strings)
  1591. Translation: linux-pam/master
  1592. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/
  1593. 2020-05-03 Oğuz Ersen <oguzersen@protonmail.com>
  1594. Translated using Weblate (Turkish)
  1595. Currently translated at 100.0% (122 of 122 strings)
  1596. Translation: linux-pam/master
  1597. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  1598. 2020-05-03 Julien Humbert <julroy67@gmail.com>
  1599. Translated using Weblate (French)
  1600. Currently translated at 100.0% (122 of 122 strings)
  1601. Translation: linux-pam/master
  1602. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  1603. 2020-05-03 scootergrisen <scootergrisen@gmail.com>
  1604. Translated using Weblate (Danish)
  1605. Currently translated at 100.0% (122 of 122 strings)
  1606. Translation: linux-pam/master
  1607. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/
  1608. 2020-05-03 Piotr Drąg <piotrdrag@gmail.com>
  1609. Translated using Weblate (Polish)
  1610. Currently translated at 100.0% (122 of 122 strings)
  1611. Translation: linux-pam/master
  1612. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  1613. 2020-04-30 Tomas Mraz <tmraz@fedoraproject.org>
  1614. Update .po and .pot files after adding pam_faillock.
  1615. pam_faillock: Correct the grammar of translated strings.
  1616. Also make the message the same as in pam_tally2.
  1617. pam_faillock: Add conf option to use a different config file.
  1618. pam_faillock: New module for locking after multiple auth failures.
  1619. 2020-04-29 Weblate (bot) <noreply@weblate.org>
  1620. Alesker Abdullayev - FEDORA Azerbaijan <tech@abdullaeff.com>
  1621. Allan Nordhøy <epost@anotheragency.no>
  1622. Translations update from Weblate (#215)
  1623. Updated translation using Weblate
  1624. * Translated using Weblate (Azerbaijani)
  1625. Currently translated at 15.8% (19 of 120 strings)
  1626. * Translated using Weblate (Norwegian Bokmål)
  1627. Currently translated at 100.0% (120 of 120 strings)
  1628. 2020-04-28 Dmitry V. Levin <ldv@altlinux.org>
  1629. build: rework vendordir substitution.
  1630. Since Make.xml.rules is the only place where XSLTPROC_CUSTOM was used,
  1631. remove stereotypic definitions from other Makefiles, this way we no
  1632. longer have to worry about vendordir being used somewhere else in
  1633. documentation files.
  1634. Likewise, define VENDORDIR in config.h and remove stereotypic
  1635. -DVENDORDIR= additions from other Makefiles, this way we no longer
  1636. have to worry about VENDORDIR being used somewhere else in the code.
  1637. * configure.ac (AM_CONDITIONAL): Remove HAVE_VENDORDIR.
  1638. (AC_DEFINE_UNQUOTED): Add VENDORDIR.
  1639. (AC_SUBST): Remove VENDORDIR, add STRINGPARAM_VENDORDIR.
  1640. * Make.xml.rules.in: Replace $(XSLTPROC_CUSTOM) with
  1641. @STRINGPARAM_VENDORDIR@.
  1642. * doc/man/Makefile.am (XSLTPROC_CUSTOM): Remove.
  1643. * libpam/Makefile.am [HAVE_VENDORDIR]: Remove.
  1644. * modules/pam_securetty/Makefile.am [HAVE_VENDORDIR]: Remove.
  1645. (XSLTPROC_CUSTOM): Remove.
  1646. * modules/pam_securetty/pam_securetty.c: Move definitions of local
  1647. macros after config.h to benefit from macros defined there.
  1648. 2020-04-28 Dmitry V. Levin <ldv@altlinux.org>
  1649. Make.xml.rules: prepare for configure substitutions.
  1650. * Make.xml.rules: Rename to ...
  1651. * Make.xml.rules.in: ... new file.
  1652. * Makefile.am (EXTRA_DIST): Remove Make.xml.rules.
  1653. * configure.ac (AC_CONFIG_FILES): Add Make.xml.rules.
  1654. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1655. pam_namespace: replace namespace.init with $(SCRIPTS) in EXTRA_DIST.
  1656. As namespace.init is listed in secureconf_SCRIPTS which is part of
  1657. generated SCRIPTS variable.
  1658. * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace namespace.init
  1659. with $(SCRIPTS).
  1660. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1661. pam_env: remove environment from EXTRA_DIST.
  1662. * modules/pam_env/Makefile.am (EXTRA_DIST): Remove environment as it is
  1663. listed in sysconf_DATA which is part of DATA which is already listed in
  1664. EXTRA_DIST.
  1665. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1666. modules/*/Makefile.am: remove $(secureconf_DATA) from EXTRA_DIST.
  1667. Since the whole $(DATA) is listed in EXTRA_DIST, $(secureconf_DATA)
  1668. can be safely de-listed.
  1669. * modules/pam_access/Makefile.am (EXTRA_DIST): Remove
  1670. $(secureconf_DATA).
  1671. * modules/pam_env/Makefile.am: Likewise.
  1672. * modules/pam_group/Makefile.am: Likewise.
  1673. * modules/pam_limits/Makefile.am: Likewise.
  1674. * modules/pam_namespace/Makefile.am: Likewise.
  1675. * modules/pam_sepermit/Makefile.am: Likewise.
  1676. * modules/pam_time/Makefile.am: Likewise.
  1677. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1678. modules/*/Makefile.am: replace README with $(DATA) in EXTRA_DIST.
  1679. Since the GNU Automake distributes README files by default, the only
  1680. reason why README had to be listed in EXTRA_DIST was to make these
  1681. README files generated.
  1682. Since README is also listed in noinst_DATA, we can safely replace
  1683. README in EXTRA_DIST with $(DATA), this also opens the way for
  1684. further EXTRA_DIST cleanup.
  1685. * modules/*/Makefile.am (EXTRA_DIST): Replace README with $(DATA).
  1686. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1687. modules/*/Makefile.am: reorder lines to promote uniformity.
  1688. This is essentially a no-op change that makes modules/*/Makefile.am
  1689. files less divergent.
  1690. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1691. build: move README prerequisites rule from modules/*/Makefile.am to Make.xml.rules
  1692. As the rule is now the same in every modules/*/Makefile.am file,
  1693. move it to Make.xml.rules.
  1694. * Make.xml.rules (README): New prerequisites rule.
  1695. * modules/pam_access/Makefile.am (README): Remove rule.
  1696. * modules/pam_cracklib/Makefile.am (README): Likewise.
  1697. * modules/pam_debug/Makefile.am (README): Likewise.
  1698. * modules/pam_deny/Makefile.am (README): Likewise.
  1699. * modules/pam_echo/Makefile.am (README): Likewise.
  1700. * modules/pam_env/Makefile.am (README): Likewise.
  1701. * modules/pam_exec/Makefile.am (README): Likewise.
  1702. * modules/pam_faildelay/Makefile.am (README): Likewise.
  1703. * modules/pam_filter/Makefile.am (README): Likewise.
  1704. * modules/pam_ftp/Makefile.am (README): Likewise.
  1705. * modules/pam_group/Makefile.am (README): Likewise.
  1706. * modules/pam_issue/Makefile.am (README): Likewise.
  1707. * modules/pam_keyinit/Makefile.am (README): Likewise.
  1708. * modules/pam_lastlog/Makefile.am (README): Likewise.
  1709. * modules/pam_limits/Makefile.am (README): Likewise.
  1710. * modules/pam_listfile/Makefile.am (README): Likewise.
  1711. * modules/pam_localuser/Makefile.am (README): Likewise.
  1712. * modules/pam_loginuid/Makefile.am (README): Likewise.
  1713. * modules/pam_mail/Makefile.am (README): Likewise.
  1714. * modules/pam_mkhomedir/Makefile.am (README): Likewise.
  1715. * modules/pam_motd/Makefile.am (README): Likewise.
  1716. * modules/pam_namespace/Makefile.am (README): Likewise.
  1717. * modules/pam_nologin/Makefile.am (README): Likewise.
  1718. * modules/pam_permit/Makefile.am (README): Likewise.
  1719. * modules/pam_pwhistory/Makefile.am (README): Likewise.
  1720. * modules/pam_rhosts/Makefile.am (README): Likewise.
  1721. * modules/pam_rootok/Makefile.am (README): Likewise.
  1722. * modules/pam_securetty/Makefile.am (README): Likewise.
  1723. * modules/pam_selinux/Makefile.am (README): Likewise.
  1724. * modules/pam_sepermit/Makefile.am (README): Likewise.
  1725. * modules/pam_setquota/Makefile.am (README): Likewise.
  1726. * modules/pam_shells/Makefile.am (README): Likewise.
  1727. * modules/pam_succeed_if/Makefile.am (README): Likewise.
  1728. * modules/pam_tally/Makefile.am (README): Likewise.
  1729. * modules/pam_tally2/Makefile.am (README): Likewise.
  1730. * modules/pam_time/Makefile.am (README): Likewise.
  1731. * modules/pam_timestamp/Makefile.am (README): Likewise.
  1732. * modules/pam_tty_audit/Makefile.am (README): Likewise.
  1733. * modules/pam_umask/Makefile.am (README): Likewise.
  1734. * modules/pam_unix/Makefile.am (README): Likewise.
  1735. * modules/pam_userdb/Makefile.am (README): Likewise.
  1736. * modules/pam_usertype/Makefile.am (README): Likewise.
  1737. * modules/pam_warn/Makefile.am (README): Likewise.
  1738. * modules/pam_wheel/Makefile.am (README): Likewise.
  1739. * modules/pam_xauth/Makefile.am (README): Likewise.
  1740. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1741. modules/*/Makefile.am: list prerequisites of README target uniformly.
  1742. There is no need to list prerequisites of README targets manually as
  1743. all README targets depend on $(XMLS).
  1744. The change is performed automatically using the following script:
  1745. sed -i 's/^README: pam_.*/README: $(XMLS)/' modules/*/Makefile.am
  1746. * modules/pam_access/Makefile.am (README): Replace pam_access.8.xml
  1747. and access.conf.5.xml with $(XMLS).
  1748. * modules/pam_cracklib/Makefile.am (README): Replace pam_cracklib.8.xml
  1749. with $(XMLS).
  1750. * modules/pam_debug/Makefile.am (README): Replace pam_debug.8.xml
  1751. with $(XMLS).
  1752. * modules/pam_deny/Makefile.am (README): Replace pam_deny.8.xml
  1753. with $(XMLS).
  1754. * modules/pam_echo/Makefile.am (README): Replace pam_echo.8.xml
  1755. with $(XMLS).
  1756. * modules/pam_env/Makefile.am (README): Replace pam_env.8.xml and
  1757. pam_env.conf.5.xml with $(XMLS).
  1758. * modules/pam_exec/Makefile.am (README): Replace pam_exec.8.xml
  1759. with $(XMLS).
  1760. * modules/pam_faildelay/Makefile.am (README): Replace
  1761. pam_faildelay.8.xml with $(XMLS).
  1762. * modules/pam_filter/Makefile.am (README): Replace pam_filter.8.xml
  1763. with $(XMLS).
  1764. * modules/pam_ftp/Makefile.am (README): Replace pam_ftp.8.xml with
  1765. $(XMLS).
  1766. * modules/pam_group/Makefile.am (README): Replace pam_group.8.xml
  1767. and group.conf.5.xml with $(XMLS).
  1768. * modules/pam_issue/Makefile.am (README): Replace pam_issue.8.xml
  1769. with $(XMLS).
  1770. * modules/pam_keyinit/Makefile.am (README): Replace pam_keyinit.8.xml
  1771. with $(XMLS).
  1772. * modules/pam_lastlog/Makefile.am (README): Replace pam_lastlog.8.xml
  1773. with $(XMLS).
  1774. * modules/pam_limits/Makefile.am (README): Replace pam_limits.8.xml
  1775. and limits.conf.5.xml with $(XMLS).
  1776. * modules/pam_listfile/Makefile.am (README): Replace pam_listfile.8.xml
  1777. with $(XMLS).
  1778. * modules/pam_localuser/Makefile.am (README): Replace
  1779. pam_localuser.8.xml with $(XMLS).
  1780. * modules/pam_loginuid/Makefile.am (README): Replace pam_loginuid.8.xml
  1781. with $(XMLS).
  1782. * modules/pam_mail/Makefile.am (README): Replace pam_mail.8.xml
  1783. with $(XMLS).
  1784. * modules/pam_mkhomedir/Makefile.am (README): Replace
  1785. pam_mkhomedir.8.xml with $(XMLS).
  1786. * modules/pam_motd/Makefile.am (README): Replace pam_motd.8.xml
  1787. with $(XMLS).
  1788. * modules/pam_namespace/Makefile.am (README): Replace
  1789. pam_namespace.8.xml, namespace.conf.5.xml,
  1790. and pam_namespace_helper.8.xml with $(XMLS).
  1791. * modules/pam_nologin/Makefile.am (README): Replace pam_nologin.8.xml
  1792. with $(XMLS).
  1793. * modules/pam_permit/Makefile.am (README): Replace pam_permit.8.xml
  1794. with $(XMLS).
  1795. * modules/pam_pwhistory/Makefile.am (README): Replace
  1796. pam_pwhistory.8.xml with $(XMLS).
  1797. * modules/pam_rhosts/Makefile.am (README): Replace pam_rhosts.8.xml
  1798. with $(XMLS).
  1799. * modules/pam_rootok/Makefile.am (README): Replace pam_rootok.8.xml
  1800. with $(XMLS).
  1801. * modules/pam_securetty/Makefile.am (README): Replace
  1802. pam_securetty.8.xml with $(XMLS).
  1803. * modules/pam_selinux/Makefile.am (README): Replace pam_selinux.8.xml
  1804. with $(XMLS).
  1805. * modules/pam_sepermit/Makefile.am (README): Replace pam_sepermit.8.xml
  1806. with $(XMLS).
  1807. * modules/pam_setquota/Makefile.am (README): Replace pam_setquota.8.xml
  1808. with $(XMLS).
  1809. * modules/pam_shells/Makefile.am (README): Replace pam_shells.8.xml
  1810. with $(XMLS).
  1811. * modules/pam_succeed_if/Makefile.am (README): Replace
  1812. pam_succeed_if.8.xml with $(XMLS).
  1813. * modules/pam_tally/Makefile.am (README): Replace pam_tally.8.xml
  1814. with $(XMLS).
  1815. * modules/pam_tally2/Makefile.am (README): Replace pam_tally2.8.xml
  1816. with $(XMLS).
  1817. * modules/pam_time/Makefile.am (README): Replace pam_time.8.xml and
  1818. time.conf.5.xml with $(XMLS).
  1819. * modules/pam_timestamp/Makefile.am (README): Replace
  1820. pam_timestamp.8.xml with $(XMLS).
  1821. * modules/pam_tty_audit/Makefile.am (README): Replace
  1822. pam_tty_audit.8.xml with $(XMLS).
  1823. * modules/pam_umask/Makefile.am (README): Replace pam_umask.8.xml
  1824. with $(XMLS).
  1825. * modules/pam_unix/Makefile.am (README): Replace pam_unix.8.xml
  1826. with $(XMLS).
  1827. * modules/pam_userdb/Makefile.am (README): Replace pam_userdb.8.xml
  1828. with $(XMLS).
  1829. * modules/pam_usertype/Makefile.am (README): Replace pam_usertype.8.xml
  1830. with $(XMLS).
  1831. * modules/pam_warn/Makefile.am (README): Replace pam_warn.8.xml
  1832. with $(XMLS).
  1833. * modules/pam_wheel/Makefile.am (README): Replace pam_wheel.8.xml
  1834. with $(XMLS).
  1835. * modules/pam_xauth/Makefile.am (README): Replace pam_xauth.8.xml
  1836. with $(XMLS).
  1837. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1838. modules/*/Makefile.am: list secureconf_DATA files in EXTRA_DIST uniformly
  1839. The change was prepared using the following script:
  1840. git grep -l secureconf_DATA modules/*/Makefile.am |while read m; do
  1841. t="$(sed '/^secureconf_DATA = /!d;s///;q' -- "$m")"
  1842. sed -i "/^EXTRA_DIST =/ s/\\<$t\\>/\$(secureconf_DATA)/" -- "$m"
  1843. done
  1844. * modules/pam_access/Makefile.am (EXTRA_DIST): Replace access.conf with
  1845. $(secureconf_DATA).
  1846. * modules/pam_env/Makefile.am (EXTRA_DIST): Replace pam_env.conf with
  1847. $(secureconf_DATA).
  1848. * modules/pam_group/Makefile.am (EXTRA_DIST): Replace group.conf with
  1849. $(secureconf_DATA).
  1850. * modules/pam_limits/Makefile.am (EXTRA_DIST): Replace limits.conf with
  1851. $(secureconf_DATA).
  1852. * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace namespace.conf
  1853. with $(secureconf_DATA).
  1854. * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace sepermit.conf
  1855. with $(secureconf_DATA).
  1856. * modules/pam_time/Makefile.am (EXTRA_DIST): Replace time.conf with
  1857. $(secureconf_DATA).
  1858. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1859. modules/*/Makefile.am: list manual pages in EXTRA_DIST uniformly.
  1860. List in EXTRA_DIST those manual pages that are listed in man_MANS
  1861. as $(MANS).
  1862. * modules/pam_cracklib/Makefile.am (EXTRA_DIST): Replace pam_cracklib.8
  1863. with $(MANS).
  1864. * modules/pam_keyinit/Makefile.am (EXTRA_DIST): Replace pam_keyinit.8
  1865. with $(MANS).
  1866. * modules/pam_selinux/Makefile.am (EXTRA_DIST): Replace pam_selinux.8
  1867. with $(MANS).
  1868. * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace pam_sepermit.8
  1869. and sepermit.conf.5 with $(MANS).
  1870. * modules/pam_tty_audit/Makefile.am (EXTRA_DIST): Replace
  1871. pam_tty_audit.8 with $(MANS).
  1872. * modules/pam_userdb/Makefile.am (EXTRA_DIST): Replace pam_userdb.8 with
  1873. $(MANS).
  1874. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1875. modules/*/Makefile.am: list tests in EXTRA_DIST uniformly.
  1876. The change was prepared using the following script:
  1877. git grep -l '^TESTS = tst-pam_' modules/ |while read m; do
  1878. t="$(sed '/^TESTS = tst-pam_/!d;s/^TESTS = //;q' -- "$m")"
  1879. sed -i "/^EXTRA_DIST =/ s/$t\\>/\$(TESTS)/" -- "$m"
  1880. done
  1881. * modules/pam_access/Makefile.am (EXTRA_DIST): Replace tst-pam_access
  1882. with $(TESTS).
  1883. * modules/pam_cracklib/Makefile.am (EXTRA_DIST): Replace
  1884. tst-pam_cracklib with $(TESTS).
  1885. * modules/pam_debug/Makefile.am (EXTRA_DIST): Replace tst-pam_debug with
  1886. $(TESTS).
  1887. * modules/pam_deny/Makefile.am (EXTRA_DIST): Replace tst-pam_deny with
  1888. $(TESTS).
  1889. * modules/pam_echo/Makefile.am (EXTRA_DIST): Replace tst-pam_echo with
  1890. $(TESTS).
  1891. * modules/pam_env/Makefile.am (EXTRA_DIST): Replace tst-pam_env with
  1892. $(TESTS).
  1893. * modules/pam_exec/Makefile.am (EXTRA_DIST): Replace tst-pam_exec with
  1894. $(TESTS).
  1895. * modules/pam_faildelay/Makefile.am (EXTRA_DIST): Replace
  1896. tst-pam_faildelay with $(TESTS).
  1897. * modules/pam_filter/Makefile.am (EXTRA_DIST): Replace tst-pam_filter
  1898. with $(TESTS).
  1899. * modules/pam_ftp/Makefile.am (EXTRA_DIST): Replace tst-pam_ftp with
  1900. $(TESTS).
  1901. * modules/pam_group/Makefile.am (EXTRA_DIST): Replace tst-pam_group with
  1902. $(TESTS).
  1903. * modules/pam_issue/Makefile.am (EXTRA_DIST): Replace tst-pam_issue with
  1904. $(TESTS).
  1905. * modules/pam_keyinit/Makefile.am (EXTRA_DIST): Replace tst-pam_keyinit
  1906. with $(TESTS).
  1907. * modules/pam_lastlog/Makefile.am (EXTRA_DIST): Replace tst-pam_lastlog
  1908. with $(TESTS).
  1909. * modules/pam_limits/Makefile.am (EXTRA_DIST): Replace tst-pam_limits
  1910. with $(TESTS).
  1911. * modules/pam_listfile/Makefile.am (EXTRA_DIST): Replace
  1912. tst-pam_listfile with $(TESTS).
  1913. * modules/pam_localuser/Makefile.am (EXTRA_DIST): Replace
  1914. tst-pam_localuser with $(TESTS).
  1915. * modules/pam_loginuid/Makefile.am (EXTRA_DIST): Replace
  1916. tst-pam_loginuid with $(TESTS).
  1917. * modules/pam_mail/Makefile.am (EXTRA_DIST): Replace tst-pam_mail with
  1918. $(TESTS).
  1919. * modules/pam_mkhomedir/Makefile.am (EXTRA_DIST): Replace
  1920. tst-pam_mkhomedir with $(TESTS).
  1921. * modules/pam_motd/Makefile.am (EXTRA_DIST): Replace tst-pam_motd with
  1922. $(TESTS).
  1923. * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace
  1924. tst-pam_namespace with $(TESTS).
  1925. * modules/pam_nologin/Makefile.am (EXTRA_DIST): Replace tst-pam_nologin
  1926. with $(TESTS).
  1927. * modules/pam_permit/Makefile.am (EXTRA_DIST): Replace tst-pam_permit
  1928. with $(TESTS).
  1929. * modules/pam_pwhistory/Makefile.am (EXTRA_DIST): Replace
  1930. tst-pam_pwhistory with $(TESTS).
  1931. * modules/pam_rhosts/Makefile.am (EXTRA_DIST): Replace tst-pam_rhosts
  1932. with $(TESTS).
  1933. * modules/pam_rootok/Makefile.am (EXTRA_DIST): Replace tst-pam_rootok
  1934. with $(TESTS).
  1935. * modules/pam_securetty/Makefile.am (EXTRA_DIST): Replace
  1936. tst-pam_securetty with $(TESTS).
  1937. * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace
  1938. tst-pam_sepermit with $(TESTS).
  1939. * modules/pam_setquota/Makefile.am (EXTRA_DIST): Replace
  1940. tst-pam_setquota with $(TESTS).
  1941. * modules/pam_shells/Makefile.am (EXTRA_DIST): Replace tst-pam_shells
  1942. with $(TESTS).
  1943. * modules/pam_stress/Makefile.am (EXTRA_DIST): Replace tst-pam_stress
  1944. with $(TESTS).
  1945. * modules/pam_succeed_if/Makefile.am (EXTRA_DIST): Replace
  1946. tst-pam_succeed_if with $(TESTS).
  1947. * modules/pam_tally/Makefile.am (EXTRA_DIST): Replace tst-pam_tally with
  1948. $(TESTS).
  1949. * modules/pam_tally2/Makefile.am (EXTRA_DIST): Replace tst-pam_tally2
  1950. with $(TESTS).
  1951. * modules/pam_time/Makefile.am (EXTRA_DIST): Replace tst-pam_time with
  1952. $(TESTS).
  1953. * modules/pam_tty_audit/Makefile.am (EXTRA_DIST): Replace
  1954. tst-pam_tty_audit with $(TESTS).
  1955. * modules/pam_umask/Makefile.am (EXTRA_DIST): Replace tst-pam_umask with
  1956. $(TESTS).
  1957. * modules/pam_userdb/Makefile.am (EXTRA_DIST): Replace tst-pam_userdb
  1958. with $(TESTS).
  1959. * modules/pam_usertype/Makefile.am (EXTRA_DIST): Replace
  1960. tst-pam_usertype with $(TESTS).
  1961. * modules/pam_warn/Makefile.am (EXTRA_DIST): Replace tst-pam_warn with
  1962. $(TESTS).
  1963. * modules/pam_wheel/Makefile.am (EXTRA_DIST): Replace tst-pam_wheel with
  1964. $(TESTS).
  1965. * modules/pam_xauth/Makefile.am (EXTRA_DIST): Replace tst-pam_xauth with
  1966. $(TESTS).
  1967. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1968. pam_namespace: simplify distribution of manual pages.
  1969. * modules/pam_namespace/Makefile.am: Merge MAN5 and MAN8 into man_MANS.
  1970. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1971. modules/*/Makefile.am: remove manual pages from noinst_DATA.
  1972. Manual pages already belong to man_MANS, listing them also
  1973. in noinst_DATA does not help in any way.
  1974. * modules/pam_cracklib/Makefile.am (noinst_DATA): Remove pam_cracklib.8.
  1975. * modules/pam_selinux/Makefile.am (noinst_DATA): Remove pam_selinux.8.
  1976. * modules/pam_sepermit/Makefile.am (noinst_DATA): Remove pam_sepermit.8
  1977. and sepermit.conf.5.
  1978. * modules/pam_userdb/Makefile.am (noinst_DATA): Remove pam_userdb.8.
  1979. 2020-04-27 Dmitry V. Levin <ldv@altlinux.org>
  1980. configure: fix dlopen check.
  1981. * configure.ac: Check for the library providing dlopen using
  1982. AC_SEARCH_LIBS instead of AC_CHECK_LIB to handle the case when
  1983. dlopen is a part of libc.
  1984. configure: add --disable-tally and --disable-tally2 options.
  1985. * configure.ac (AC_ARG_ENABLE): Add tally and tally2.
  1986. (AM_CONDITIONAL): Add COND_BUILD_PAM_TALLY and COND_BUILD_PAM_TALLY2.
  1987. * modules/Makefile.am [COND_BUILD_PAM_TALLY] (MAYBE_PAM_TALLY): Define.
  1988. [COND_BUILD_PAM_TALLY2] (MAYBE_PAM_TALLY2): Likewise.
  1989. (SUBDIRS): Replace pam_tally with $(COND_BUILD_PAM_TALLY), pam_tally2
  1990. with $(COND_BUILD_PAM_TALLY2).
  1991. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  1992. build: move pam_selinux and pam_sepermit build conditions to modules/Makefile.am
  1993. * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBSELINUX with
  1994. COND_BUILD_PAM_SELINUX and COND_BUILD_PAM_SEPERMIT.
  1995. * modules/Makefile.am [COND_BUILD_PAM_SELINUX] (MAYBE_PAM_SELINUX):
  1996. Define.
  1997. [COND_BUILD_PAM_SEPERMIT] (MAYBE_PAM_SEPERMIT): Likewise.
  1998. (SUBDIRS): Replace pam_selinux with $(MAYBE_PAM_SELINUX),
  1999. pam_sepermit with MAYBE_PAM_SEPERMIT.
  2000. * modules/pam_selinux/Makefile.am: Assume HAVE_LIBSELINUX.
  2001. * modules/pam_sepermit/Makefile.am: Likewise.
  2002. build: simplify the check for unshare function.
  2003. * configure.ac (AC_CHECK_FUNCS): Do not set UNSHARE when checking for
  2004. unshare function.
  2005. (COND_BUILD_PAM_NAMESPACE): Check for $ac_cv_func_unshare instead of
  2006. $UNSHARE.
  2007. build: move pam_namespace build condition to modules/Makefile.am.
  2008. * configure.ac (AM_CONDITIONAL): Replace HAVE_UNSHARE with
  2009. COND_BUILD_PAM_NAMESPACE.
  2010. * modules/Makefile.am [COND_BUILD_PAM_NAMESPACE] (MAYBE_PAM_NAMESPACE):
  2011. Define.
  2012. (SUBDIRS): Replace pam_namespace with $(MAYBE_PAM_NAMESPACE).
  2013. * modules/pam_namespace/Makefile.am: Assume HAVE_UNSHARE.
  2014. build: move pam_userdb build condition to modules/Makefile.am.
  2015. * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBDB with
  2016. COND_BUILD_PAM_USERDB.
  2017. * modules/Makefile.am [COND_BUILD_PAM_USERDB] (MAYBE_PAM_USERDB):
  2018. Define.
  2019. (SUBDIRS): Replace pam_userdb with $(MAYBE_PAM_USERDB).
  2020. * modules/pam_userdb/Makefile.am: Assume HAVE_LIBDB.
  2021. build: remove unused HAVE_LIBCRACK.
  2022. * configure.ac (AC_DEFINE): Remove unused HAVE_LIBCRACK.
  2023. build: move pam_cracklib build condition to modules/Makefile.am.
  2024. * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBCRACK with
  2025. COND_BUILD_PAM_CRACKLIB.
  2026. * modules/Makefile.am [COND_BUILD_PAM_CRACKLIB] (MAYBE_PAM_CRACKLIB):
  2027. Define.
  2028. (SUBDIRS): Replace pam_cracklib with $(MAYBE_PAM_CRACKLIB).
  2029. * modules/pam_cracklib/Makefile.am: Assume HAVE_LIBCRACK.
  2030. build: remove unused HAVE_KEY_MANAGEMENT.
  2031. * configure.ac (AC_DEFINE, AC_SUBST): Remove unused HAVE_KEY_MANAGEMENT.
  2032. (AC_CHECK_DECL): Remove unused ENOKEY.
  2033. build: move pam_keyinit build condition to modules/Makefile.am.
  2034. * configure.ac (AM_CONDITIONAL): Replace HAVE_KEY_MANAGEMENT with
  2035. COND_BUILD_PAM_KEYINIT.
  2036. * modules/Makefile.am [COND_BUILD_PAM_KEYINIT] (MAYBE_PAM_KEYINIT):
  2037. Define.
  2038. (SUBDIRS): Replace pam_keyinit with $(MAYBE_PAM_KEYINIT).
  2039. * modules/pam_keyinit/Makefile.am: Assume HAVE_KEY_MANAGEMENT.
  2040. build: remove unused AC_DEFINE([HAVE_AUDIT_TTY_STATUS])
  2041. * configure.ac (AC_DEFINE): Remove unused HAVE_AUDIT_TTY_STATUS.
  2042. build: move pam_tty_audit build condition to modules/Makefile.am.
  2043. * configure.ac (AM_CONDITIONAL): Replace HAVE_AUDIT_TTY_STATUS with
  2044. COND_BUILD_PAM_TTY_AUDIT.
  2045. * modules/Makefile.am [COND_BUILD_PAM_TTY_AUDIT] (MAYBE_PAM_TTY_AUDIT):
  2046. Define.
  2047. (SUBDIRS): Replace pam_tty_audit with $(MAYBE_PAM_TTY_AUDIT).
  2048. * modules/pam_tty_audit/Makefile.am: Assume HAVE_AUDIT_TTY_STATUS.
  2049. configure.ac: sort COND_BUILD_* conditionals.
  2050. ... and move them closer to the end of configure.ac.
  2051. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2052. modules/Makefile.am: sort SUBDIRS.
  2053. Also list one element of SUBDIRS per line for the ease of maintenance.
  2054. * modules/Makefile.am (SUBDIRS): List one per line, sort.
  2055. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2056. ci: add gcc-10 jobs.
  2057. * .github/workflows/ci.yml (gcc10-x86_64, gcc10-x86, gcc10-x32):
  2058. New jobs.
  2059. * .travis.yml (matrix): Add gcc-10 jobs on x86_64, x86, x32,
  2060. and ppc64le.
  2061. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2062. pam_issue: fix potential read out of bounds.
  2063. Reported by gcc-10 -Warray-bounds:
  2064. In file included from /usr/include/string.h:494,
  2065. from modules/pam_issue/pam_issue.c:19:
  2066. In function 'strncat',
  2067. inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:197:3:
  2068. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [260, 389] from the object at 'uts' is out of the bounds of referenced subobject 'version' with type 'char[65]' at offset 195 [-Werror=array-bounds]
  2069. 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
  2070. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2071. In file included from modules/pam_issue/pam_issue.c:26:
  2072. modules/pam_issue/pam_issue.c: In function 'read_issue_quoted':
  2073. /usr/include/x86_64-linux-gnu/sys/utsname.h:59:10: note: subobject 'version' declared here
  2074. 59 | char version[_UTSNAME_VERSION_LENGTH];
  2075. | ^~~~~~~
  2076. In file included from /usr/include/string.h:494,
  2077. from modules/pam_issue/pam_issue.c:19:
  2078. In function 'strncat',
  2079. inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:188:3:
  2080. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [65, 389] from the object at 'uts' is out of the bounds of referenced subobject 'sysname' with type 'char[65]' at offset 0 [-Werror=array-bounds]
  2081. 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
  2082. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2083. In file included from modules/pam_issue/pam_issue.c:26:
  2084. modules/pam_issue/pam_issue.c: In function 'read_issue_quoted':
  2085. /usr/include/x86_64-linux-gnu/sys/utsname.h:51:10: note: subobject 'sysname' declared here
  2086. 51 | char sysname[_UTSNAME_SYSNAME_LENGTH];
  2087. | ^~~~~~~
  2088. In file included from /usr/include/string.h:494,
  2089. from modules/pam_issue/pam_issue.c:19:
  2090. In function 'strncat',
  2091. inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:194:3:
  2092. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [195, 389] from the object at 'uts' is out of the bounds of referenced subobject 'release' with type 'char[65]' at offset 130 [-Werror=array-bounds]
  2093. 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
  2094. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2095. In file included from modules/pam_issue/pam_issue.c:26:
  2096. modules/pam_issue/pam_issue.c: In function 'read_issue_quoted':
  2097. /usr/include/x86_64-linux-gnu/sys/utsname.h:57:10: note: subobject 'release' declared here
  2098. 57 | char release[_UTSNAME_RELEASE_LENGTH];
  2099. | ^~~~~~~
  2100. In file included from /usr/include/string.h:494,
  2101. from modules/pam_issue/pam_issue.c:19:
  2102. In function 'strncat',
  2103. inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:191:3:
  2104. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [130, 389] from the object at 'uts' is out of the bounds of referenced subobject 'nodename' with type 'char[65]' at offset 65 [-Werror=array-bounds]
  2105. 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
  2106. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2107. In file included from modules/pam_issue/pam_issue.c:26:
  2108. modules/pam_issue/pam_issue.c: In function 'read_issue_quoted':
  2109. /usr/include/x86_64-linux-gnu/sys/utsname.h:54:10: note: subobject 'nodename' declared here
  2110. 54 | char nodename[_UTSNAME_NODENAME_LENGTH];
  2111. | ^~~~~~~~
  2112. In file included from /usr/include/string.h:494,
  2113. from modules/pam_issue/pam_issue.c:19:
  2114. In function 'strncat',
  2115. inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:200:3:
  2116. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [325, 389] from the object at 'uts' is out of the bounds of referenced subobject 'machine' with type 'char[65]' at offset 260 [-Werror=array-bounds]
  2117. 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
  2118. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2119. In file included from modules/pam_issue/pam_issue.c:26:
  2120. modules/pam_issue/pam_issue.c: In function 'read_issue_quoted':
  2121. /usr/include/x86_64-linux-gnu/sys/utsname.h:62:10: note: subobject 'machine' declared here
  2122. 62 | char machine[_UTSNAME_MACHINE_LENGTH];
  2123. | ^~~~~~~
  2124. * modules/pam_issue/pam_issue.c (read_issue_quoted): Rewrite to avoid
  2125. strncat from potentially not null-terminated string buffer fields
  2126. of struct utsname.
  2127. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2128. pam_motd: fix NULL dereference when at least one of motd directories is not available
  2129. * modules/pam_motd/pam_motd.c
  2130. (try_to_display_directories_with_overrides): Do not assign -1U to
  2131. dirscans_sizes[i] when scandir(motd_dir_path_split[i]) returns an error.
  2132. Resolves: https://bugzilla.altlinux.org/38389
  2133. Fixes: d57ab221 ("pam_motd: Cleanup the code and avoid unnecessary logging")
  2134. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2135. pam_motd: cleanup calloc invocations.
  2136. Apply the following calloc invocation idiom:
  2137. ptr = calloc(nmemb, sizeof(*ptr));
  2138. * modules/pam_motd/pam_motd.c (pam_split_string,
  2139. try_to_display_directories_with_overrides): Cleanup calloc invocations.
  2140. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2141. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2142. pam_motd: fix NULL dereference on error path.
  2143. * modules/pam_motd/pam_motd.c
  2144. (try_to_display_directories_with_overrides): Do not access
  2145. elements of dirscans_sizes array if dirscans_sizes == NULL
  2146. due to an earlier memory allocation error.
  2147. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2148. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2149. pam_motd: remove redundant return statement.
  2150. * modules/pam_motd/pam_motd.c
  2151. (try_to_display_directories_with_overrides): Remove return statement
  2152. at the end of the function returning void.
  2153. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2154. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2155. pam_motd: remove redundant prefix from syslog messages.
  2156. pam_syslog already does all the prefixing we need.
  2157. * modules/pam_motd/pam_motd.c (pam_split_string,
  2158. try_to_display_directories_with_overrides): Remove "pam_motd: " prefix
  2159. from strings passed to pam_syslog.
  2160. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2161. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2162. pam_motd: fix memory leak.
  2163. pam_motd used to leak memory allocated for each motd file
  2164. successfully opened in try_to_display_directories_with_overrides.
  2165. * modules/pam_motd/pam_motd.c
  2166. (try_to_display_directories_with_overrides): Free abs_path.
  2167. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2168. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2169. pam_motd: fix misleading error diagnostics.
  2170. Do not invoke calloc with the first argument equal to zero as the return
  2171. value can be NULL which is undistinguishable from memory allocation
  2172. error.
  2173. * modules/pam_motd/pam_motd.c
  2174. (try_to_display_directories_with_overrides): Skip if there are no
  2175. directory entries (dirscans_size_total == 0).
  2176. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2177. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2178. pam_motd: do not zero the memory allocated by calloc.
  2179. As dirnames_all is allocated with calloc, zeroing it out is pointless.
  2180. * modules/pam_motd/pam_motd.c
  2181. (try_to_display_directories_with_overrides): Remove redundant zeroing
  2182. of dirnames_all.
  2183. Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
  2184. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2185. build: cleanup: do not add -DWITH_SELINUX to CFLAGS.
  2186. As WITH_SELINUX is already AC_DEFINE'd in configure.ac,
  2187. there is no point in adding -DWITH_SELINUX to CFLAGS.
  2188. * libpam/Makefile.am [HAVE_LIBSELINUX] (AM_CFLAGS): Do not add
  2189. -DWITH_SELINUX.
  2190. * modules/pam_rootok/Makefile.am: Likewise.
  2191. * modules/pam_unix/Makefile.am: Likewise.
  2192. 2020-04-26 Dmitry V. Levin <ldv@altlinux.org>
  2193. build: cleanup: replace "test ! -z" with "test -n"
  2194. * configure.ac: replace "test ! -z" with "test -n".
  2195. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2196. pam_filter: fix potential off-by-one heap buffer overflow.
  2197. Reported by gcc-10 -Wstringop-overflow:
  2198. In file included from /usr/include/string.h:494,
  2199. from modules/pam_filter/pam_filter.c:14:
  2200. In function 'strcpy',
  2201. inlined from 'process_args' at modules/pam_filter/pam_filter.c:137:2,
  2202. inlined from 'need_a_filter.isra' at modules/pam_filter/pam_filter.c:618:12:
  2203. /usr/include/x86_64-linux-gnu/bits/string_fortified.h:90:10: warning: '__builtin_memcpy' writing 6 bytes into a region of size 5 [-Wstringop-overflow=]
  2204. 90 | return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
  2205. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2206. modules/pam_filter/pam_filter.c: In function 'need_a_filter.isra':
  2207. modules/pam_filter/pam_filter.c:128:21: note: at offset 0 to an object with size 5 allocated by 'malloc' here
  2208. 128 | levp[0] = (char *) malloc(size);
  2209. | ^~~~~~~~~~~~
  2210. * modules/pam_filter/pam_filter.c (process_args): Fix off-by-one heap
  2211. buffer overflow in case of a filter without arguments (argc == 0).
  2212. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2213. pam_setquota: remove PAM_EXTERN and PAM_STATIC parts.
  2214. In other modules they were removed by commit Linux-PAM-1.3.0~14.
  2215. * modules/pam_setquota/pam_setquota.c: Remove PAM_EXTERN and PAM_STATIC
  2216. parts.
  2217. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2218. pam_setquota: fix more harmless compilation warnings.
  2219. On ppc64le the compiler complains with the following diagnostics:
  2220. pam_setquota.c: In function 'debug':
  2221. pam_setquota.c:48:59: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2222. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2223. | ~~~^
  2224. | |
  2225. | long long unsigned int
  2226. | %lu
  2227. ......
  2228. 51 | p->dqb_bsoftlimit, p->dqb_bhardlimit,
  2229. | ~~~~~~~~~~~~~~~~~
  2230. | |
  2231. | __u64 {aka const long unsigned int}
  2232. pam_setquota.c:48:75: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 7 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2233. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2234. | ~~~^
  2235. | |
  2236. | long long unsigned int
  2237. | %lu
  2238. ......
  2239. 51 | p->dqb_bsoftlimit, p->dqb_bhardlimit,
  2240. | ~~~~~~~~~~~~~~~~~
  2241. | |
  2242. | __u64 {aka const long unsigned int}
  2243. pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 8 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2244. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2245. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2246. ......
  2247. 52 | p->dqb_isoftlimit, p->dqb_ihardlimit,
  2248. | ~~~~~~~~~~~~~~~~~
  2249. | |
  2250. | __u64 {aka const long unsigned int}
  2251. pam_setquota.c:49:46: note: format string is defined here
  2252. 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu",
  2253. | ~~~^
  2254. | |
  2255. | long long unsigned int
  2256. | %lu
  2257. pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 9 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2258. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2259. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2260. ......
  2261. 52 | p->dqb_isoftlimit, p->dqb_ihardlimit,
  2262. | ~~~~~~~~~~~~~~~~~
  2263. | |
  2264. | __u64 {aka const long unsigned int}
  2265. pam_setquota.c:49:62: note: format string is defined here
  2266. 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu",
  2267. | ~~~^
  2268. | |
  2269. | long long unsigned int
  2270. | %lu
  2271. pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 10 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2272. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2273. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2274. ......
  2275. 53 | p->dqb_btime, p->dqb_itime);
  2276. | ~~~~~~~~~~~~
  2277. | |
  2278. | __u64 {aka const long unsigned int}
  2279. pam_setquota.c:49:73: note: format string is defined here
  2280. 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu",
  2281. | ~~~^
  2282. | |
  2283. | long long unsigned int
  2284. | %lu
  2285. pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 11 has type '__u64' {aka 'const long unsigned int'} [-Wformat=]
  2286. 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu "
  2287. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2288. ......
  2289. 53 | p->dqb_btime, p->dqb_itime);
  2290. | ~~~~~~~~~~~~
  2291. | |
  2292. | __u64 {aka const long unsigned int}
  2293. pam_setquota.c:49:84: note: format string is defined here
  2294. 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu",
  2295. | ~~~^
  2296. | |
  2297. | long long unsigned int
  2298. | %lu
  2299. * modules/pam_setquota/pam_setquota.c (debug): Cast fields of type __u64
  2300. to unsigned long long.
  2301. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2302. pam_timestamp: include "config.h" in hmacsha1.c as the first header.
  2303. This ensures "config.h" is included before any system header
  2304. which fixes the following bug reported by ALT diagnostics:
  2305. verify-elf: ERROR: ./lib/security/pam_timestamp.so: uses non-LFS functions: __fxstat open
  2306. * modules/pam_timestamp/hmacsha1.c: Include "config.h".
  2307. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2308. libpamc.h: include "config.h" as the first header.
  2309. This ensures "config.h" is included before any system header included by
  2310. libpamc.h, which fixes the following bug reported by ALT diagnostics:
  2311. verify-elf: ERROR: ./lib/libpamc.so.0.82.1: uses non-LFS functions: __xstat readdir
  2312. * libpamc/libpamc.h: Include "config.h".
  2313. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2314. pam_setquota: apply WARN_CFLAGS.
  2315. All other modules already build with WARN_CFLAGS.
  2316. * modules/pam_setquota/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS).
  2317. 2020-04-24 Dmitry V. Levin <ldv@altlinux.org>
  2318. pam_setquota: fix harmless compilation warnings.
  2319. Fix -Wunused-variable compilation warnings:
  2320. pam_setquota.c: In function 'pam_sm_open_session':
  2321. pam_setquota.c:173:9: warning: unused variable 'ep' [-Wunused-variable]
  2322. 173 | char *ep, *val, *mntdevice = NULL;
  2323. | ^~
  2324. pam_setquota.c:172:17: warning: unused variable 'ul' [-Wunused-variable]
  2325. 172 | unsigned long ul;
  2326. | ^~
  2327. Fix -Wunused-parameter compilation warnings:
  2328. pam_setquota.c: In function 'pam_sm_open_session':
  2329. pam_setquota.c:169:60: warning: unused parameter 'flags' [-Wunused-parameter]
  2330. 169 | PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc,
  2331. | ~~~~^~~~~
  2332. pam_setquota.c: In function 'pam_sm_close_session':
  2333. pam_setquota.c:382:40: warning: unused parameter 'pamh' [-Wunused-parameter]
  2334. 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc,
  2335. | ~~~~~~~~~~~~~~^~~~
  2336. pam_setquota.c:382:50: warning: unused parameter 'flags' [-Wunused-parameter]
  2337. 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc,
  2338. | ~~~~^~~~~
  2339. pam_setquota.c:382:61: warning: unused parameter 'argc' [-Wunused-parameter]
  2340. 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc,
  2341. | ~~~~^~~~
  2342. pam_setquota.c:383:39: warning: unused parameter 'argv' [-Wunused-parameter]
  2343. 383 | const char **argv) {
  2344. | ~~~~~~~~~~~~~^~~~
  2345. * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Mark
  2346. 'flags' parameter as unused. Remove unused 'ep' and 'ul' variables.
  2347. (pam_sm_close_session): Mark all parameters as unused.
  2348. 2020-04-18 Oğuz Ersen <oguzersen@protonmail.com>
  2349. Translated using Weblate (Turkish)
  2350. Currently translated at 100.0% (120 of 120 strings)
  2351. Translation: linux-pam/master
  2352. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  2353. Resolves: https://github.com/linux-pam/linux-pam/pull/214
  2354. 2020-04-17 Sven Hartge <sven@svenhartge.de>
  2355. pam_setquota: new module to set or modify disk quotas on session start.
  2356. This makes disk quotas usable with central user databases, such as MySQL or
  2357. LDAP.
  2358. Resolves: https://github.com/linux-pam/linux-pam/issues/92
  2359. 2020-04-15 Dmitry V. Levin <ldv@altlinux.org>
  2360. pam_access, pam_issue: do not assume that getdomainname always exists.
  2361. * modules/pam_access/pam_access.c (netgroup_match): Place the code
  2362. that calls getdomainname under HAVE_GETDOMAINNAME guard.
  2363. * modules/pam_issue/pam_issue.c (read_issue_quoted): Likewise.
  2364. Resolves: https://github.com/linux-pam/linux-pam/issues/43
  2365. 2020-04-13 Oğuz Ersen <oguzersen@protonmail.com>
  2366. Translated using Weblate (Turkish)
  2367. Currently translated at 100.0% (120 of 120 strings)
  2368. Translation: linux-pam/master
  2369. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  2370. 2020-04-13 Ankit Behera <proneon267@gmail.com>
  2371. Translated using Weblate (Odia)
  2372. Currently translated at 100.0% (120 of 120 strings)
  2373. Translation: linux-pam/master
  2374. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/or/
  2375. 2020-04-12 Topi Miettinen <toiwoton@gmail.com>
  2376. pam_unix: modernize example in manual page.
  2377. According to crypt(5), md5 should not be used for new hashes. Let's
  2378. give a modern example with yescrypt.
  2379. 2020-04-10 Robert Antoni Buj Gelonch <robert.buj@gmail.com>
  2380. Translated using Weblate (Catalan)
  2381. Currently translated at 100.0% (120 of 120 strings)
  2382. Translation: linux-pam/master
  2383. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
  2384. Resolves: https://github.com/linux-pam/linux-pam/pull/207
  2385. 2020-04-07 Dmitry V. Levin <ldv@altlinux.org>
  2386. travis: remove faulty jobs.
  2387. * .travis.yml: Remove faulty gcc-9 jobs on aarch64 and s390x,
  2388. gcc-9 became uninstallable on these platforms several days ago
  2389. and hasn't been fixed yet.
  2390. 2020-04-07 Lucas Ramage <oxr463@gmx.us>
  2391. pam_access: add an example of using groups in access.conf to permit access
  2392. Resolves: https://github.com/linux-pam/linux-pam/issues/65
  2393. Resolves: https://github.com/linux-pam/linux-pam/pull/199
  2394. 2020-04-07 Dmitry V. Levin <ldv@altlinux.org>
  2395. github: add CI action.
  2396. Somewhat similar to Travis CI, this runs "make distcheck" on Ubuntu
  2397. 18.04 using gcc-9, gcc-8, gcc, clang-9, clang-8, and clang on x86_64,
  2398. x86, and x32 architectures.
  2399. Compared with Travis CI, GitHub Actions service currently provides
  2400. a significantly better parallelism as well as (unsurprisingly)
  2401. better integration with github.
  2402. However, GitHub Actions cannot replace Travis CI completely yet as
  2403. the latter can build on aarch64, s390x, and ppc64le architectures.
  2404. * .github/workflows/whitespace-errors-check.yml: Remove
  2405. * .github/workflows/ci.yml: New file.
  2406. 2020-04-07 scootergrisen <scootergrisen@gmail.com>
  2407. Translated using Weblate (Danish)
  2408. Currently translated at 100.0% (120 of 120 strings)
  2409. Translation: linux-pam/master
  2410. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/
  2411. 2020-04-07 scootergrisen <scootergrisen@gmail.com>
  2412. Translated using Weblate (Danish)
  2413. Currently translated at 100.0% (120 of 120 strings)
  2414. Translation: linux-pam/master
  2415. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/
  2416. 2020-03-31 Petr Lautrbach <plautrba@redhat.com>
  2417. pam_timestamp: Fix // in TIMESTAMPDIR.
  2418. _PATH_VARRUN already provides trailing slash for building paths
  2419. Fixes:
  2420. $ strings /usr/lib64/security/pam_timestamp.so | grep /run/
  2421. /var/run//pam_timestamp
  2422. /var/run//pam_timestamp/_pam_timestamp_key
  2423. 2020-03-30 James Ralston <ralston@pobox.com>
  2424. pam_unix: Return PAM_AUTHINFO_UNAVAIL when appropriate.
  2425. The pam_unix.so will never return PAM_AUTHINFO_UNAVAIL on systems
  2426. that use the unix_chkpwd helper.
  2427. The reason is that in unix_chkpwd.c, towards the end of main(), if
  2428. helper_verify_password() does not return PAM_SUCCESS, main() ignores
  2429. the actual error that helper_verify_password() returned and instead
  2430. returns PAM_AUTH_ERR.
  2431. This commit corrects this behavior. Specifically, if
  2432. helper_verify_password() returns PAM_USER_UNKNOWN, which it does
  2433. when /etc/passwd entry indicates that shadow information is present
  2434. but the /etc/shadow entry is missing, the unix_chkpwd now exits
  2435. with PAM_AUTHINFO_UNAVAIL. For any other error from
  2436. helper_verify_password(), unix_chkpwd continues to exit with
  2437. PAM_AUTH_ERR.
  2438. * modules/pam_unix/unix_chkpwd.c (main): Return PAM_AUTHINFO_UNAVAIL
  2439. when helper_verify_password() returns PAM_USER_UNKNOWN.
  2440. 2020-03-28 Dmitry V. Levin <ldv@altlinux.org>
  2441. Fix various typos found using codespell tool.
  2442. po: semi-automatically fix translations of pam_get_authtok default prompts
  2443. Complements: 4daceedd ("pam_get_authtok: fix i18n of default prompts")
  2444. 2020-03-24 Dmitry V. Levin <ldv@altlinux.org>
  2445. _pam_load_module: reduce redundancy.
  2446. * libpam/pam_handlers.c (_pam_load_module): Reorganize $ISA handling
  2447. to reduce redundancy.
  2448. Resolves: https://github.com/linux-pam/linux-pam/pull/198
  2449. 2020-03-24 blueskycs2c <lili.ding@cs2c.com>
  2450. pam_time: add conffile option to specify an alternative configuration file
  2451. Resolves: https://github.com/linux-pam/linux-pam/pull/163
  2452. Resolves: https://github.com/linux-pam/linux-pam/pull/191
  2453. 2020-03-23 Alexander Zubkov <green@qrator.net>
  2454. pam_exec: require user name to be ready for the command.
  2455. pam_exec module can be called when a user name has not been prompted
  2456. yet. And thus the command is called without a user name available.
  2457. This fix asks PAM for the user name to ensure it is ready or to force
  2458. the prompt.
  2459. Resolves: https://github.com/linux-pam/linux-pam/issues/131
  2460. Resolves: https://github.com/linux-pam/linux-pam/pull/195
  2461. 2020-03-23 Christian Göttsche <cgzones@googlemail.com>
  2462. pam_selinux: fall back to log to syslog if audit logging fails.
  2463. Resolves: https://github.com/linux-pam/linux-pam/pull/194
  2464. pam_selinux: sanitize asprintf argument on failure.
  2465. pam_selinux: print additional information on failures.
  2466. pam_selinux: convert send_audit_message to void function.
  2467. The result is nowhere checked and other logging functions like
  2468. pam_syslog are also not checked.
  2469. pam_selinux: fix indentation.
  2470. 2020-03-23 Christian Göttsche <cgzones@googlemail.com>
  2471. pam_selinux: substitute legacy security_context_t type.
  2472. `security_context_t` is a legacy typedef to `char *`, substitute all usage.
  2473. See
  2474. https://github.com/SELinuxProject/selinux/commit/9eb9c9327563014ad6a807814e7975424642d5b9
  2475. https://github.com/SELinuxProject/selinux/blob/f8c110c8a615eb640510eab39640a0957a6ba19c/libselinux/include/selinux/selinux.h#L16
  2476. 2020-03-20 Jiri Grönroos <jiri.gronroos@iki.fi>
  2477. Translated using Weblate (Finnish)
  2478. Currently translated at 90.8% (109 of 120 strings)
  2479. Translation: linux-pam/master
  2480. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
  2481. 2020-03-20 Dmitry V. Levin <ldv@altlinux.org>
  2482. Translated using Weblate (Slovak)
  2483. Currently translated at 100.0% (120 of 120 strings)
  2484. Translation: linux-pam/master
  2485. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/
  2486. Translated using Weblate (Czech)
  2487. Currently translated at 100.0% (120 of 120 strings)
  2488. Translation: linux-pam/master
  2489. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/cs/
  2490. Translated using Weblate (French)
  2491. Currently translated at 100.0% (120 of 120 strings)
  2492. Translation: linux-pam/master
  2493. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  2494. 2020-03-20 Yuri Chornoivan <yurchor@ukr.net>
  2495. Translated using Weblate (Ukrainian)
  2496. Currently translated at 100.0% (120 of 120 strings)
  2497. Translation: linux-pam/master
  2498. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/
  2499. 2020-03-20 Oğuz Ersen <oguzersen@protonmail.com>
  2500. Translated using Weblate (Turkish)
  2501. Currently translated at 100.0% (120 of 120 strings)
  2502. Translation: linux-pam/master
  2503. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  2504. 2020-03-20 Geert Warrink <geert.warrink@onsnet.nu>
  2505. Translated using Weblate (Dutch)
  2506. Currently translated at 100.0% (120 of 120 strings)
  2507. Translation: linux-pam/master
  2508. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
  2509. 2020-03-20 Julien Humbert <julroy67@gmail.com>
  2510. Translated using Weblate (French)
  2511. Currently translated at 100.0% (120 of 120 strings)
  2512. Translation: linux-pam/master
  2513. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  2514. 2020-03-20 Dmitry V. Levin <ldv@altlinux.org>
  2515. Translated using Weblate (Russian)
  2516. Currently translated at 100.0% (120 of 120 strings)
  2517. Translation: linux-pam/master
  2518. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/
  2519. Translated using Weblate (Portuguese (Brazil))
  2520. Currently translated at 100.0% (120 of 120 strings)
  2521. Translation: linux-pam/master
  2522. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
  2523. Translated using Weblate (Portuguese)
  2524. Currently translated at 100.0% (120 of 120 strings)
  2525. Translation: linux-pam/master
  2526. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/
  2527. Translated using Weblate (German)
  2528. Currently translated at 100.0% (120 of 120 strings)
  2529. Translation: linux-pam/master
  2530. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
  2531. 2020-03-20 Piotr Drąg <piotrdrag@gmail.com>
  2532. Translated using Weblate (Polish)
  2533. Currently translated at 100.0% (120 of 120 strings)
  2534. Translation: linux-pam/master
  2535. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  2536. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2537. modules/pam_userdb: use pam_str_skip_icase_prefix.
  2538. * modules/pam_userdb/pam_userdb.c: Include "pam_inline.h".
  2539. (_pam_parse, user_lookup): Use pam_str_skip_icase_prefix
  2540. instead of ugly strncasecmp invocations.
  2541. modules/pam_umask: use pam_str_skip_icase_prefix.
  2542. * modules/pam_umask/pam_umask.c: Include "pam_inline.h".
  2543. (parse_option, setup_limits_from_gecos): Use pam_str_skip_icase_prefix
  2544. instead of ugly strncasecmp invocations.
  2545. modules/pam_pwhistory: use pam_str_skip_icase_prefix.
  2546. * modules/pam_pwhistory/pam_pwhistory.c: Include "pam_inline.h".
  2547. (parse_option): Use pam_str_skip_icase_prefix instead of ugly
  2548. strncasecmp invocations.
  2549. modules/pam_exec: use pam_str_skip_icase_prefix.
  2550. * modules/pam_exec/pam_exec.c (call_exec): Use pam_str_skip_icase_prefix
  2551. instead of ugly strncasecmp invocations.
  2552. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2553. Introduce pam_str_skip_icase_prefix_len and pam_str_skip_icase_prefix.
  2554. Every time I see a code like
  2555. if (strncasecmp(argv, "remember=", 9) == 0)
  2556. options->remember = strtol(&argv[9], NULL, 10);
  2557. my eyes are bleeding.
  2558. Similar to pam_str_skip_prefix_len() and pam_str_skip_prefix(),
  2559. introduce a new helper inline function pam_str_skip_icase_prefix_len()
  2560. and a new macro pam_str_skip_icase_prefix() on top of it, to be used
  2561. in subsequent commits to cleanup the ugliness.
  2562. * libpam/include/pam_inline.h (pam_str_skip_icase_prefix_len): New
  2563. function.
  2564. (pam_str_skip_icase_prefix): New macro.
  2565. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2566. modules/pam_xauth: use pam_str_skip_prefix.
  2567. * modules/pam_xauth/pam_xauth.c: Include "pam_inline.h".
  2568. (pam_sm_open_session, pam_sm_close_session): Use pam_str_skip_prefix
  2569. instead of ugly strncmp invocations.
  2570. modules/pam_wheel: use pam_str_skip_prefix.
  2571. * modules/pam_wheel/pam_wheel.c: Include "pam_inline.h".
  2572. (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp
  2573. invocations.
  2574. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2575. modules/pam_unix: use pam_str_skip_prefix and pam_str_skip_prefix_len.
  2576. * modules/pam_unix/passverify.c: Include "pam_inline.h".
  2577. (verify_pwd_hash): Use pam_str_skip_prefix instead of ugly strncmp
  2578. invocations.
  2579. * modules/pam_unix/support.c: Include "pam_inline.h".
  2580. (_set_ctrl): Use pam_str_skip_prefix_len instead of hardcoding string
  2581. lengths.
  2582. * modules/pam_unix/md5_crypt.c: Include "pam_inline.h".
  2583. (crypt_md5): Use pam_str_skip_prefix_len.
  2584. squash! modules/pam_unix: use pam_str_skip_prefix and pam_str_skip_prefix_len
  2585. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2586. modules/pam_tty_audit: use pam_str_skip_prefix.
  2587. * modules/pam_tty_audit/pam_tty_audit.c: Include "pam_inline.h".
  2588. (pam_sm_open_session): Use pam_str_skip_prefix instead of ugly strncmp
  2589. invocations.
  2590. modules/pam_timestamp: use pam_str_skip_prefix.
  2591. * modules/pam_timestamp/pam_timestamp.c: Include "pam_inline.h".
  2592. (check_tty, get_timestamp_name, pam_sm_authenticate): Use
  2593. pam_str_skip_prefix instead of ugly strncmp invocations.
  2594. modules/pam_tally: use pam_str_skip_prefix.
  2595. * modules/pam_tally/pam_tally.c: Include "pam_inline.h".
  2596. (tally_parse_args, getopts): Use pam_str_skip_prefix instead of ugly
  2597. strncmp invocations.
  2598. modules/pam_tally2: use pam_str_skip_prefix.
  2599. * modules/pam_tally2/pam_tally2.c: Include "pam_inline.h".
  2600. (tally_parse_args, getopts): Use pam_str_skip_prefix instead of ugly
  2601. strncmp invocations.
  2602. modules/pam_selinux: use pam_str_skip_prefix.
  2603. * modules/pam_selinux/pam_selinux.c: Include "pam_inline.h".
  2604. (compute_exec_context, compute_tty_context): Use pam_str_skip_prefix
  2605. instead of ugly strncmp invocations.
  2606. modules/pam_securetty: use pam_str_skip_prefix and pam_str_skip_prefix_len
  2607. * modules/pam_securetty/pam_securetty.c: Include "pam_inline.h".
  2608. (securetty_perform_check): Use pam_str_skip_prefix and
  2609. pam_str_skip_prefix_len instead of ugly strncmp invocations.
  2610. modules/pam_rhosts: use pam_str_skip_prefix.
  2611. * modules/pam_rhosts/pam_rhosts.c: Include "pam_inline.h".
  2612. (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp
  2613. invocations.
  2614. modules/pam_nologin: use pam_str_skip_prefix.
  2615. * modules/pam_nologin/pam_nologin.c: Include "pam_inline.h".
  2616. (parse_args): Use pam_str_skip_prefix instead of ugly strncmp
  2617. invocations.
  2618. modules/pam_namespace: use pam_str_skip_prefix.
  2619. * modules/pam_namespace/pam_namespace.c (root_shared): Use
  2620. pam_str_skip_prefix instead of ugly strncmp invocations.
  2621. modules/pam_motd: use pam_str_skip_prefix.
  2622. * modules/pam_motd/pam_motd.c: Include "pam_inline.h".
  2623. (pam_sm_open_session): Use pam_str_skip_prefix instead of ugly strncmp
  2624. invocations.
  2625. modules/pam_mkhomedir: use pam_str_skip_prefix.
  2626. * modules/pam_mkhomedir/pam_mkhomedir.c: Include "pam_inline.h".
  2627. (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp
  2628. invocations.
  2629. modules/pam_mail: use pam_str_skip_prefix.
  2630. * modules/pam_mail/pam_mail.c: Include "pam_inline.h".
  2631. (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp
  2632. invocations.
  2633. modules/pam_localuser: use pam_str_skip_prefix.
  2634. * modules/pam_localuser/pam_localuser.c: Include "pam_inline.h".
  2635. (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp
  2636. invocations.
  2637. modules/pam_listfile: use pam_str_skip_prefix.
  2638. * modules/pam_listfile/pam_listfile.c: Include "pam_inline.h".
  2639. (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp
  2640. invocations.
  2641. modules/pam_limits: use pam_str_skip_prefix.
  2642. * modules/pam_limits/pam_limits.c: Include "pam_inline.h".
  2643. (_pam_parse, parse_kernel_limits): Use pam_str_skip_prefix instead of
  2644. ugly strncmp invocations.
  2645. modules/pam_lastlog: use pam_str_skip_prefix.
  2646. * modules/pam_lastlog/pam_lastlog.c: Include "pam_inline.h".
  2647. (_pam_auth_parse, get_tty): Use pam_str_skip_prefix instead of ugly
  2648. strncmp invocations.
  2649. modules/pam_issue: use pam_str_skip_prefix.
  2650. * modules/pam_issue/pam_issue.c: Include "pam_inline.h".
  2651. (pam_sm_authenticate, read_issue_quoted): Use pam_str_skip_prefix
  2652. instead of ugly strncmp invocations.
  2653. modules/pam_ftp: use pam_str_skip_prefix.
  2654. * modules/pam_ftp/pam_ftp.c: Include "pam_inline.h".
  2655. (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp invocations.
  2656. modules/pam_env: use pam_str_skip_prefix.
  2657. * modules/pam_env/pam_env.c: Include "pam_inline.h".
  2658. (_pam_parse, _parse_line): Use pam_str_skip_prefix instead of ugly
  2659. strncmp invocations.
  2660. modules/pam_echo: use pam_str_skip_prefix.
  2661. * modules/pam_echo/pam_echo.c: Include "pam_inline.h".
  2662. (pam_echo): Use pam_str_skip_prefix instead of ugly strncmp invocations.
  2663. modules/pam_cracklib: use pam_str_skip_prefix.
  2664. * modules/pam_cracklib/pam_cracklib.c: Include "pam_inline.h".
  2665. (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp
  2666. invocations.
  2667. modules/pam_access: use pam_str_skip_prefix.
  2668. * modules/pam_access/pam_access.c: Include "pam_inline.h".
  2669. (parse_args): Use pam_str_skip_prefix instead of ugly strncmp invocations.
  2670. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2671. Introduce pam_str_skip_prefix_len and pam_str_skip_prefix.
  2672. Every time I see a code like
  2673. if (!strncmp(*argv,"user_readenv=",13))
  2674. *user_readenv = atoi(13+*argv);
  2675. my eyes are bleeding.
  2676. Introduce a new helper inline function pam_str_skip_prefix_len() and
  2677. a new macro pam_str_skip_prefix() on top of it, to be used in subsequent
  2678. commits to cleanup the ugliness.
  2679. * libpam/include/pam_inline.h: Include <string.h>.
  2680. (pam_str_skip_prefix_len): New function.
  2681. (pam_str_skip_prefix): New macro.
  2682. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2683. Use PAM_ARRAY_SIZE.
  2684. Replace all instances of sizeof(x) / sizeof(*x) with PAM_ARRAY_SIZE(x)
  2685. which is less error-prone and implements an additional type check.
  2686. * libpam/pam_handlers.c: Include "pam_inline.h".
  2687. (_pam_open_config_file): Use PAM_ARRAY_SIZE.
  2688. * modules/pam_exec/pam_exec.c: Include "pam_inline.h".
  2689. (call_exec): Use PAM_ARRAY_SIZE.
  2690. * modules/pam_namespace/pam_namespace.c: Include "pam_inline.h".
  2691. (filter_mntopts): Use PAM_ARRAY_SIZE.
  2692. * modules/pam_timestamp/hmacfile.c: Include "pam_inline.h".
  2693. (testvectors): Use PAM_ARRAY_SIZE.
  2694. * modules/pam_xauth/pam_xauth.c: Include "pam_inline.h".
  2695. (run_coprocess, pam_sm_open_session): Use PAM_ARRAY_SIZE.
  2696. * tests/tst-pam_get_item.c: Include "pam_inline.h".
  2697. (main): Use PAM_ARRAY_SIZE.
  2698. * tests/tst-pam_set_item.c: Likewise.
  2699. * xtests/tst-pam_pwhistory1.c: Likewise.
  2700. * xtests/tst-pam_time1.c: Likewise.
  2701. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2702. Introduce pam_inline.h.
  2703. Introduce a new internal header file for definitions of handly inline
  2704. functions and macros providing some convenient functionality to libpam
  2705. and its modules.
  2706. * libpam/include/pam_cc_compat.h (PAM_SAME_TYPE): New macro.
  2707. * libpam/include/pam_inline.h: New file.
  2708. * libpam/Makefile.am (noinst_HEADERS): Add include/pam_inline.h.
  2709. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2710. modules/pam_cracklib: fix parsing of options without arguments.
  2711. Prefix match for options without arguments such as use_first_pass
  2712. is not correct, there has to be an exact match for these options.
  2713. * modules/pam_cracklib/pam_cracklib.c (_pam_parse): Fix parsing
  2714. of reject_username, gecoscheck, enforce_for_root, use_authtok,
  2715. use_first_pass, and try_first_pass options.
  2716. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2717. ci: enable -Werror for all builds.
  2718. The main purpose of fixing all compilation warnings in the current code
  2719. base was to enable -Werror in CI builds so that no new warnings would
  2720. creep in.
  2721. * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Add --enable-Werror.
  2722. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2723. configure: implement --enable-Werror option.
  2724. When configure is invoked with --enable-Werror option,
  2725. -Werror compiler option is added to WARN_CFLAGS.
  2726. This new configure option is intended primarily for CI purposes.
  2727. * configure.ac (AC_ARG_ENABLE): Add Werror. Forward -Werror
  2728. to JAPHAR_GREP_CFLAGS.
  2729. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2730. Fix remaining clang -Wcast-align compilation warnings.
  2731. Introduce DIAG_PUSH_IGNORE_CAST_ALIGN and DIAG_POP_IGNORE_CAST_ALIGN
  2732. macros, use them to silence remaining clang -Wcast-align compilation
  2733. warnings.
  2734. * libpam/include/pam_cc_compat.h (DIAG_PUSH_IGNORE_CAST_ALIGN,
  2735. DIAG_POP_IGNORE_CAST_ALIGN): New macros.
  2736. * modules/pam_access/pam_access.c: Include "pam_cc_compat.h".
  2737. (from_match, network_netmask_match): Wrap inet_ntop invocations
  2738. in DIAG_PUSH_IGNORE_CAST_ALIGN and DIAG_POP_IGNORE_CAST_ALIGN.
  2739. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2740. Fix most of clang -Wcast-align compilation warnings.
  2741. Unlike gcc, clang is not smart enough to infer the alignment
  2742. of structure fields, so add some alignment hints to the code.
  2743. * libpam/include/pam_cc_compat.h (PAM_ATTRIBUTE_ALIGNED): New macro.
  2744. * modules/pam_namespace/md5.h: Include "pam_cc_compat.h".
  2745. (struct MD5Context): Add PAM_ATTRIBUTE_ALIGNED to "in" field.
  2746. * modules/pam_namespace/md5.c [!(__i386__ || __x86_64__)]
  2747. (uint8_aligned): New type.
  2748. [!(__i386__ || __x86_64__)] (byteReverse): Use it instead of
  2749. unsigned char.
  2750. * modules/pam_timestamp/sha1.h: Include "pam_cc_compat.h".
  2751. (struct sha1_context): Add PAM_ATTRIBUTE_ALIGNED to pending field.
  2752. * modules/pam_unix/md5.h: Include "pam_cc_compat.h".
  2753. (struct MD5Context): Add PAM_ATTRIBUTE_ALIGNED to "in" field.
  2754. * modules/pam_unix/md5.c [!HIGHFIRST] (uint8_aligned): New type.
  2755. [!HIGHFIRST] (byteReverse): Use it instead of unsigned char.
  2756. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2757. modules/pam_tally, modules/pam_tally2: fix compilation warnings.
  2758. Fix the following compilation warnings reported by gcc
  2759. when sizeof(time_t) > sizeof(long), e.g. on x32:
  2760. modules/pam_tally/pam_tally.c:541:7: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘time_t’ {aka ‘long long int’} [-Wformat=]
  2761. 541 | _("The account is temporarily locked (%ld seconds left)."),
  2762. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2763. modules/pam_tally/pam_tally.c:546:40: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘time_t’ {aka ‘long long int’} [-Wformat=]
  2764. 546 | "user %s (%lu) has time limit [%lds left]"
  2765. | ~~^
  2766. | |
  2767. | long int
  2768. | %lld
  2769. ......
  2770. 549 | oldtime+lock_time-time(NULL));
  2771. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2772. | |
  2773. | time_t {aka long long int}
  2774. modules/pam_tally2/pam_tally2.c:592:27: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘time_t’ {aka ‘long long int’} [-Wformat=]
  2775. 592 | pam_info(pamh, _("The account is temporarily locked (%ld seconds left)."),
  2776. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2777. modules/pam_tally2/pam_tally2.c:597:50: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘time_t’ {aka ‘long long int’} [-Wformat=]
  2778. 597 | "user %s (%lu) has time limit [%lds left]"
  2779. | ~~^
  2780. | |
  2781. | long int
  2782. | %lld
  2783. ......
  2784. 600 | oldtime+opts->lock_time-time(NULL));
  2785. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2786. | |
  2787. | time_t {aka long long int}
  2788. This change doesn't attempt to fix handling of 64-bit time_t on 32-bit
  2789. systems in these modules.
  2790. * modules/pam_tally/pam_tally.c (tally_check): Cast time_t expressions
  2791. to long int before passing them to pam_info and pam_syslog.
  2792. * modules/pam_tally2/pam_tally2.c (tally_check): Likewise.
  2793. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2794. modules/pam_timestamp: fix compilation warnings.
  2795. Fix the following compilation warnings reported by gcc on ilp32 platforms:
  2796. modules/pam_timestamp/hmacfile.c: In function ‘testvectors’:
  2797. modules/pam_timestamp/hmacfile.c:121:44: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
  2798. 121 | printf("Incorrect result for vector %lu\n", i + 1);
  2799. | ~~^ ~~~~~
  2800. | | |
  2801. | | size_t {aka unsigned int}
  2802. | long unsigned int
  2803. | %u
  2804. modules/pam_timestamp/hmacfile.c:128:30: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
  2805. 128 | printf("Error in vector %lu.\n", i + 1);
  2806. | ~~^ ~~~~~
  2807. | | |
  2808. | | size_t {aka unsigned int}
  2809. | long unsigned int
  2810. | %u
  2811. In function ‘strncpy’,
  2812. inlined from ‘pam_sm_open_session’ at modules/pam_timestamp/pam_timestamp.c:584:4:
  2813. /usr/include/bits/string_fortified.h:106:10: warning: ‘__builtin___strncpy_chk’ output may be truncated copying between 1 and 4095 bytes from a string of length 4095 [-Wstringop-truncation]
  2814. * modules/pam_timestamp/hmacfile.c (testvectors): Cast the argument
  2815. of type size_t to unsigned long before passing it to printf.
  2816. * modules/pam_timestamp/pam_timestamp.c (pam_sm_open_session): Use
  2817. memcpy instead of strncpy as the source is not NUL-terminated, add an
  2818. extra check to ensure that iterator stays inside bounds.
  2819. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2820. modules/pam_unix: fix gcc compilation warnings.
  2821. When setreuid() fails, there is no way to proceed any further: either
  2822. the process credentials are unchanged but inappropriate, or they are
  2823. in an inconsistent state and nothing good could be made out of it.
  2824. This fixes the following compilation warnings:
  2825. modules/pam_unix/passverify.c:209:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2826. modules/pam_unix/passverify.c:211:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2827. modules/pam_unix/passverify.c:213:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2828. modules/pam_unix/passverify.c:214:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2829. modules/pam_unix/passverify.c:222:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2830. modules/pam_unix/passverify.c:224:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2831. modules/pam_unix/passverify.c:225:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2832. modules/pam_unix/passverify.c:226:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2833. modules/pam_unix/passverify.c:209:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2834. modules/pam_unix/passverify.c:211:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2835. modules/pam_unix/passverify.c:213:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2836. modules/pam_unix/passverify.c:214:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2837. modules/pam_unix/passverify.c:222:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2838. modules/pam_unix/passverify.c:224:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2839. modules/pam_unix/passverify.c:225:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2840. modules/pam_unix/passverify.c:226:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result]
  2841. * modules/pam_unix/passverify.c (get_account_info) [HELPER_COMPILE]:
  2842. Always check setreuid return code and return PAM_CRED_INSUFFICIENT
  2843. if setreuid failed.
  2844. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2845. modules/pam_access: fix compilation warning.
  2846. Fix the following compilation warning reported by gcc
  2847. when HAVE_LIBAUDIT is not set:
  2848. modules/pam_access/pam_access.c: In function ‘login_access’:
  2849. modules/pam_access/pam_access.c:338:13: warning: variable ‘nonall_match’ set but not used [-Wunused-but-set-variable]
  2850. 338 | int nonall_match = NO;
  2851. | ^~~~~~~~~~~~
  2852. * modules/pam_access/pam_access.c (login_access): Enclose nonall_match
  2853. variable with HAVE_LIBAUDIT #ifdef's.
  2854. 2020-03-19 Dmitry V. Levin <ldv@altlinux.org>
  2855. conf/pam_conv1: fix clang compilation warnings.
  2856. Fix the following compilation warnings reported by clang:
  2857. pam_conv_y.y:12:23: warning: unused variable 'bisonid' [-Wunused-const-variable]
  2858. static const char bisonid[]=
  2859. ^
  2860. pam_conv_l.l:12:23: warning: unused variable 'lexid' [-Wunused-const-variable]
  2861. static const char lexid[]=
  2862. ^
  2863. These static variables lost their meaning after repository conversion
  2864. from cvs to git and can be safely removed.
  2865. * conf/pam_conv1/pam_conv_l.l (lexid): Remove.
  2866. * conf/pam_conv1/pam_conv_y.y (bisonid): Remove.
  2867. 2020-03-18 Dmitry V. Levin <ldv@altlinux.org>
  2868. modules/pam_timestamp: fix clang compilation warning.
  2869. modules/pam_timestamp/pam_timestamp.c:807:17: warning: logical not
  2870. is only applied to the left hand side of this comparison
  2871. [-Wlogical-not-parentheses]
  2872. } else if (!timestamp_good(st.st...
  2873. ^
  2874. * modules/pam_timestamp/pam_timestamp.c (main): Change timestamp_good
  2875. return code check to a more traditional form.
  2876. 2020-03-18 Dmitry V. Levin <ldv@altlinux.org>
  2877. github: check for whitespace errors on push and pull requests.
  2878. * .github/workflows/whitespace-errors-check.yml: New file.
  2879. modules/pam_timestamp: fix EXTRA_DIST.
  2880. * modules/pam_timestamp/Makefile.am (EXTRA_DIST): Replace "$(man_MANS)"
  2881. with "$(MANS)" as the former is conditional on HAVE_DOC.
  2882. modules/pam_namespace: fix EXTRA_DIST.
  2883. * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace
  2884. "$(MAN5) $(MAN8)" with "$(MANS)" as the former is conditional
  2885. on HAVE_DOC.
  2886. 2020-03-17 Christian Göttsche <cgzones@googlemail.com>
  2887. pam_usertype: exclude man-page generation when configured with --disable-doc
  2888. * modules/pam_usertype/Makefile.am (man_MANS): Make conditional
  2889. on HAVE_DOC.
  2890. Resolves: https://github.com/linux-pam/linux-pam/pull/193
  2891. 2020-03-17 Christian Göttsche <cgzones@googlemail.com>
  2892. pam_namespace: ignore pam_namespace_helper in git.
  2893. * modules/pam_namespace/.gitignore: New file.
  2894. Resolves: https://github.com/linux-pam/linux-pam/pull/192
  2895. 2020-03-13 Weblate <noreply@weblate.org>
  2896. Update translation files.
  2897. Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
  2898. Translation: linux-pam/master
  2899. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/
  2900. 2020-03-13 Ondrej Sulek <feonsu@gmail.com>
  2901. Translated using Weblate (Slovak)
  2902. Currently translated at 100.0% (117 of 117 strings)
  2903. Translation: linux-pam/master
  2904. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/
  2905. 2020-03-13 Yuri Chornoivan <yurchor@ukr.net>
  2906. Translated using Weblate (Ukrainian)
  2907. Currently translated at 100.0% (117 of 117 strings)
  2908. Translation: linux-pam/master
  2909. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/
  2910. 2020-03-13 Dmitry V. Levin <ldv@altlinux.org>
  2911. Translated using Weblate (Portuguese (Brazil))
  2912. Currently translated at 100.0% (117 of 117 strings)
  2913. Translation: linux-pam/master
  2914. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
  2915. Translated using Weblate (Portuguese)
  2916. Currently translated at 100.0% (117 of 117 strings)
  2917. Translation: linux-pam/master
  2918. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/
  2919. Translated using Weblate (German)
  2920. Currently translated at 91.4% (107 of 117 strings)
  2921. Translation: linux-pam/master
  2922. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
  2923. 2020-03-13 Tomas Mraz <tmraz@fedoraproject.org>
  2924. Adjust README with instructions for package prerequsities.
  2925. Also remove obsolete static modules instructions
  2926. 2020-03-11 Dmitry V. Levin <ldv@altlinux.org>
  2927. pam_get_authtok: fix i18n of default prompts.
  2928. Change formatting of default prompts, making them translatable
  2929. to those languages that use a different word order.
  2930. From non-i18n perspective this change is essentially a no-op.
  2931. * libpam/pam_get_authtok.c (PROMPTCURRENT): Replace with
  2932. PROMPT_CURRENT_ARG and PROMPT_CURRENT_NOARG.
  2933. (PROMPT1): Replace with PROMPT_NEW_ARG and PROMPT_NEW_NOARG.
  2934. (PROMPT2): Replace with PROMPT_RETYPE_ARG and PROMPT_RETYPE_NOARG.
  2935. (pam_get_authtok_internal, pam_get_authtok_verify): Use new macros.
  2936. * po/Linux-PAM.pot: Regenerated.
  2937. Resolves: https://github.com/linux-pam/linux-pam/issues/29
  2938. 2020-03-11 ikerexxe <ipedrosa@redhat.com>
  2939. pam_selinux: check unknown object classes or permissions in current policy
  2940. Explanation: check whether unknown object classes or permissions are allowed or denied in the current policy
  2941. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1680961
  2942. 2020-03-06 Weblate <noreply@weblate.org>
  2943. Update translation files.
  2944. Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
  2945. Translation: linux-pam/master
  2946. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/
  2947. 2020-03-06 Milo Casagrande <milo@milo.name>
  2948. Translated using Weblate (Italian)
  2949. Currently translated at 100.0% (117 of 117 strings)
  2950. Translation: linux-pam/master
  2951. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
  2952. 2020-03-06 Dmitry V. Levin <ldv@altlinux.org>
  2953. Translated using Weblate (Zulu)
  2954. Currently translated at 63.2% (74 of 117 strings)
  2955. Translation: linux-pam/master
  2956. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zu/
  2957. Translated using Weblate (Chinese (Traditional))
  2958. Currently translated at 81.1% (95 of 117 strings)
  2959. Translation: linux-pam/master
  2960. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_TW/
  2961. Translated using Weblate (Chinese (Simplified))
  2962. Currently translated at 81.1% (95 of 117 strings)
  2963. Translation: linux-pam/master
  2964. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/
  2965. Translated using Weblate (Tamil)
  2966. Currently translated at 81.1% (95 of 117 strings)
  2967. Translation: linux-pam/master
  2968. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ta/
  2969. Translated using Weblate (Sinhala)
  2970. Currently translated at 65.8% (77 of 117 strings)
  2971. Translation: linux-pam/master
  2972. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/si/
  2973. Translated using Weblate (Russian)
  2974. Currently translated at 100.0% (117 of 117 strings)
  2975. Translation: linux-pam/master
  2976. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/
  2977. Translated using Weblate (Portuguese (Brazil))
  2978. Currently translated at 81.1% (95 of 117 strings)
  2979. Translation: linux-pam/master
  2980. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
  2981. Translated using Weblate (Kazakh)
  2982. Currently translated at 81.1% (95 of 117 strings)
  2983. Translation: linux-pam/master
  2984. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/
  2985. Translated using Weblate (Japanese)
  2986. Currently translated at 81.1% (95 of 117 strings)
  2987. Translation: linux-pam/master
  2988. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ja/
  2989. Translated using Weblate (Hungarian)
  2990. Currently translated at 81.1% (95 of 117 strings)
  2991. Translation: linux-pam/master
  2992. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hu/
  2993. Translated using Weblate (Hindi)
  2994. Currently translated at 81.1% (95 of 117 strings)
  2995. Translation: linux-pam/master
  2996. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hi/
  2997. Translated using Weblate (Spanish)
  2998. Currently translated at 81.1% (95 of 117 strings)
  2999. Translation: linux-pam/master
  3000. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/
  3001. Translated using Weblate (German)
  3002. Currently translated at 81.1% (95 of 117 strings)
  3003. Translation: linux-pam/master
  3004. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
  3005. 2020-03-06 Oğuz Ersen <oguzersen@protonmail.com>
  3006. Translated using Weblate (Turkish)
  3007. Currently translated at 100.0% (117 of 117 strings)
  3008. Translation: linux-pam/master
  3009. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  3010. 2020-03-06 Geert Warrink <geert.warrink@onsnet.nu>
  3011. Translated using Weblate (Dutch)
  3012. Currently translated at 100.0% (117 of 117 strings)
  3013. Translation: linux-pam/master
  3014. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
  3015. 2020-03-06 Julien Humbert <julroy67@gmail.com>
  3016. Translated using Weblate (French)
  3017. Currently translated at 100.0% (117 of 117 strings)
  3018. Translation: linux-pam/master
  3019. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  3020. 2020-03-06 Piotr Drąg <piotrdrag@gmail.com>
  3021. Translated using Weblate (Polish)
  3022. Currently translated at 100.0% (117 of 117 strings)
  3023. Translation: linux-pam/master
  3024. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  3025. Translated using Weblate (Polish)
  3026. Currently translated at 100.0% (117 of 117 strings)
  3027. Translation: linux-pam/master
  3028. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  3029. 2020-03-06 Tomas Mraz <tmraz@fedoraproject.org>
  3030. Add missing file to EXTRA_DIST.
  3031. * tests/Makefile.am: Add confdir to EXTRA_DIST.
  3032. New API call pam_start_confdir()
  3033. To load PAM stack configurations from specified directory
  3034. 2020-03-05 Dmitry V. Levin <ldv@altlinux.org>
  3035. Fix remaining references to sourceforge.net.
  3036. Linux-PAM moved to github long time ago, update the remaining
  3037. bug tracking references to point to github issues tracker.
  3038. * README: Refer to https://github.com/linux-pam/linux-pam/issues
  3039. instead of sourceforge.net.
  3040. * po/Makevars: Refer to https://github.com/linux-pam/linux-pam/issues
  3041. instead of http://sourceforge.net/projects/pam .
  3042. * po/Linux-PAM.pot: Regenerated.
  3043. 2020-03-05 Dmitry V. Levin <ldv@altlinux.org>
  3044. pam_unix: fix --disable-nis compilation warnings.
  3045. When the build is configured using --disable-nis option, gcc complains:
  3046. pam_unix_passwd.c: In function '_do_setpass':
  3047. pam_unix_passwd.c:398:8: warning: unused variable 'master' [-Wunused-variable]
  3048. support.c: In function '_unix_getpwnam':
  3049. support.c:305:21: warning: parameter 'nis' set but not used [-Wunused-but-set-parameter]
  3050. * modules/pam_unix/pam_unix_passwd.c (_do_setpass): Move the definition
  3051. of "master" variable to [HAVE_NIS].
  3052. * modules/pam_unix/support.c (_unix_getpwnam) [!(HAVE_YP_GET_DEFAULT_DOMAIN
  3053. && HAVE_YP_BIND && HAVE_YP_MATCH && HAVE_YP_UNBIND)]: Do not assign
  3054. the unused parameter but mark it as used.
  3055. 2020-03-05 Dmitry V. Levin <ldv@altlinux.org>
  3056. Sort NEWS entries.
  3057. * NEWS (1.4.0): Sort module-related news entries.
  3058. 2020-03-05 Dmitry V. Levin <ldv@altlinux.org>
  3059. Fix whitespace issues.
  3060. Remove trailing whitespace introduced by commit
  3061. f9c9c72121eada731e010ab3620762bcf63db08f.
  3062. Remove blank lines at EOF introduced by commit
  3063. 65d6735c5949ec233df9813f734e918a93fa36cf.
  3064. This makes the project free of warnings reported by
  3065. git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD
  3066. * doc/custom-html.xsl: Remove blank line at EOF.
  3067. * doc/custom-man.xsl: Likewise.
  3068. * modules/pam_motd/pam_motd.c: Remove trailing whitespace.
  3069. 2020-03-04 ed@s5h.net <ed@s5h.net>
  3070. Adding package dependency hints to README.
  3071. 2020-03-04 Mark Wutzke <mark.wutzke@alliedtelesis.co.nz>
  3072. Use cached 'crypt' library result correctly.
  3073. Configure script incorrectly used a non-cached variable (ac_lib) in the
  3074. cached code path. This results in no -lcrypt being defined resulting in
  3075. link errors on a re-build.
  3076. Update configure.ac to use ac_cv_search_crypt (via ac_res) to setup the
  3077. correct library arguments.
  3078. 2020-03-03 Tomas Mraz <tmraz@fedoraproject.org>
  3079. Prepare for the 1.4.0 release.
  3080. Updated LINGUAS to remove completely untranslated languages.
  3081. Updated pot and po files
  3082. 2020-03-03 Tomáš Mráz <tmraz@redhat.com>
  3083. Translated using Weblate (Czech)
  3084. Currently translated at 100.0% (116 of 116 strings)
  3085. Translation: linux-pam/master
  3086. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/cs/
  3087. 2020-03-03 Oğuz Ersen <oguzersen@protonmail.com>
  3088. Translated using Weblate (Turkish)
  3089. Currently translated at 100.0% (121 of 121 strings)
  3090. Translation: linux-pam/master
  3091. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
  3092. 2020-03-03 Julien Humbert <julroy67@gmail.com>
  3093. Translated using Weblate (French)
  3094. Currently translated at 100.0% (121 of 121 strings)
  3095. Translation: linux-pam/master
  3096. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
  3097. 2020-03-03 Piotr Drąg <piotrdrag@gmail.com>
  3098. Translated using Weblate (Polish)
  3099. Currently translated at 100.0% (121 of 121 strings)
  3100. Translation: linux-pam/master
  3101. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  3102. Translated using Weblate (Polish)
  3103. Currently translated at 100.0% (121 of 121 strings)
  3104. Translation: linux-pam/master
  3105. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
  3106. 2020-03-03 Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
  3107. Deleted translation using Weblate (Cornish)
  3108. Deleted translation using Weblate (German (Low))
  3109. Deleted translation using Weblate (Angika)
  3110. Deleted translation using Weblate (English (United Kingdom))
  3111. Deleted translation using Weblate (Asturian)
  3112. Deleted translation using Weblate (bal (generated))
  3113. Deleted translation using Weblate (Bodo)
  3114. Deleted translation using Weblate (Breton)
  3115. Deleted translation using Weblate (Cornish)
  3116. Deleted translation using Weblate (Cornish)
  3117. Deleted translation using Weblate (ilo (generated))
  3118. Deleted translation using Weblate (Maithili)
  3119. Deleted translation using Weblate (Pedi)
  3120. Deleted translation using Weblate (Tibetan)
  3121. Deleted translation using Weblate (Twi)
  3122. Deleted translation using Weblate (wba (generated))
  3123. 2020-03-03 Weblate <noreply@weblate.org>
  3124. Update translation files.
  3125. Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
  3126. Translation: linux-pam/master
  3127. Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/
  3128. 2020-02-27 Iker Pedrosa <ikerpedrosam@gmail.com>
  3129. pam_tty_audit: if kernel audit is disabled return PAM_IGNORE.
  3130. If kernel audit is disabled the socket open will return
  3131. EPROTONOSUPPORT.
  3132. Return PAM_IGNORE from pam_tty_audit and log a warning
  3133. in this situation so login is not blocked by the module.
  3134. 2020-02-26 Dmitry V. Levin <ldv@altlinux.org>
  3135. pam_modutil_sanitize_helper_fds: fix SIGPIPE effect of PAM_MODUTIL_PIPE_FD
  3136. When pam_modutil_sanitize_helper_fds() is invoked with
  3137. PAM_MODUTIL_PIPE_FD to provide a dummy pipe descriptor for stdout
  3138. or stderr, it closes the read end of the newly created dummy pipe.
  3139. The negative side effect of this approach is that any write to such
  3140. descriptor triggers a SIGPIPE. Avoid this by closing the write end of
  3141. the dummy pipe and using its read end as a dummy pipe descriptor for
  3142. output. Any read from such descriptor returns 0, and any write just
  3143. fails with EBADF, which should work better with unprepared writers.
  3144. * libpam/pam_modutil_sanitize.c (redirect_out_pipe): Remove.
  3145. (redirect_out): Call redirect_in_pipe instead of redirect_out_pipe.
  3146. Fixes: b0ec5d1e ("Introduce pam_modutil_sanitize_helper_fds")
  3147. 2020-02-26 TBK <tbk@jjtc.eu>
  3148. libpamc: Use ISO C99 uintX_t types instead of u_intX_t.
  3149. u_intX_t is a glibcism this fixes the issue of compiling against musl libc.
  3150. 2020-02-25 Tomas Mraz <tmraz@fedoraproject.org>
  3151. pam_group, pam_time: Fix regression in documentation from last change.
  3152. * modules/pam_group/group.conf.5.xml: Replace bare & with &amp;.
  3153. * modules/pam_time/time.conf.5.xml: Likewise.
  3154. 2020-02-24 Tomas Mraz <tmraz@fedoraproject.org>
  3155. pam_limits: Document the unwanted effect of set_all with systemd.
  3156. misc_conv: Use PAM_MAX_RESP_SIZE to limit the length of the input.
  3157. pam_group, pam_time: Fix logical error with multiple ! operators.
  3158. * modules/pam_group/group.conf.5.xml: Document what logic list means.
  3159. * modules/pam_time/time.conf.5.xml: Likewise.
  3160. * modules/pam_group/pam_group.c (logic_field): Clear the not operator for the
  3161. further operations.
  3162. * modules/pam_time/pam_time.c (logic_field): Likewise.
  3163. 2020-02-24 Tomas Mraz <tmraz@fedoraproject.org>
  3164. pam_shells: Recognize /bin/sh as the default shell.
  3165. If the shell is empty in /etc/passwd entry it means /bin/sh.
  3166. * modules/pam_shells/pam_shells.c (perform_check): Use /bin/sh as default shell.
  3167. 2020-02-24 Tomas Mraz <tmraz@fedoraproject.org>
  3168. pam_env: Change the default to not read the user .pam_environment file.
  3169. * modules/pam_env/pam_env.8.xml: Document the change.
  3170. * modules/pam_env/pam_env.c: Set DEFAULT_USER_READ_ENVFILE to 0.
  3171. 2020-02-24 Tomas Mraz <tmraz@fedoraproject.org>
  3172. pam_env: code cleanups.
  3173. Raise BUF_SIZE to 8192 bytes.
  3174. * modules/pam_env/pam_env.c (_parse_env_file): Ignore lines starting with '='.
  3175. (_assemble_line): Detect long lines and binary files.
  3176. (_check_var): Avoid overwriting global variable.
  3177. (_expand_arg): Avoid repeated strlen calls.
  3178. 2020-02-18 Topi Miettinen <toiwoton@gmail.com>
  3179. pam_namespace: secure tmp-inst directories.
  3180. When using polyinstantiation for /tmp and/or /var/tmp, pam_namespace
  3181. creates subdirectories with fixed name tmp-inst. These paths should be
  3182. secured as early as possible to avoid that somehow these directories
  3183. could created and controlled by for example a malicious user or
  3184. service.
  3185. Ship a systemd service, which creates the directories early in
  3186. boot sequence with correct permissions and ownership.
  3187. Closes #111.
  3188. 2020-02-18 Tomas Mraz <tmraz@fedoraproject.org>
  3189. Fix warnings from the recent PR merges.
  3190. * modules/pam_succeed_if/pam_succeed_if.c: Fix const issues.
  3191. * modules/pam_usertype/pam_usertype.c: Avoid maybe used uninitialized warning.
  3192. 2020-02-18 Pavel Březina <pbrezina@redhat.com>
  3193. pam_unix: add nullresetok option to allow reset blank passwords.
  3194. Adding nullresetok to auth phase of pam_unix module will allow users
  3195. with blank password to authenticate in order to immediatelly change
  3196. their password even if nullok is not set.
  3197. This allows to have blank password authentication disabled but still
  3198. allows administrator to create new user accounts with expired blank
  3199. password that must be change on the first login.
  3200. 2020-02-18 Serghei Anicheev <serghei.anicheev@gmail.com>
  3201. pam_succeed_if: Add list support for group membership checks.
  3202. Examples:
  3203. account requisite pam_succeed_if.so user ingroup group1:group2
  3204. OR
  3205. account requisite pam_succeed_if.so user notingroup group1:group2
  3206. OR
  3207. account requisite pam_succeed_if.so user ingroup wheel
  3208. OR
  3209. account requisite pam_succeed_if.so user notingroup wheel
  3210. Can be very convenient to grant access based on complex group memberships (LDAP, etc)
  3211. 2020-02-18 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com>
  3212. Remove redundant header file inclusion.
  3213. There are some source code including the same header file redundantly.
  3214. We remove these redundant header file inclusion.
  3215. 2020-01-29 edneville <ed-github@s5h.net>
  3216. pam_tally[2]: Updating man pages to indicate account leakage without silent
  3217. * modules/pam_tally/pam_tally.8.xml: Mention account leakage without silent
  3218. * modules/pam_tally2/pam_tally2.8.xml: Mention account leakage without silent
  3219. 2020-01-29 Jakub Wilk <jwilk@jwilk.net>
  3220. pam_keyinit.8: add missing comma.
  3221. 2020-01-28 Pavel Březina <pbrezina@redhat.com>
  3222. pam_usertype: new module to tell if uid is in login.defs ranges.
  3223. This module will check if the user account type is system or regular based
  3224. on its uid. To evaluate the condition it will use 0-99 reserved range
  3225. together with `SYS_UID_MIN` and `SYS_UID_MAX` values from `/etc/login.defs`.
  3226. If these values are not set, it uses configure-time defaults
  3227. `--with-sys-uid-min` and `--with-uid-min` (according to `login.defs` man page
  3228. `SYS_UID_MAX` defaults to `UID_MIN - 1`.
  3229. This information can be used to skip specific module in pam stack
  3230. based on the account type. `pam_succeed_if uid < 1000` is used at the moment
  3231. however it does not reflect changes to `login.defs`.
  3232. 2020-01-27 Fabrice Fontaine <fontaine.fabrice@gmail.com>
  3233. configure.ac: add --enable-doc option.
  3234. Allow the user to disable documentation through --disable-doc (enabled
  3235. by default), this is especially useful when cross-compiling for embedded
  3236. targets
  3237. 2020-01-20 Dmitry V. Levin <ldv@altlinux.org>
  3238. Fix remaining -Wcast-qual compilation warnings.
  3239. Introduce a new internal header file with definitions of
  3240. DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL macros,
  3241. use them to temporary silence -Wcast-qual compilation warnings
  3242. in various modules.
  3243. * libpam/include/pam_cc_compat.h: New file.
  3244. * libpam/Makefile.am (noinst_HEADERS): Add include/pam_cc_compat.h.
  3245. * modules/pam_mkhomedir/pam_mkhomedir.c: Include "pam_cc_compat.h".
  3246. (create_homedir): Wrap execve invocation in DIAG_PUSH_IGNORE_CAST_QUAL
  3247. and DIAG_POP_IGNORE_CAST_QUAL.
  3248. * modules/pam_namespace/pam_namespace.c: Include "pam_cc_compat.h".
  3249. (pam_sm_close_session): Wrap the cast that discards ‘const’ qualifier
  3250. in DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3251. * modules/pam_tty_audit/pam_tty_audit.c: Include "pam_cc_compat.h".
  3252. (nl_send): Wrap the cast that discards ‘const’ qualifier in
  3253. DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3254. * modules/pam_unix/pam_unix_acct.c: Include "pam_cc_compat.h".
  3255. (_unix_run_verify_binary): Wrap execve invocation in
  3256. DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3257. * modules/pam_unix/pam_unix_passwd.c: Include "pam_cc_compat.h".
  3258. (_unix_run_update_binary): Wrap execve invocation in
  3259. DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3260. * modules/pam_unix/passverify.c: Include "pam_cc_compat.h".
  3261. (unix_update_shadow): Wrap the cast that discards ‘const’ qualifier
  3262. in DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3263. * modules/pam_unix/support.c: Include "pam_cc_compat.h".
  3264. (_unix_run_helper_binary): Wrap execve invocation in
  3265. DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL.
  3266. * modules/pam_xauth/pam_xauth.c: Include "pam_cc_compat.h".
  3267. (run_coprocess): Wrap execv invocation in DIAG_PUSH_IGNORE_CAST_QUAL
  3268. and DIAG_POP_IGNORE_CAST_QUAL.
  3269. 2020-01-20 Dmitry V. Levin <ldv@altlinux.org>
  3270. _pam_mkargv: add const qualifier to the first argument.
  3271. Also fix the following compilation warning:
  3272. tests/tst-pam_mkargv.c:21:22: warning: initialization discards ‘const’
  3273. qualifier from pointer target type [-Wdiscarded-qualifiers]
  3274. char *argvstring = "user = XENDT\\userα user=XENDT\\user1";
  3275. ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3276. * libpam/pam_misc.c (_pam_mkargv): Add const qualifier to the first
  3277. argument.
  3278. * libpam/pam_private.h (_pam_mkargv): Likewise.
  3279. * tests/tst-pam_mkargv.c (main): Convert argvstring from a pointer into
  3280. a static const string, make argvresult array static const.
  3281. 2020-01-20 Tomas Mraz <tmraz@fedoraproject.org>
  3282. Fix miscellaneous const issues.
  3283. * libpam/pam_modutil_searchkey.c: Avoid assigning empty string literal to
  3284. non-const char *.
  3285. * modules/pam_filter/pam_filter.c: Avoid using const char **.
  3286. * modules/pam_mkhomedir/pam_mkhomedir.c: Properly cast out const for execve().
  3287. * modules/pam_namespace/pam_namespace.c: Properly cast out const from pam data.
  3288. * modules/pam_tally2/pam_tally2.c: String literal must be assigned to
  3289. const char *.
  3290. 2020-01-17 Björn Esser <besser82@fedoraproject.org>
  3291. pam_unix: Return NULL instead of calling crypt_md5_wrapper().
  3292. If the call to the crypt(3) function failed for some reason during
  3293. hashing a new login passphrase, the wrapper function for computing
  3294. a hash with the md5crypt method was called internally by the pam_unix
  3295. module in previous versions of linux-pam.
  3296. With CVE-2012-3287 in mind, the md5crypt method is not considered to
  3297. be a safe nor recommended hashing method for a new login passphrase
  3298. since at least 2012. Thus pam_unix should error out in case of a
  3299. failure in crypt(3) instead of silently computing a hashed passphrase
  3300. using a potentially unsafe method.
  3301. * modules/pam_unix/pam_unix.8.xml: Update documentation.
  3302. * modules/pam_unix/passverify.c (create_password_hash): Return NULL
  3303. on error instead of silently invoke crypt_md5_wrapper().
  3304. 2020-01-15 Hulto <jack.m.mckenna@gmail.com>
  3305. Changed variable salt to hash.
  3306. helper_verify_password's variable salt is not just the salt but the whole hash. Renamed for clarity and conformity with the rest of the code.
  3307. 2020-01-15 Josef Moellers <jmoellers@suse.de>
  3308. Add two missing va_end() calls According to the man pages, "Each invocation of va_start() must be matched by a corresponding invocation of va_end() in the same function."
  3309. 2020-01-15 Steve Langasek <steve.langasek@canonical.com>
  3310. Further grammar fixes.
  3311. Bug-Debian: https://bugs.debian.org/651560
  3312. 2020-01-15 Steve Langasek <steve.langasek@canonical.com>
  3313. Miscellaneous spelling fixes.
  3314. Miscellaneous grammar fixes.
  3315. 2020-01-10 Andreas Henriksson <andreas@fatal.se>
  3316. pam_umask: document the 'nousergroups' option.
  3317. Add a short description of the nousergroups to the pam_umask(8)
  3318. man-page.
  3319. 2020-01-10 Andreas Henriksson <andreas@fatal.se>
  3320. pam_umask: add new 'nousergroups' module argument.
  3321. This is particularly useful when pam has been built with the new
  3322. --enable-usergroups configure switch, allowing users to override
  3323. the default-enabled state and disabling usergroups at runtime.
  3324. This is synonymous but opposite to current and previous pam_umask
  3325. default that could be changed to enabled at runtime with the usergroups
  3326. argument.
  3327. 2020-01-10 Andreas Henriksson <andreas@fatal.se>
  3328. pam_umask: build-time usergroups option default.
  3329. This change adds a configure option to set the default value of the
  3330. usergroups option (of the pam_umask module) at build-time.
  3331. Distributions usually makes the decision if usergroups should be used or
  3332. not. This allows them to control the built-in default value, without
  3333. having to ship the value in a config file (cluttering up the view
  3334. of actually relevant user/system configuration overrides).
  3335. 2020-01-02 msalle <mischa.salle@gmail.com>
  3336. pam_access: Fix (IPv6) address prefix size matching.
  3337. IPv6 address prefix sizes larger than 128 (i.e. not larger or equal to) should
  3338. be discarded. Additionally, for IPv4 addresses, the largest valid prefix size
  3339. should be 32.
  3340. Fixes #161
  3341. 2019-12-18 Tomas Mraz <tmraz@fedoraproject.org>
  3342. Do not use CFLAGS for warning flags set from configure.
  3343. To be able to set CFLAGS from make command-line but not to lose the
  3344. warning flags.
  3345. * configure.ac: Put warning flags to WARN_CFLAGS instead of CFLAGS.
  3346. * */Makefile.am: Apply WARN_CFLAGS to AM_CFLAGS.
  3347. 2019-12-17 Balint Reczey <balint.reczey@canonical.com>
  3348. Return only PAM_IGNORE or error from pam_motd.
  3349. Follow-up for c81280b16e1831ab0bdd0383486c7e2d1eaf1b5e.
  3350. * modules/pam_motd/pam_motd.c: Return PAM_IGNORE if pam_putenv succeeds.
  3351. * modules/pam_motd/pam_motd.8.xml: Document additional possible return values of the module.
  3352. 2019-12-16 Dmitry V. Levin <ldv@altlinux.org>
  3353. Add initial Travis CI support.
  3354. This runs "make distcheck" using gcc-9, gcc-8, gcc-7, and clang
  3355. on x86_64, x86, x32, aarch64, s390x, and ppc64le architectures.
  3356. * .travis.yml: New file.
  3357. * ci/install-dependencies.sh: Likewise.
  3358. * ci/run-build-and-tests.sh: Likewise.
  3359. Resolves: https://github.com/linux-pam/linux-pam/issues/28
  3360. 2019-12-16 Dmitry V. Levin <ldv@altlinux.org>
  3361. pam_pwhistory: fix build when -lxcrypt is not available.
  3362. When xcrypt.h is available but -lxcrypt is not, pam_pwhistory fails to
  3363. build with the following diagnostics:
  3364. modules/pam_pwhistory/opasswd.c:111: undefined reference to `xcrypt_r'
  3365. Fix this by using the same check for xcrypt as in other modules.
  3366. * modules/pam_pwhistory/opasswd.c: Replace HAVE_XCRYPT_H with
  3367. HAVE_LIBXCRYPT.
  3368. 2019-12-16 Tomas Mraz <tmraz@fedoraproject.org>
  3369. Fix or suppress various warnings when compiling with -Wall -Wextra.
  3370. * conf/pam_conv1/Makefile.am: Add -Wno-unused-function -Wno-sign-compare to CFLAGS.
  3371. * doc/specs/Makefile.am: Likewise.
  3372. * libpamc/include/security/pam_client.h: Explicitly compare old_p with NULL.
  3373. * modules/pam_access/pam_access.c: Avoid double const.
  3374. * modules/pam_filter/pam_filter.c: Avoid arbitrary constants. Avoid strncpy()
  3375. without copying the NUL byte.
  3376. * modules/pam_group/pam_group.c: Mark switch fallthrough with comment.
  3377. * modules/pam_time/pam_time.c: Likewise.
  3378. * modules/pam_limits/pam_limits.c: Remove unused units variable.
  3379. * modules/pam_listfile/pam_listfile.c: Avoid unnecessary strncpy, use pointers.
  3380. * modules/pam_rootok/pam_rootok.c (log_callback): Mark unused parameter.
  3381. * modules/pam_selinux/pam_selinux.c: Use string_to_security_class() instead
  3382. of hardcoded value.
  3383. * modules/pam_sepermit/pam_sepermit.c: Properly cast when comparing.
  3384. * modules/pam_succeed_if/pam_succeed_if.c: Mark unused parameters.
  3385. * modules/pam_unix/pam_unix_passwd.c: Remove unused variables and properly
  3386. cast for comparison.
  3387. * modules/pam_unix/support.c: Remove unused function.
  3388. 2019-12-04 Balint Reczey <balint@balintreczey.hu>
  3389. pam_motd: Export MOTD_SHOWN=pam after showing MOTD.
  3390. This is a useful indication for update-motd profile.d snippet which can
  3391. also try to show MOTD when it is not already shown.
  3392. The use-case for that is showing MOTD in shells in containers without
  3393. PAM being involved.
  3394. * modules/pam_motd/pam_motd.c: Export MOTD_SHOWN=pam after showing MOTD
  3395. * modules/pam_motd/pam_motd.8.xml: Mention setting MOTD_SHOWN=pam in the man page
  3396. 2019-11-28 ppkarwasz <piotr.github@karwasz.org>
  3397. Adds an auth module to pam_keyinit (#150)
  3398. Adds an auth module to pam_keyinit, whose implementation of
  3399. pam_sm_setcred
  3400. is identical to the implementation of pam_sm_open_session.
  3401. It is useful with PAM applications, which call pam_setcred,
  3402. before calling pam_open_session.
  3403. * modules/pam_keyinit/pam_keyinit.c: Add an auth module to pam_keyinit.
  3404. * modules/pam_keyinit/pam_keyinit.8.xml: Update the manpage
  3405. to describe the new functionality.
  3406. 2019-11-28 Sophie Herold <sophie@hemio.de>
  3407. Lower "bad username" log priority (#154)
  3408. * modules/pam_unix/pam_unix_auth.c: Use LOG_NOTICE instead of LOG_ERR.
  3409. * modules/pam_unix/pam_unix_passwd.c: Likewise.
  3410. * modules/pam_umask/pam_umask.c: Likewise.
  3411. 2019-11-04 Tomas Mraz <tmraz@fedoraproject.org>
  3412. pam_namespace: Support for noexec, nosuid and nodev flags for tmpfs mounts
  3413. * modules/pam_namespace/namespace.conf.5.xml: Add documentation for the
  3414. noexec, nosuid, and nodev flags support.
  3415. * modules/pam_namespace/pam_namespace.c (filter_mntopts): New function to
  3416. filter out the flags.
  3417. (parse_method): Call the function.
  3418. (ns_setup): Apply the flags to the tmpfs mount.
  3419. * modules/pam_namespace/pam_namespace.h: Add mount_flags to polydir_s struct.
  3420. 2019-11-04 Tomas Mraz <tmraz@fedoraproject.org>
  3421. Optimize the checkgrouplist function.
  3422. There is no point in rising the allocation size by doubling when
  3423. we can allocate required memory size at once in the second pass.
  3424. * libpam/pam_modutil_ingroup.c (checkgrouplist): Allocate some reasonable
  3425. default size in first pass and required size in the second pass.
  3426. 2019-10-15 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com>
  3427. doc: fix module type written in MODULE TYPES PROVIDED.
  3428. 2019-10-14 Tomas Mraz <tmraz@fedoraproject.org>
  3429. pam_unix: Add logging useful for debugging problems.
  3430. Two messages added about obtaining the username are guarded
  3431. by the debug option as these should not be normally
  3432. logged - they can be useful for debugging but they do not
  3433. indicate any special condition.
  3434. The message about authenticating user with blank password is
  3435. still just LOG_DEBUG priority but it is logged unconditionally
  3436. because it is somewhat extraordinary condition to have an user
  3437. with blank password.
  3438. * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Replace
  3439. D() macro calls which are not enabled on production builds with
  3440. regular pam_syslog() calls.
  3441. 2019-10-10 Tomas Mraz <tmraz@fedoraproject.org>
  3442. pam_unix: Fix the spelling of Jan Rękorajski's name.
  3443. 2019-10-08 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com>
  3444. doc: fix typo in manpage.
  3445. 2019-10-03 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com>
  3446. pam_mkhomedir: Add debug option to pam_mkhomedir(8) man page.
  3447. 2019-09-23 Marek Černocký <marek@manet.cz>
  3448. Fixed missing quotes in configure script.
  3449. 2019-09-16 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com>
  3450. Add support for a vendor directory and libeconf (#136)
  3451. With this, it is possible for Linux distributors to store their
  3452. supplied default configuration files somewhere below /usr, while
  3453. /etc only contains the changes made by the user. The new option
  3454. --enable-vendordir defines where Linux-PAM should additional look
  3455. for pam.d/*, login.defs and securetty if this files are not in /etc.
  3456. libeconf is a key/value configuration file reading library, which
  3457. handles the split of configuration files in different locations
  3458. and merges them transparently for the application.
  3459. 2019-09-12 Carlos Santos <casantos@redhat.com>
  3460. pam_lastlog: document the 'unlimited' option.
  3461. 2019-09-12 Carlos Santos <casantos@redhat.com>
  3462. pam_lastlog: prevent crash due to reduced 'fsize' limit.
  3463. It a reduced fsize limit is set in /etc/security/limits.conf and
  3464. pam_limits is in use pam_lastlog may cause a crash, e.g.
  3465. ----- begin /etc/pam.d/su ----
  3466. auth sufficient pam_rootok.so
  3467. auth required pam_wheel.so use_uid
  3468. auth required pam_env.so
  3469. auth required pam_unix.so nullok
  3470. account required pam_unix.so
  3471. password required pam_unix.so nullok
  3472. session required pam_limits.so
  3473. session required pam_env.so
  3474. session required pam_unix.so
  3475. session optional pam_lastlog.so
  3476. ----- end /etc/pam.d/su -----
  3477. ----- begin /etc/security/limits.d/fsize.conf -----
  3478. * soft fsize 1710
  3479. * hard fsize 1710
  3480. ----- end /etc/security/limits.d/fsize.conf -----
  3481. # id user1
  3482. uid=1000(user1) gid=1000(user1) groups=1000(user1)
  3483. # su - user1
  3484. Last login: Wed Sep 11 01:52:44 UTC 2019 on console
  3485. $ exit
  3486. # id user2
  3487. uid=60000(user2) gid=60000(user2) groups=60000(user2)
  3488. # su - user2
  3489. File size limit exceeded
  3490. This happens because pam_limits sets RLIMIT_FSIZE before pam_lastlog
  3491. attempts to write /var/log/lastlog, leading to a SIGXFSZ signal.
  3492. In order to fix this, and an 'unlimited' option, which leads to saving
  3493. the 'fsize' limit and set it to unlimited before writing lastlog. After
  3494. that, restore the saved value. If 'fsize' is already unlimited nothing
  3495. is done.
  3496. Failing to set the 'fsize' limit is not a fatal error. With luck the
  3497. configured limit will suffice, so we try to write lastlog anyway, even
  3498. under the risk of dying due to a SIGXFSZ.
  3499. Failing to restore the 'fsize' limit is a fatal error, since we don't
  3500. want to keep it unlimited.
  3501. 2019-09-11 ed <ed@s5h.net>
  3502. pam_unix_sess.c add uid for opening session.
  3503. This adds the UID of the target user to the session open log.
  3504. Also fixing tabulation in pam_unix_sess.c.
  3505. 2019-09-09 lifecrisis <15251574+lifecrisis@users.noreply.github.com>
  3506. Fix the man page for "pam_fail_delay()"
  3507. This man page contained the incorrect statement that setting the
  3508. PAM_FAIL_DELAY item to NULL would disable any form of delay on
  3509. authentication failure.
  3510. I removed the incorrect statement and added a paragraph explaining
  3511. how an application should properly avoid delays.
  3512. Closes #137.
  3513. 2019-09-06 lifecrisis <15251574+lifecrisis@users.noreply.github.com>
  3514. Fix a typo.
  3515. There is an extra space where there should not be one.
  3516. 2019-09-06 lifecrisis <15251574+lifecrisis@users.noreply.github.com>
  3517. Update a function comment.
  3518. The function comment for "_pam_await_timer()" does not mention the
  3519. intended behavior of prioritizing the "PAM_FAIL_DELAY" item.
  3520. I updated the comment to make this intention clear.
  3521. 2019-09-02 Matt Cowell <matt.cowell@nokia.com>
  3522. pwhistory: fix read of uninitialized data and memory leak when modifying opasswd
  3523. The glibc implementation of getline/getdelim does not guarantee a NUL
  3524. terminator in lineptr if getline returns failure (-1). This occurs when
  3525. the opasswd file exists but is empty. Since strdup is called
  3526. immediately afterwards, this causes strdup to read uninitialized memory
  3527. and possibly buffer overrun / crash.
  3528. This also fixes a memory leak which always occurs when reading the last
  3529. line of the opasswd file. Since the strdup is called before checking
  3530. the return code from getline, getdelim, or fgets+strlen, it will
  3531. duplicate and never free either:
  3532. - The last successfully read line (for getline or getdelim)
  3533. - Uninitialized data (if the file is empty)
  3534. - A 0 byte string (for fgets+strlen)
  3535. Fix by always checking the return code of getline, getdelim, or
  3536. fgets+strlen before calling strdup.
  3537. 2019-08-26 Christophe Besson <cbesson@redhat.com>
  3538. libpam/pam_modutil_sanitize.c: optimize the way to close fds.
  3539. 2019-08-07 Tomas Mraz <tmraz@fedoraproject.org>
  3540. pam_tty_audit: Manual page clarification about password logging.
  3541. * modules/pam_tty_audit/pam_tty_audit.8.xml: Explanation why passwords
  3542. can be sometimes logged even when the option is not set.
  3543. 2019-08-07 Tomas Mraz <tmraz@fedoraproject.org>
  3544. pam_get_authtok_verify: Avoid duplicate password verification.
  3545. If password was already verified by previous modules in the stack
  3546. it does not need to be verified by pam_get_authtok_verify either.
  3547. * libpam/pam_get_authtok.c (pam_get_authtok_internal): Set the authtok_verified
  3548. appropriately.
  3549. (pam_get_authtok_verify): Do not prompt if authtok_verified is set and
  3550. set it when the password is verified.
  3551. * libpam/pam_private.h: Add authtok_verified to the pam handle struct.
  3552. * libpam/pam_start.c (pam_start): Initialize authtok_verified.
  3553. 2019-07-16 2*yo <yohann@lepage.info>
  3554. Mention that ./autogen.sh is needeed to be run if you check out the sources from git
  3555. 2019-06-27 Tomas Mraz <tmraz@fedoraproject.org>
  3556. pam_unix: Correct MAXPASS define name in the previous two commits.
  3557. * modules/pam_unix/pam_unix_passwd.c: Change MAX_PASS to MAXPASS.
  3558. * modules/pam_unix/support.c: Likewise.
  3559. 2019-06-27 Florian Best <best@univention.de>
  3560. Restrict password length when changing password.
  3561. Trim password at PAM_MAX_RESP_SIZE chars.
  3562. Issue #118: Protect against Denial of Service attacks.
  3563. To prevent hashsum generation via crypt of very long passwords the
  3564. password is now stripped to 512 characters. This is equivalent behavior
  3565. to unix_chkpwd.
  3566. 2019-05-23 Olaf Mandel <o.mandel@menlosystems.com>
  3567. pam_succeed_if: Request user data only when needed.
  3568. Allow for conditions that just check the user field to also work for
  3569. users not known to the system. Before this caused a PAM_USER_UNKNOWN
  3570. even if no extra data for an existing user was needed. E.g.
  3571. auth sufficient pam_succeed_if.so user = NotKnownToSystem
  3572. modules/pam_succeed_if/pam_succeed_if.c (evaluate): Change the pwd
  3573. parameter to an input/output parameter. Lazily request pwd with
  3574. pam_modutil_getpwnam() if needed and return PAM_USER_UNKNOWN on failure.
  3575. modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Don't
  3576. request the pwd if !use_uid anymore and shift the output from audit to
  3577. after the evaluate() call. Also make sure not to give the normal failure
  3578. message if the lazy pwd loading failed.
  3579. 2019-02-26 Maciej S. Szmigiero <mail@maciej.szmigiero.name>
  3580. pam_tally2: Remove unnecessary fsync()
  3581. pam_tally2 does fsync() after writing to a tally file.
  3582. This causes hard drive cache flushes on every failed SSH login on many
  3583. (if not most) filesystems.
  3584. And an internet-exposed machine can have a lot of these failed logins.
  3585. This operation however doesn't seem to be necessary - the pam_tally2
  3586. module does not do any operation which would need explicit post-crash
  3587. ordering, it just does simple file reads and writes.
  3588. And doing a fsync() after them doesn't close any race if the system happens
  3589. to crash between a write being posted and its fsync() completion.
  3590. Let's remove this operation to get rid of all these extra cache flushes.
  3591. 2019-02-19 vkwitshana <vkwitshana@gmail.com>
  3592. Fixed a grammer mistake.
  3593. 2019-01-10 Christopher Head <chead@chead.ca>
  3594. Fix documentation for pam_wheel.
  3595. By default, pam_wheel checks for applicant membership in the wheel group
  3596. for *all* access requests, regardless of whether the target user is root
  3597. or non-root. Only if root_only is provided does it limit the membership
  3598. check to cases when the target user is root. Update the documentation to
  3599. reflect this.
  3600. 2019-01-10 Louis Sautier <sautier.louis@gmail.com>
  3601. Fix a typo in the documentation.
  3602. 2019-01-10 Nir Soffer <nsoffer@redhat.com>
  3603. pam_lastlog: Improve silent option documentation.
  3604. The silent option explicitly silents only the last login message and not
  3605. bad logins. Add a note to the manual to make this clear.
  3606. * modules/pam_lastlog/pam_lastlog.8.xml: Clearify "silent showfailed"
  3607. 2019-01-10 Nir Soffer <nsoffer@redhat.com>
  3608. pam_lastlog: Respect PAM_SILENT flag.
  3609. pam_lastlog module will not log info about failed login if the session
  3610. was opened with PAM_SILENT flag.
  3611. Example use case enabled by this change:
  3612. sudo --non-interactive program
  3613. If this command is run by another program expecting specific output from
  3614. the command run by sudo, the unexpected info about failed logins will
  3615. break this program.
  3616. * modules/pam_lastlog/pam_lastlog.c: Respect silent option.
  3617. (_pam_session_parse): Unset LASTLOG_BTMP if PAM_SILENT is set.
  3618. 2019-01-04 Tomas Mraz <tmraz@fedoraproject.org>
  3619. Fix regressions from the last commits.
  3620. * configure.ac: Test for logwtmp needs -lutil in LIBS.
  3621. * modules/Makefile.am: Fix indentation of variable assignments causing
  3622. creation of incorrect Makefile.
  3623. 2019-01-04 Rosen Penev <rosenp@gmail.com>
  3624. Replace strndupa with strncpy.
  3625. glibc only. A static string is better.
  3626. 2019-01-04 Yousong Zhou <yszhou4tech@gmail.com>
  3627. build: ignore pam_lastlog when logwtmp is not available.
  3628. * configure.ac: check logwtmp and set COND_BUILD_PAM_LASTLOG
  3629. * modules/pam_lastlog/Makefile.am: check COND_BUILD_PAM_LASTLOG
  3630. build: ignore pam_rhosts if neither ruserok nor ruserok_af is available.
  3631. * configure.ac: check for ruserok and ruserok_af
  3632. * modules/Makefile.am: ignore pam_rhosts/ if it's disabled
  3633. * modules/pam_rhosts/pam_rhosts.c: include stdlib.h for malloc and free
  3634. 2018-12-20 Tomas Mraz <tmraz@fedoraproject.org>
  3635. pam_motd: Cleanup the code and avoid unnecessary logging.
  3636. The pam_motd module will not log if the default motd.d directories
  3637. are missing.
  3638. Also cleanup some code cleanliness issues and fix compilation
  3639. warnings.
  3640. * modules/pam_motd/pam_motd.c: Constification of constant strings.
  3641. (try_to_display_directory): Removed unused function.
  3642. (pam_split_string): Replace uint with unsigned int. Fix warnings.
  3643. (compare_strings): Fix warnings by proper constification.
  3644. (try_to_display_directories_with_overrides): Cleanups. Switch
  3645. off the logging if the motd.d directories are missing and they
  3646. are default ones.
  3647. (pam_sm_open_session): Cleanup warnings. Pass the information
  3648. to try_to_display_directories_with_overrides() that non-default
  3649. motd options are used.
  3650. 2018-12-20 Tomas Mraz <tmraz@fedoraproject.org>
  3651. pam_lastlog: Limit lastlog file use by LASTLOG_UID_MAX option in login.defs.
  3652. * modules/pam_lastlog/pam_lastlog.8.xml: Add the documentation of the
  3653. LASTLOG_UID_MAX option.
  3654. * modules/pam_lastlog/pam_lastlog.c: New function get_lastlog_uid_max().
  3655. (last_login_date): Check the uid against the get_lastlog_uid_max().
  3656. (pam_authenticate): Likewise.
  3657. 2018-12-11 Tomas Mraz <tmraz@fedoraproject.org>
  3658. Move the duplicated search_key function to pam_modutil.
  3659. * libpam/pam_modutil_searchkey.c: New source file with pam_modutil_search_key().
  3660. * libpam/Makefile.am: Add the pam_modutil_searchkey.c.
  3661. * libpam/include/security/pam_modutil.h: Add the pam_modutil_search_key() prototype.
  3662. * libpam/libpam.map: Add the pam_modutil_search_key() into a new version.
  3663. * modules/pam_faildelay/pam_faildelay.c: Drop search_key() and use
  3664. pam_modutil_search_key().
  3665. * modules/pam_umask/pam_umask.c: Likewise.
  3666. * modules/pam_unix/support.c: Likewise.
  3667. 2018-11-27 Tomas Mraz <tmraz@fedoraproject.org>
  3668. pam_unix: Use pam_syslog instead of helper_log_err.
  3669. * modules/pam_unix/passverify.c (verify_pwd_hash): Add pamh argument via
  3670. PAMH_ARG_DECL. Call pam_syslog() instead of helper_log_err().
  3671. * modules/pam_unix/passverify.h: Adjust the declaration of verify_pwd_hash().
  3672. * modules/pam_unix/support.c (_unix_verify_password): Add the pamh argument
  3673. to verify_pwd_hash() call.
  3674. 2018-11-27 Björn Esser <besser82@fedoraproject.org>
  3675. pam_unix: Report unusable hashes found by checksalt to syslog.
  3676. libxcrypt can be build-time configured to support (or not support)
  3677. various hashing methods. Future versions will also have support for
  3678. runtime configuration by the system's vendor and/or administrator.
  3679. For that reason adminstrator should be notified by pam if users cannot
  3680. log into their account anymore because of such a change in the system's
  3681. configuration of libxcrypt.
  3682. Also check for malformed hashes, like descrypt hashes starting with
  3683. "$2...", which might have been generated by unsafe base64 encoding
  3684. functions as used in glibc <= 2.16.
  3685. Such hashes are likely to be rejected by many recent implementations
  3686. of libcrypt.
  3687. * modules/pam_unix/passverify.c (verify_pwd_hash): Report unusable
  3688. hashes found by checksalt to syslog.
  3689. 2018-11-27 Tomas Mraz <tmraz@fedoraproject.org>
  3690. Revert "pam_unix: Add crypt_default method, if supported."
  3691. This reverts commit ad435b386b22b456724dc5c5b8d9f2d1beffc558.
  3692. 2018-11-27 Björn Esser <besser82@fedoraproject.org>
  3693. pam_unix: Add crypt_default method, if supported.
  3694. libxcrypt since v4.4.0 supports a default method for its
  3695. gensalt function on most system configurations. As the
  3696. default method is to be considered the strongest available
  3697. hash method, it should be preferred over all other hash
  3698. methods supported by pam.
  3699. * modules/pam_unix/pam_unix.8.xml: Documentation for crypt_default.
  3700. * modules/pam_unix/passverify.c: Add crypt_default method.
  3701. * modules/pam_unix/support.h: Likewise.
  3702. 2018-11-26 Tomas Mraz <tmraz@fedoraproject.org>
  3703. Revert part of the commit 4da9febc.
  3704. pam_unix: Do not return a hard failure on invalid or disabled salt
  3705. as in some cases the failure actually is not interesting and can
  3706. broke things such as password-less sudo.
  3707. * modules/pam_unix/passverify.c (check_shadow_expiry): Revert checking
  3708. of disabled or invalid salt.
  3709. 2018-11-23 Björn Esser <besser82@fedoraproject.org>
  3710. pam_unix: Add support for (gost-)yescrypt hashing methods.
  3711. libxcrypt (v4.2 and later) has added support for the yescrypt
  3712. hashing method; gost-yescrypt has been added in v4.3.
  3713. * modules/pam_unix/pam_unix.8.xml: Documentation for (gost-)yescrypt.
  3714. * modules/pam_unix/pam_unix_acct.c: Use 64 bit type for control flags.
  3715. * modules/pam_unix/pam_unix_auth.c: Likewise.
  3716. * modules/pam_unix/pam_unix_passwd.c: Likewise.
  3717. * modules/pam_unix/pam_unix_sess.c: Likewise.
  3718. * modules/pam_unix/passverify.c: Add support for (gost-)yescrypt.
  3719. * modules/pam_unix/passverify.h: Use 64 bit type for control flags.
  3720. * modules/pam_unix/support.c: Set sane rounds for (gost-)yescrypt.
  3721. * modules/pam_unix/support.h: Add support for (gost-)yescrypt.
  3722. 2018-11-22 Björn Esser <besser82@fedoraproject.org>
  3723. pam_unix: Fix closing curly brace. (#77)
  3724. This has been overlooked during review of commit dce80b3f11b3.
  3725. * modules/pam_unix/support.c (_set_ctrl): Fix closing curly brace.
  3726. Closes: https://github.com/linux-pam/linux-pam/issues/77
  3727. 2018-11-22 Björn Esser <besser82@fedoraproject.org>
  3728. pam_unix: Add support for crypt_checksalt, if libcrypt supports it.
  3729. libxcrypt v4.3 has added the crypt_checksalt function to whether
  3730. the prefix at the begining of a given hash string refers to a
  3731. supported hashing method.
  3732. Future revisions of this function will add support to check whether
  3733. the hashing method, the prefix refers to, was disabled or considered
  3734. deprecated by the system's factory presets or system administrator.
  3735. Furthermore it will be able to detect whether the parameters, which
  3736. are used by the corresponding hashing method, being encoded in the
  3737. hash string are not considered to be strong enough anymore.
  3738. *modules/pam_unix/passverify.c: Add support for crypt_checksalt.
  3739. 2018-11-22 Björn Esser <besser82@fedoraproject.org>
  3740. pam_unix: Prefer a gensalt function, that supports auto entropy.
  3741. * modules/pam_unix/pam_unix_passwd.c: Initialize rounds parameter to 0.
  3742. * modules/pam_unix/passverify.c: Prefer gensalt with auto entropy.
  3743. * modules/pam_unix/support.c: Fix sanitizing of rounds parameter.
  3744. 2018-11-21 Robert Fairley <rfairley@users.noreply.github.com>
  3745. pam_motd: Fix segmentation fault when no motd_dir specified (#76)
  3746. This fixes a regression introduced by #69, where motd_path was set
  3747. to NULL and passed into strdup() if the motd_dir argument was
  3748. not specified in the configuration file. This caused a segmentation
  3749. fault.
  3750. * modules/pam_motd/pam_motd.c: fix checks for NULL in arguments
  3751. * xtests/Makefile.am: add test scripts and config file
  3752. * xtests/tst-pam_motd.sh: add running tst-pam_motd4.sh
  3753. * xtests/tst-pam_motd4.pamd: create
  3754. * xtests/tst-pam_motd4.sh: create
  3755. 2018-11-19 Robert Fairley <rfairley@users.noreply.github.com>
  3756. pam_motd: Support multiple motd paths specified, with filename overrides (#69)
  3757. Adds specifying multiple paths to motd files and motd.d
  3758. directories to be displayed. A colon-separated list of
  3759. paths is specified as arguments motd and motd_dir to the
  3760. pam_motd module.
  3761. This gives packages several options to install motd files to.
  3762. By default, the paths are, with highest priority first:
  3763. /etc/motd
  3764. /run/motd
  3765. /usr/lib/motd
  3766. /etc/motd.d/
  3767. /run/motd.d/
  3768. /usr/lib/motd.d/
  3769. Which is equivalent to the following arguments:
  3770. motd=/etc/motd:/run/motd:/usr/lib/motd
  3771. motd_dir=/etc/motd.d:/run/motd.d:/usr/lib/motd.d
  3772. Files with the same filename in a lower-priority directory,
  3773. as specified by the order in the colon-separated list, are
  3774. overridden, meaning PAM will not display them.
  3775. This allows a package to contain motd files under
  3776. /usr/lib instead of the host configuration in /etc.
  3777. A service may also write a dynamically generated motd in
  3778. /run/motd.d/ and have PAM display it without needing a
  3779. symlink from /etc/motd.d/ installed.
  3780. Closes #68
  3781. * modules/pam_motd/pam_motd.8.xml: update documentation
  3782. * modules/pam_motd/pam_motd.c: add specifying multiple motd paths
  3783. * xtests/.gitignore: add generated test script
  3784. * xtests/Makefile.am: add test source, scripts and config files
  3785. * xtests/tst-pam_motd.c: create
  3786. * xtests/tst-pam_motd.sh: create
  3787. * xtests/tst-pam_motd1.pamd: create
  3788. * xtests/tst-pam_motd1.sh: create
  3789. * xtests/tst-pam_motd2.pamd: create
  3790. * xtests/tst-pam_motd2.sh: create
  3791. * xtests/tst-pam_motd3.pamd: create
  3792. * xtests/tst-pam_motd3.sh: create
  3793. 2018-11-16 Björn Esser <besser82@fedoraproject.org>
  3794. pam_unix: Use bcrypt b-variant for computing new hashes.
  3795. Bcrypt hashes used the "$2a$" prefix since 1997.
  3796. However, in 2011 an implementation bug was discovered in bcrypt
  3797. affecting the handling of characters in passphrases with the 8th
  3798. bit set.
  3799. Besides fixing the bug, OpenBSD 5.5 introduced the "$2b$" prefix
  3800. for a behavior that exactly matches crypt_blowfish's "$2y$", and
  3801. the crypt_blowfish implementation supports it as well since v1.1.
  3802. That said new computed bcrypt hashes should use the "$2b$" prefix.
  3803. * modules/pam_unix/passverify.c: Use bcrypt b-variant.
  3804. 2018-06-22 Dmitry V. Levin <ldv@altlinux.org>
  3805. pam_tally, pam_tally2: fix grammar and spelling (#54)
  3806. * modules/pam_tally/pam_tally.c (tally_check): Replace
  3807. "Account is temporary locked" with "The account is temporarily locked"
  3808. in translated messages.
  3809. * modules/pam_tally2/pam_tally2.c (tally_check): Likewise.
  3810. * po/Linux-PAM.pot: Update pam_tally and pam_tally2 messages.
  3811. Closes: https://github.com/linux-pam/linux-pam/issues/54
  3812. 2018-06-19 Dmitry V. Levin <ldv@altlinux.org>
  3813. Fix grammar of messages printed via pam_prompt.
  3814. Turn into proper sentences those messages that are printed without
  3815. further modifications using pam_prompt in contexts where proper
  3816. sentences are expected.
  3817. * libpam/pam_get_authtok.c (pam_get_authtok_internal): Fix grammar
  3818. of the message passed to pam_error.
  3819. * modules/pam_limits/pam_limits.c (pam_sm_open_session): Likewise.
  3820. * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Fix
  3821. grammar of error messages passed to pam_error.
  3822. * modules/pam_mail/pam_mail.c (report_mail): Fix grammar of a message
  3823. passed to pam_info.
  3824. * modules/pam_timestamp/pam_timestamp.c (verbose_success): Likewise.
  3825. * modules/pam_selinux/pam_selinux.c (config_context, send_text): Fix
  3826. grammar of messages passed to pam_prompt.
  3827. * modules/pam_tally/pam_tally.c (tally_check): Fix grammar of messages
  3828. passed to pam_info.
  3829. * modules/pam_tally2/pam_tally2.c (tally_check): Likewise.
  3830. * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Fix grammar
  3831. of messages passed to _make_remark.
  3832. * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass,
  3833. pam_sm_chauthtok): Likewise.
  3834. * po/Linux-PAM.pot: Regenerate.
  3835. 2018-06-19 Dmitry V. Levin <ldv@altlinux.org>
  3836. pam_stress: do not mark messages for translation.
  3837. pam_stress is not a regular module that needs to be translated.
  3838. Besides that, its messages are not easy to understand
  3839. and even harder to translate properly.
  3840. * modules/pam_stress/pam_stress.c (pam_sm_chauthtok): Do not mark
  3841. messages for translation.
  3842. * po/Linux-PAM.pot: Remove pam_stress messages.
  3843. 2018-05-31 Dmitry V. Levin <ldv@altlinux.org>
  3844. pam_unix: remove obsolete _UNIX_AUTHTOK, _UNIX_OLD_AUTHTOK, and _UNIX_NEW_AUTHTOK macros
  3845. The last use of these macros was removed by commit Linux-PAM-1.3.0~5
  3846. so their definitions should go as well.
  3847. * modules/pam_unix/pam_unix_auth.c (_UNIX_AUTHTOK): Remove.
  3848. * modules/pam_unix/pam_unix_passwd.c (_UNIX_OLD_AUTHTOK,
  3849. _UNIX_NEW_AUTHTOK): Likewise.
  3850. Complements: 7e09188c5dc4 ("pam_unix: Use pam_get_authtok() instead of
  3851. direct pam_prompt() calls.")
  3852. 2018-05-31 Dmitry V. Levin <ldv@altlinux.org>
  3853. pam_unix: remove obsolete _unix_read_password prototype.
  3854. The function was removed by commit Linux-PAM-1.3.0~5
  3855. so the function prototype should go as well.
  3856. * modules/pam_unix/support.h (_unix_read_password): Remove.
  3857. Complements: 7e09188c5dc4 ("pam_unix: Use pam_get_authtok() instead of
  3858. direct pam_prompt() calls.")
  3859. 2018-05-18 Thorsten Kukuk <kukuk@thkukuk.de>
  3860. Release version 1.3.1.
  3861. Add xz compression.
  3862. 2018-05-16 Allison Karlitskaya <allison.karlitskaya@redhat.com>
  3863. pam_motd: add support for a motd.d directory (#48)
  3864. Add a new feature to pam_motd to allow packages to install their own
  3865. message files in a "motd.d" directory, to be displayed after the primary
  3866. motd.
  3867. Add an option motd_d= to specify the location of this directory.
  3868. Modify the defaults, in the case where no options are given, to display
  3869. both /etc/motd and /etc/motd.d.
  3870. Fixes #47
  3871. * modules/pam_motd/pam_motd.c: add support for motd.d
  3872. * modules/pam_motd/pam_motd.8.xml: update the manpage
  3873. 2018-05-02 Tomas Mraz <tmraz@fedoraproject.org>
  3874. pam_umask: Fix documentation to align with order of loading umask.
  3875. * modules/pam_umask/pam_umask.8.xml: Document the real order of loading
  3876. umask.
  3877. 2018-04-10 Joey Chagnon <joeychagnon@users.noreply.github.com>
  3878. Fix missing word in documentation.
  3879. * doc/man/pam_get_user.3.xml: Fix it.
  3880. 2017-11-10 Dmitry V. Levin <ldv@altlinux.org>
  3881. pam_tally2 --reset: avoid creating a missing tallylog file.
  3882. There is no need for pam_tally2 in --reset=0 mode to create a missing
  3883. tallylog file because its absence has the same meaning as its existence
  3884. with the appropriate entry reset.
  3885. This was not a big deal until useradd(8) from shadow suite release 4.5
  3886. started to invoke /sbin/pam_tally2 --reset routinely regardless of PAM
  3887. configuration.
  3888. The positive effect of this change is noticeable when using tools like
  3889. cpio(1) that cannot archive huge sparse files efficiently.
  3890. * modules/pam_tally2/pam_tally2.c [MAIN] (main) <cline_user>: Stat
  3891. cline_filename when cline_reset == 0, exit early if the file is missing.
  3892. 2017-11-10 Tomas Mraz <tmraz@fedoraproject.org>
  3893. pam_mkhomedir: Allow creating parent of homedir under /
  3894. * modules/pam_mkhomedir/mkhomedir_helper.c (make_parent_dirs): Do not
  3895. skip creating the directory if we are under /.
  3896. 2017-10-09 Tomas Mraz <tmraz@fedoraproject.org>
  3897. pam_tty_audit: Fix regression introduced by adding the uid range support.
  3898. * modules/pam_tty_audit/pam_tty_audit.c (parse_uid_range): Fix constification and
  3899. remove unneeded code carried from pam_limits.
  3900. (pam_sm_open_session): When multiple enable/disable options are present do not
  3901. stop after first match.
  3902. 2017-09-06 Tomas Mraz <tmraz@fedoraproject.org>
  3903. pam_access: Add note about spaces around ':' in access.conf(5)
  3904. * modules/pam_access/access.conf.5.xml: Add note about spaces around ':'
  3905. Workaround formatting problem in pam(8)
  3906. * doc/man/pam.8.xml: Workaround formatting problem.
  3907. 2017-07-12 Peter Urbanec <peterurbanec@users.noreply.github.com>
  3908. pam_unix: Check return value of malloc used for setcred data (#24)
  3909. Check the return value of malloc and if it failed print debug info, send
  3910. a syslog message and return an error code.
  3911. The test in AUTH_RETURN for ret_data not being NULL becomes redundant.
  3912. 2017-07-10 Tomas Mraz <tmraz@fedoraproject.org>
  3913. pam_cracklib: Drop unused prompt macros.
  3914. * modules/pam_cracklib/pam_cracklib.c: Drop the unused macros.
  3915. 2017-06-28 Tomas Mraz <tmraz@fedoraproject.org>
  3916. pam_tty_audit: Support matching users by uid range.
  3917. * modules/pam_tty_audit/pam_tty_audit.c (parse_uid_range): New function to
  3918. parse the uid range.
  3919. (pam_sm_open_session): Call parse_uid_range() and behave according to its result.
  3920. * modules/pam_tty_audit/pam_tty_audit.8.xml: Document the uid range matching.
  3921. 2017-05-31 Tomas Mraz <tmraz@fedoraproject.org>
  3922. pam_access: support parsing files in /etc/security/access.d/*.conf.
  3923. * modules/pam_access/pam_access.c (login_access): Return NOMATCH if
  3924. there was no match in the parsed file.
  3925. (pam_sm_authenticate): Add glob() call to go through the ACCESS_CONF_GLOB
  3926. subdirectory and call login_access() on the individual files matched.
  3927. * modules/pam_access/pam_access.8.xml: Document the addition.
  3928. * modules/pam_access/Makefile.am: Add ACCESS_CONF_GLOB definition.
  3929. 2017-04-11 Tomas Mraz <tmraz@fedoraproject.org>
  3930. pam_localuser: Correct the example in documentation.
  3931. * modules/pam_localuser/pam_localuser.8.xml: The example configuration
  3932. does something different.
  3933. pam_localuser: Correct documentation of return value.
  3934. * modules/pam_localuser/pam_localuser.8.xml: The module returns
  3935. PAM_PERM_DENIED when the user is not listed.
  3936. 2017-03-10 Saul Johnson <saul.a.johnson@gmail.com>
  3937. Make maxclassrepeat=1 behavior consistent with docs (#9)
  3938. * modules/pam_cracklib/pam_cracklib.c (simple): Apply the maxclassrepeat when greater than 0.
  3939. 2017-02-09 Josef Moellers <jmoellers@suse.de>
  3940. Properly test for strtol() failure to find any digits.
  3941. * modules/pam_access/pam_access.c (network_netmask_match): Test for endptr set
  3942. to beginning and not NULL.
  3943. 2017-01-19 Daniel Abrecht <daniel.abrecht@hotmail.com>
  3944. pam_exec: fix a potential null pointer dereference.
  3945. Fix a null pointer dereference when pam_prompt returns PAM_SUCCESS
  3946. but the response is set to NULL.
  3947. * modules/pam_exec/pam_exec.c (call_exec): Do not invoke strndupa
  3948. with a null pointer.
  3949. Closes: https://github.com/linux-pam/linux-pam/pull/2
  3950. 2016-12-07 Antonio Ospite <ao2@ao2.it>
  3951. Add missing comma in the limits.conf.5 manpage.
  3952. * modules/pam_limits/limits.conf.5.xml: add a missing comma
  3953. 2016-11-14 Tomas Mraz <tmraz@fedoraproject.org>
  3954. Regular links doesn't work with -no-numbering -no-references.
  3955. * configure.ac: Use elinks instead of links.
  3956. 2016-11-01 Tomas Mraz <tmraz@fedoraproject.org>
  3957. pam_access: First check for the (group) match.
  3958. The (group) match is performed first to allow for groups
  3959. containing '@'.
  3960. * modules/pam_access/pam_access.c (user_match): First check for the (group) match.
  3961. 2016-10-17 Tomas Mraz <tmraz@fedoraproject.org>
  3962. pam_ftp: Properly use the first name from the supplied list.
  3963. * modules/pam_ftp/pam_ftp.c (lookup): Return first user from the list
  3964. of anonymous users if user name matches.
  3965. (pam_sm_authenticate): Free the returned value allocated in lookup().
  3966. 2016-09-12 Bartos-Elekes Zsolt <muszi@kite.hu>
  3967. pam_issue: Fix no prompting in parse escape codes mode.
  3968. * modules/pam_issue/pam_issue.c (read_issue_quoted): Fix misplaced strcat().
  3969. 2016-06-30 Maxin B. John <maxin.john@intel.com>
  3970. xtests: remove bash dependency.
  3971. There are no bash specific syntax in the xtest scripts. So, remove
  3972. the bash dependency.
  3973. 2016-06-30 Tomas Mraz <tmraz@fedoraproject.org>
  3974. Unification and cleanup of syslog log levels.
  3975. * libpam/pam_handlers.c: Make memory allocation failures LOG_CRIT.
  3976. * libpam/pam_modutil_priv.c: Make memory allocation failures LOG_CRIT.
  3977. * modules/pam_echo/pam_echo.c: Make memory allocation failures LOG_CRIT.
  3978. * modules/pam_env/pam_env.c: Make memory allocation failures LOG_CRIT.
  3979. * modules/pam_exec/pam_exec.c: Make memory allocation failures LOG_CRIT.
  3980. * modules/pam_filter/pam_filter.c: Make all non-memory call errors LOG_ERR.
  3981. * modules/pam_group/pam_group.c: Make memory allocation failures LOG_CRIT.
  3982. * modules/pam_issue/pam_issue.c: Make memory allocation failures LOG_CRIT.
  3983. * modules/pam_lastlog/pam_lastlog.c: The lastlog file creation is syslogged
  3984. with LOG_NOTICE, memory allocation errors with LOG_CRIT, other errors
  3985. with LOG_ERR.
  3986. * modules/pam_limits/pam_limits.c: User login limit messages are syslogged
  3987. with LOG_NOTICE, stale utmp entry with LOG_INFO, non-memory errors with
  3988. LOG_ERR.
  3989. * modules/pam_listfile/pam_listfile.c: Rejection of user is syslogged
  3990. with LOG_NOTICE.
  3991. * modules/pam_namespace/pam_namespace.c: Make memory allocation failures
  3992. LOG_CRIT.
  3993. * modules/pam_nologin/pam_nologin.c: Make memory allocation failures
  3994. LOG_CRIT, other errors LOG_ERR.
  3995. * modules/pam_securetty/pam_securetty.c: Rejection of access is syslogged
  3996. with LOG_NOTICE, non-memory errors with LOG_ERR.
  3997. * modules/pam_selinux/pam_selinux.c: Make memory allocation failures LOG_CRIT.
  3998. * modules/pam_succeed_if/pam_succeed_if.c: Make all non-memory call errors
  3999. LOG_ERR.
  4000. * modules/pam_time/pam_time.c: Make memory allocation failures LOG_CRIT.
  4001. * modules/pam_timestamp/pam_timestamp.c: Make memory allocation failures
  4002. LOG_CRIT.
  4003. * modules/pam_unix/pam_unix_acct.c: Make all non-memory call errors LOG_ERR.
  4004. * modules/pam_unix/pam_unix_passwd.c: Make memory allocation failures LOG_CRIT,
  4005. other errors LOG_ERR.
  4006. * modules/pam_unix/pam_unix_sess.c: Make all non-memory call errors LOG_ERR.
  4007. * modules/pam_unix/passverify.c: Unknown user is syslogged with LOG_NOTICE.
  4008. * modules/pam_unix/support.c: Unknown user is syslogged with LOG_NOTICE and
  4009. max retries ignorance by application likewise.
  4010. * modules/pam_unix/unix_chkpwd.c: Make all non-memory call errors LOG_ERR.
  4011. * modules/pam_userdb/pam_userdb.c: Password authentication error is syslogged
  4012. with LOG_NOTICE.
  4013. * modules/pam_xauth/pam_xauth.c: Make memory allocation failures LOG_CRIT.
  4014. 2016-06-14 Dmitry V. Levin <ldv@altlinux.org>
  4015. pam_timestamp: fix typo in strncmp usage.
  4016. Before this fix, a typo in check_login_time resulted to ruser and
  4017. struct utmp.ut_user being compared by the first character only,
  4018. which in turn could lead to a too low timestamp value being assigned
  4019. to oldest_login, effectively causing bypass of check_login_time.
  4020. * modules/pam_timestamp/pam_timestamp.c (check_login_time): Fix typo
  4021. in strncmp usage.
  4022. Patch-by: Anton V. Boyarshinov <boyarsh@altlinux.org>
  4023. 2016-05-30 Tomas Mraz <tmraz@fedoraproject.org>
  4024. Correct the examples in pam_fail_delay(3) man page.
  4025. doc/man/pam_fail_delay.3.xml: Correct the examples.
  4026. 2016-05-11 Tomas Mraz <tmraz@fedoraproject.org>
  4027. Remove spaces in examples for access.conf.
  4028. The spaces are ignored only with the default listsep. To remove confusion
  4029. if non-default listsep is used they are removed from the examples.
  4030. * modules/pam_access/access.conf: Remove all spaces around ':' in examples.
  4031. * modules/pam_access/access.conf.5.xml: Likewise.
  4032. 2016-05-05 Mike Frysinger <vapier@gentoo.org>
  4033. build: avoid non-portable == with "test" (ticket #60)
  4034. POSIX says test only accepts =. Some shells (including bash) accept ==,
  4035. but we should still stick to = for portability.
  4036. * configure.ac: Replace == with = in "test" invocations.
  4037. 2016-04-28 Thorsten Kukuk <kukuk@thkukuk.de>
  4038. Release version 1.3.0.
  4039. * NEWS: add changes for 1.3.0.
  4040. * configure.ac: bump version number.
  4041. * libpam/Makefile.am: bump revision of libpam.so version.
  4042. 2016-04-28 Tomas Mraz <tmraz@fedoraproject.org>
  4043. Updated translations from Zanata.
  4044. * po/*.po: Updated translations from Zanata.
  4045. 2016-04-19 Tomas Mraz <tmraz@fedoraproject.org>
  4046. pam_wheel: Correct the documentation of the root_only option.
  4047. * modules/pam_wheel/pam_wheel.8.xml: Correct the documentation of the
  4048. root_only option.
  4049. pam_unix: Document that MD5 password hash is used to store old passwords.
  4050. modules/pam_unix/pam_unix.8.xml: Document that the MD5 password hash is used
  4051. to store the old passwords when remember option is set.
  4052. 2016-04-14 Tomas Mraz <tmraz@fedoraproject.org>
  4053. Project registered at Zanata (fedora.zanata.org) for translations.
  4054. * zanata.xml: Configuration file for zanata client.
  4055. * po/LINGUAS: Update languages as supported by Zanata.
  4056. * po/Linux-PAM.pot: Updated from sources.
  4057. * po/*.po: Updated from sources.
  4058. 2016-04-06 Tomas Mraz <tmraz@fedoraproject.org>
  4059. pam_unix: Use pam_get_authtok() instead of direct pam_prompt() calls.
  4060. We have to drop support for not_set_pass option which is not much useful
  4061. anyway. Instead we get proper support for authtok_type option.
  4062. * modules/pam_unix/pam_unix.8.xml: Removed not_set_pass option, added authtok_ty
  4063. pe
  4064. option.
  4065. * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Replace _unix_read_pas
  4066. sword()
  4067. call with equivalent pam_get_authtok() call.
  4068. * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Likewise and also drop
  4069. support for not_set_pass.
  4070. * modules/pam_unix/support.c (_unix_read_password): Remove.
  4071. * modules/pam_unix/support.h: Remove UNIX_NOT_SET_PASS add UNIX_AUTHTOK_TYPE.
  4072. 2016-04-06 Tomas Mraz <tmraz@fedoraproject.org>
  4073. pam_get_authtok(): Add authtok_type support to current password prompt.
  4074. * libpam/pam_get_authtok.c (pam_get_authtok_internal): When changing password,
  4075. use different prompt for current password allowing for authtok_type to be
  4076. displayed to the user.
  4077. 2016-04-04 Tomas Mraz <tmraz@fedoraproject.org>
  4078. pam_unix: Make password expiration messages more user-friendly.
  4079. * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Make password
  4080. expiration messages more user-friendly.
  4081. 2016-04-04 Thorsten Kukuk <kukuk@thkukuk.de>
  4082. innetgr may not be there so make sure that when innetgr is not present then we inform about it and not use it. [ticket#46]
  4083. * modules/pam_group/pam_group.c: ditto
  4084. * modules/pam_succeed_if/pam_succeed_if.c: ditto
  4085. * modules/pam_time/pam_time.c: ditto
  4086. build: fix build when crypt() is not part of crypt_libs [ticket#46]
  4087. * configure.ac: Don't set empty -l option in crypt check
  4088. build: use $host_cpu for lib64 directory handling [ticket#46]
  4089. * configure.ac: use $host_cpu for lib64 directory handling.
  4090. 2016-04-01 Dmitry V. Levin <ldv@altlinux.org>
  4091. Fix whitespace issues.
  4092. Remove blank lines at EOF introduced by commit
  4093. a684595c0bbd88df71285f43fb27630e3829121e,
  4094. making the project free of warnings reported by
  4095. git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD
  4096. * libpam/pam_dynamic.c: Remove blank line at EOF.
  4097. * modules/pam_echo/pam_echo.c: Likewise.
  4098. * modules/pam_keyinit/pam_keyinit.c: Likewise.
  4099. * modules/pam_mkhomedir/pam_mkhomedir.c: Likewise.
  4100. * modules/pam_pwhistory/pam_pwhistory.c: Likewise.
  4101. * modules/pam_rhosts/pam_rhosts.c: Likewise.
  4102. * modules/pam_sepermit/pam_sepermit.c: Likewise.
  4103. * modules/pam_stress/pam_stress.c: Likewise.
  4104. 2016-04-01 Thorsten Kukuk <kukuk@thkukuk.de>
  4105. Use TI-RPC functions if we compile and link against libtirpc. The old SunRPC functions don't work with IPv6.
  4106. * configure.ac: Set and restore CPPFLAGS
  4107. * modules/pam_unix/pam_unix_passwd.c: Replace getrpcport with
  4108. rpcb_getaddr if available.
  4109. 2016-03-29 Thorsten Kukuk <kukuk@thkukuk.de>
  4110. PAM_EXTERN isn't needed anymore, but don't remove it to not break lot of external code using it.
  4111. * libpam/include/security/pam_modules.h: Readd PAM_EXTERN for compatibility
  4112. Remove "--enable-static-modules" option and support from Linux-PAM. It was never official supported and was broken since years.
  4113. * configure.ac: Remove --enable-static-modules option.
  4114. * doc/man/pam_sm_acct_mgmt.3.xml: Remove PAM_EXTERN.
  4115. * doc/man/pam_sm_authenticate.3.xml: Likewise.
  4116. * doc/man/pam_sm_chauthtok.3.xml: Likewise.
  4117. * doc/man/pam_sm_close_session.3.xml: Likewise.
  4118. * doc/man/pam_sm_open_session.3.xml: Likewise.
  4119. * doc/man/pam_sm_setcred.3.xml: Likewise.
  4120. * libpam/Makefile.am: Remove STATIC_MODULES cases.
  4121. * libpam/include/security/pam_modules.h: Remove PAM_STATIC parts.
  4122. * libpam/pam_dynamic.c: Likewise.
  4123. * libpam/pam_handlers.c: Likewise.
  4124. * libpam/pam_private.h: Likewise.
  4125. * libpam/pam_static.c: Remove file.
  4126. * libpam/pam_static_modules.h: Remove header file.
  4127. * modules/pam_access/pam_access.c: Remove PAM_EXTERN and PAM_STATIC parts.
  4128. * modules/pam_cracklib/pam_cracklib.c: Likewise.
  4129. * modules/pam_debug/pam_debug.c: Likewise.
  4130. * modules/pam_deny/pam_deny.c: Likewise.
  4131. * modules/pam_echo/pam_echo.c: Likewise.
  4132. * modules/pam_env/pam_env.c: Likewise.
  4133. * modules/pam_exec/pam_exec.c: Likewise.
  4134. * modules/pam_faildelay/pam_faildelay.c: Likewise.
  4135. * modules/pam_filter/pam_filter.c: Likewise.
  4136. * modules/pam_ftp/pam_ftp.c: Likewise.
  4137. * modules/pam_group/pam_group.c: Likewise.
  4138. * modules/pam_issue/pam_issue.c: Likewise.
  4139. * modules/pam_keyinit/pam_keyinit.c: Likewise.
  4140. * modules/pam_lastlog/pam_lastlog.c: Likewise.
  4141. * modules/pam_limits/pam_limits.c: Likewise.
  4142. * modules/pam_listfile/pam_listfile.c: Likewise.
  4143. * modules/pam_localuser/pam_localuser.c: Likewise.
  4144. * modules/pam_loginuid/pam_loginuid.c: Likewise.
  4145. * modules/pam_mail/pam_mail.c: Likewise.
  4146. * modules/pam_mkhomedir/pam_mkhomedir.c: Likewise.
  4147. * modules/pam_motd/pam_motd.c: Likewise.
  4148. * modules/pam_namespace/pam_namespace.c: Likewise.
  4149. * modules/pam_nologin/pam_nologin.c: Likewise.
  4150. * modules/pam_permit/pam_permit.c: Likewise.
  4151. * modules/pam_pwhistory/pam_pwhistory.c: Likewise.
  4152. * modules/pam_rhosts/pam_rhosts.c: Likewise.
  4153. * modules/pam_rootok/pam_rootok.c: Likewise.
  4154. * modules/pam_securetty/pam_securetty.c: Likewise.
  4155. * modules/pam_selinux/pam_selinux.c: Likewise.
  4156. * modules/pam_sepermit/pam_sepermit.c: Likewise.
  4157. * modules/pam_shells/pam_shells.c: Likewise.
  4158. * modules/pam_stress/pam_stress.c: Likewise.
  4159. * modules/pam_succeed_if/pam_succeed_if.c: Likewise.
  4160. * modules/pam_tally/pam_tally.c: Likewise.
  4161. * modules/pam_tally2/pam_tally2.c: Likewise.
  4162. * modules/pam_time/pam_time.c: Likewise.
  4163. * modules/pam_timestamp/pam_timestamp.c: Likewise.
  4164. * modules/pam_tty_audit/pam_tty_audit.c: Likewise.
  4165. * modules/pam_umask/pam_umask.c: Likewise.
  4166. * modules/pam_userdb/pam_userdb.c: Likewise.
  4167. * modules/pam_warn/pam_warn.c: Likewise.
  4168. * modules/pam_wheel/pam_wheel.c: Likewise.
  4169. * modules/pam_xauth/pam_xauth.c: Likewise.
  4170. * modules/pam_unix/Makefile.am: Remove STATIC_MODULES part.
  4171. * modules/pam_unix/pam_unix_acct.c: Remove PAM_STATIC part.
  4172. * modules/pam_unix/pam_unix_auth.c: Likewise.
  4173. * modules/pam_unix/pam_unix_passwd.c: Likewise.
  4174. * modules/pam_unix/pam_unix_sess.c: Likewise.
  4175. * modules/pam_unix/pam_unix_static.c: Removed.
  4176. * modules/pam_unix/pam_unix_static.h: Removed.
  4177. * po/POTFILES.in: Remove removed files.
  4178. * tests/tst-dlopen.c: Remove PAM_STATIC part.
  4179. 2016-03-24 Thorsten Kukuk <kukuk@thkukuk.de>
  4180. Fix check for libtirpc and enhance check for libnsl to include new libnsl.
  4181. * configure.ac: fix setting of CFLAGS/LIBS, enhance libnsl check
  4182. * modules/pam_unix/Makefile.am: replace NIS_* with TIRPC_* and NSL_*
  4183. 2016-03-23 Thorsten Kukuk <kukuk@thkukuk.de>
  4184. Remove YP dependencies from pam_access, they were never used and such not needed.
  4185. * modules/pam_access/Makefile.am: Remove NIS_CFLAGS and NIS_LIBS
  4186. * modules/pam_access/pam_access.c: Remove yp_get_default_domain case,
  4187. it will never be used.
  4188. 2016-03-04 Tomas Mraz <tmraz@fedoraproject.org>
  4189. Add checks for localtime() returning NULL.
  4190. * modules/pam_lastlog/pam_lastlog.c (last_login_read): Check for localtime_r
  4191. returning NULL.
  4192. * modules/pam_tally2/pam_tally2.c (print_one): Check for localtime returning
  4193. NULL.
  4194. 2016-03-04 Tomas Mraz <tmraz@fedoraproject.org>
  4195. pam_unix: Silence warnings and fix a minor bug.
  4196. Fixes a minor bug in behavior when is_selinux_enabled()
  4197. returned negative value.
  4198. * modules/pam_unix/passverify.c: Add parentheses to SELINUX_ENABLED macro.
  4199. (unix_update_shadow): Safe cast forwho to non-const char *.
  4200. * modules/pam_unix/support.c: Remove unused SELINUX_ENABLED macro.
  4201. 2016-02-17 Tomas Mraz <tmraz@fedoraproject.org>
  4202. pam_env: Document the /etc/environment file.
  4203. * modules/pam_env/Makefile.am: Add the environment.5 soelim stub.
  4204. * modules/pam_env/pam_env.8.xml: Add environ(7) reference.
  4205. * modules/pam_env/pam_env.conf.5.xml: Add environment alias name.
  4206. Add a paragraph about /etc/environment. Add environ(7) reference.
  4207. pam_unix: Add no_pass_expiry option to ignore password expiration.
  4208. * modules/pam_unix/pam_unix.8.xml: Document the no_pass_expiry option.
  4209. * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): If no_pass_expiry
  4210. is on and return value data is not set to PAM_SUCCESS then ignore
  4211. PAM_NEW_AUTHTOK_REQD and PAM_AUTHTOK_EXPIRED returns.
  4212. * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Always set the
  4213. return value data.
  4214. (pam_sm_setcred): Test for likeauth option and use the return value data
  4215. only if set.
  4216. * modules/pam_unix/support.h: Add the no_pass_expiry option.
  4217. 2016-01-25 Tomas Mraz <tmraz@fedoraproject.org>
  4218. pam_unix: Change the salt length for new hashes to 16 characters.
  4219. * modules/pam_unix/passverify.c (create_password_hash): Change the
  4220. salt length for new hashes to 16 characters.
  4221. 2015-12-17 Tomas Mraz <tmraz@fedoraproject.org>
  4222. Relax the conditions for fatal failure on auditing.
  4223. The PAM library calls will not fail anymore for any uid if the return
  4224. value from the libaudit call is -EPERM.
  4225. * libpam/pam_audit.c (_pam_audit_writelog): Remove check for uid != 0.
  4226. 2015-12-16 Tomas Mraz <tmraz@fedoraproject.org>
  4227. pam_tally2: Optionally log the tally count when checking.
  4228. * modules/pam_tally2/pam_tally2.c (tally_parse_args): Add debug option.
  4229. (tally_check): Always log the tally count with debug option.
  4230. 2015-10-02 Jakub Hrozek <jakub.hrozek@posteo.se>
  4231. Docfix: pam handle is const in pam_syslog() and pam_vsyslog()
  4232. * doc/man/pam_syslog.3.xml: Add const to pam handle in pam_syslog() and pam_vsyslog().
  4233. 2015-09-24 Tomas Mraz <tmraz@fedoraproject.org>
  4234. pam_loginuid: Add syslog message if required auditd is not detected.
  4235. * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Add syslog message
  4236. if required auditd is not detected.
  4237. 2015-09-04 Tomas Mraz <tmraz@fedoraproject.org>
  4238. Allow links to be used instead of w3m for documentation regeneration.
  4239. * configure.ac: If w3m is not found check for links.
  4240. Add missing space in pam_misc_setenv man page.
  4241. * doc/man/pam_misc_setenv.3.xml: Add a missing space.
  4242. 2015-08-12 Tomas Mraz <tmraz@fedoraproject.org>
  4243. pam_rootok: use rootok permission instead of passwd permission in SELinux check.
  4244. * modules/pam_rootok/pam_rootok.c (selinux_check_root): Use rootok instead of
  4245. passwd permission.
  4246. 2015-08-05 Amarnath Valluri <amarnath.valluri@intel.com>
  4247. pam_timestamp: Avoid leaking file descriptor.
  4248. * modules/pam_timestamp/hmacsha1.c(hmac_key_create):
  4249. close 'keyfd' when failed to own it.
  4250. 2015-06-22 Thorsten Kukuk <kukuk@thkukuk.de>
  4251. Release version 1.2.1.
  4252. Security fix: CVE-2015-3238
  4253. If the process executing pam_sm_authenticate or pam_sm_chauthtok method
  4254. of pam_unix is not privileged enough to check the password, e.g.
  4255. if selinux is enabled, the _unix_run_helper_binary function is called.
  4256. When a long enough password is supplied (16 pages or more, i.e. 65536+
  4257. bytes on a system with 4K pages), this helper function hangs
  4258. indefinitely, blocked in the write(2) call while writing to a blocking
  4259. pipe that has a limited capacity.
  4260. With this fix, the verifiable password length will be limited to
  4261. PAM_MAX_RESP_SIZE bytes (i.e. 512 bytes) for pam_exec and pam_unix.
  4262. * NEWS: Update
  4263. * configure.ac: Bump version
  4264. * modules/pam_exec/pam_exec.8.xml: document limitation of password length
  4265. * modules/pam_exec/pam_exec.c: limit password length to PAM_MAX_RESP_SIZE
  4266. * modules/pam_unix/pam_unix.8.xml: document limitation of password length
  4267. * modules/pam_unix/pam_unix_passwd.c: limit password length
  4268. * modules/pam_unix/passverify.c: Likewise
  4269. * modules/pam_unix/passverify.h: Likewise
  4270. * modules/pam_unix/support.c: Likewise
  4271. 2015-04-27 Thorsten Kukuk <kukuk@thkukuk.de>
  4272. Update NEWS file.
  4273. Release version 1.2.0.
  4274. * NEWS: Update
  4275. * configure.ac: Bump version
  4276. * libpam/Makefile.am: Bump version of libpam
  4277. * libpam_misc/Makefile.am: Bump version of libpam_misc
  4278. * po/*: Regenerate po files
  4279. Fix some grammatical errors in documentation. Patch by Louis Sautier.
  4280. * doc/adg/Linux-PAM_ADG.xml: Fix gramatical errors.
  4281. * doc/man/pam.3.xml: Likewise.
  4282. * doc/man/pam_acct_mgmt.3.xml: Likewise.
  4283. * doc/man/pam_chauthtok.3.xml: Likewise.
  4284. * doc/man/pam_sm_chauthtok.3.xml: Likewise.
  4285. * modules/pam_limits/limits.conf.5.xml: Likewise.
  4286. * modules/pam_mail/pam_mail.8.xml: Likewise.
  4287. * modules/pam_rhosts/pam_rhosts.c: Likewise.
  4288. * modules/pam_shells/pam_shells.8.xml: Likewise.
  4289. * modules/pam_tally/pam_tally.8.xml: Likewise.
  4290. * modules/pam_tally2/pam_tally2.8.xml: Likewise.
  4291. * modules/pam_unix/pam_unix.8.xml: Likewise.
  4292. 2015-04-23 Thorsten Kukuk <kukuk@thkukuk.de>
  4293. Add "quiet" option to pam_unix to suppress informential info messages from session.
  4294. * modules/pam_unix/pam_unix.8.xml: Document new option.
  4295. * modules/pam_unix/support.h: Add quiet option.
  4296. * modules/pam_unix/pam_unix_sess.c: Don't print LOG_INFO messages if
  4297. 'quiet' option is set.
  4298. 2015-04-07 Tomas Mraz <tmraz@fedoraproject.org>
  4299. Use crypt_r if available in pam_userdb and in pam_unix.
  4300. * modules/pam_unix/passverify.c (create_password_hash): Call crypt_r()
  4301. instead of crypt() if available.
  4302. * modules/pam_userdb/pam_userdb.c (user_lookup): Call crypt_r()
  4303. instead of crypt() if available.
  4304. 2015-03-25 Thorsten Kukuk <kukuk@thkukuk.de>
  4305. Support alternative "vendor configuration" files as fallback to /etc (Ticket#34, patch from ay Sievers <kay@vrfy.org>)
  4306. * doc/man/pam.8.xml: document additonal config directory
  4307. * libpam/pam_handlers.c: add /usr/lib/pam.d as config file fallback directory
  4308. * libpam/pam_private.h: adjust defines
  4309. pam_env: expand @{HOME} and @{SHELL} and enhance documentation (Ticket#24 and #29)
  4310. * modules/pam_env/pam_env.c: Replace @{HOME} and @{SHELL} with passwd entries
  4311. * modules/pam_env/pam_env.conf.5.xml: Document @{HOME} and @{SHELL}
  4312. * modules/pam_env/pam_env.8.xml: Enhance documentation
  4313. 2015-03-24 Thorsten Kukuk <kukuk@thkukuk.de>
  4314. Clarify pam_access docs re PAM service names and X $DISPLAY value testing. (Ticket #39)
  4315. * modules/pam_access/access.conf.5.xml
  4316. * modules/pam_access/pam_access.8.xml
  4317. Don't use sudo directory, the timestamp format is different (Ticket#32)
  4318. * modules/pam_timestamp/pam_timestamp.c: Change default timestamp directory.
  4319. Enhance group.conf examples (Ticket#35)
  4320. * modules/pam_group/group.conf.5.xml: Enhance example by logic group entry.
  4321. Document timestampdir option (Ticket#33)
  4322. * modules/pam_timestamp/pam_timestamp.8.xml: Add timestampdir option.
  4323. Adjust documentation (Ticket#36)
  4324. * libpam/pam_delay.c: Change 25% in comment to 50% as used in code.
  4325. * doc/man/pam_fail_delay.3.xml: Change 25% to 50%
  4326. 2015-02-18 Tomas Mraz <tmraz@fedoraproject.org>
  4327. Updated translations from Transifex.
  4328. * po/*.po: Updated translations from Transifex.
  4329. 2015-01-07 Dmitry V. Levin <ldv@altlinux.org>
  4330. build: raise gettext version requirement.
  4331. Raise gettext requirement to the latest oldstable version 0.18.3.
  4332. This fixes the following automake warning:
  4333. configure.ac:581: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
  4334. configure.ac:581: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
  4335. configure.ac:581: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.
  4336. * configure.ac (AM_GNU_GETTEXT_VERSION): Raise from 0.15 to 0.18.3.
  4337. * po/Makevars: Update from gettext-0.18.3.
  4338. 2015-01-07 Ronny Chevalier <chevalier.ronny@gmail.com>
  4339. build: adjust automake warning flags.
  4340. Enable all automake warning flags except for the portability issues,
  4341. since non portable features are used among the makefiles.
  4342. * configure.ac (AM_INIT_AUTOMAKE): Add -Wall -Wno-portability.
  4343. 2015-01-07 Dmitry V. Levin <ldv@altlinux.org>
  4344. build: rename configure.in to configure.ac.
  4345. This fixes the following automake warning:
  4346. aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
  4347. * configure.in: Rename to configure.ac.
  4348. 2015-01-07 Dmitry V. Levin <ldv@altlinux.org>
  4349. Remove unmodified GNU gettext files installed by autopoint.
  4350. These files are part of GNU gettext; we have not modified them, they are
  4351. installed by autopoint which is called by autoreconf, so they had to be
  4352. removed from this repository along with ABOUT-NLS, config.rpath, and
  4353. mkinstalldirs files that were removed by commit
  4354. Linux-PAM-1_1_5-7-g542ec8b.
  4355. * po/Makefile.in.in: Remove.
  4356. * po/Rules-quot: Likewise.
  4357. * po/boldquot.sed: Likewise.
  4358. * po/en@boldquot.header: Likewise.
  4359. * po/en@quot.header: Likewise.
  4360. * po/insert-header.sin: Likewise.
  4361. * po/quot.sed: Likewise.
  4362. * po/remove-potcdate.sin: Likewise.
  4363. * po/.gitignore: Ignore these files.
  4364. 2015-01-06 Ronny Chevalier <chevalier.ronny@gmail.com>
  4365. Update .gitignore.
  4366. * .gitignore: Ignore *.log and *.trs files.
  4367. 2015-01-02 Luke Shumaker <lukeshu@sbcglobal.net>
  4368. libpam: Only print "Password change aborted" when it's true.
  4369. pam_get_authtok() may be used any time that a password needs to be entered,
  4370. unlike pam_get_authtok_{no,}verify(), which may only be used when
  4371. changing a password; yet when the user aborts, it prints "Password change
  4372. aborted." whether or not that was the operation being performed.
  4373. This bug was non-obvious because none of the modules distributed with
  4374. Linux-PAM use it for anything but changing passwords; pam_unix has its
  4375. own utility function that it uses instead. As an example, the
  4376. nss-pam-ldapd package uses it in pam_sm_authenticate().
  4377. libpam/pam_get_authtok.c (pam_get_authtok_internal): check that the
  4378. password is trying to be changed before printing a message about the
  4379. password change being aborted.
  4380. 2014-12-10 Dmitry V. Levin <ldv@altlinux.org>
  4381. build: extend cross compiling check to cover CPPFLAGS (ticket #21)
  4382. Use BUILD_CPPFLAGS variable to override CPPFLAGS where necessary in
  4383. case of cross compiling, in addition to CC_FOR_BUILD, BUILD_CFLAGS,
  4384. and BUILD_LDFLAGS variables introduced earlier to override CC,
  4385. CFLAGS, and LDFLAGS, respectively.
  4386. * configure.in (BUILD_CPPFLAGS): Define.
  4387. * doc/specs/Makefile.am (CPPFLAGS): Define to @BUILD_CPPFLAGS@.
  4388. 2014-12-09 Dmitry V. Levin <ldv@altlinux.org>
  4389. Do not use yywrap (ticket #42)
  4390. Our scanners do not really use yywrap. Explicitly disable yywrap
  4391. so that no references to yywrap will be generated and no LEXLIB
  4392. would be needed.
  4393. * conf/pam_conv1/Makefile.am (pam_conv1_LDADD): Remove.
  4394. * conf/pam_conv1/pam_conv_l.l: Enable noyywrap option.
  4395. * doc/specs/Makefile.am (padout_LDADD): Remove.
  4396. * doc/specs/parse_l.l: Enable noyywrap option.
  4397. 2014-12-09 Kyle Manna <kyle@kylemanna.com>
  4398. doc: fix a trivial typo in pam_authenticate return values (ticket #38)
  4399. * doc/man/pam_authenticate.3.xml: Fix a typo in PAM_AUTHINFO_UNAVAIL.
  4400. 2014-12-08 Ronny Chevalier <chevalier.ronny@gmail.com>
  4401. doc: fix typo in pam_authenticate.3.xml.
  4402. * doc/man/pam_authenticate.3.xml: Fix typo.
  4403. 2014-10-17 Tomas Mraz <tmraz@fedoraproject.org>
  4404. pam_succeed_if: Fix copy&paste error in rhost and tty values.
  4405. modules/pam_succeed_if/pam_succeed_if.c (evaluate): Use PAM_RHOST
  4406. and PAM_TTY properly for the rhost and tty values.
  4407. 2014-10-17 Tomas Mraz <tmraz@fedoraproject.org>
  4408. pam_succeed_if: Use long long type for numeric values.
  4409. The currently used long with additional conversion to int is
  4410. too small for uids and gids.
  4411. modules/pam_succeed_if/pam_succeed_if.c (evaluate_num): Replace
  4412. strtol() with strtoll() and int with long long in the parameters
  4413. of comparison functions.
  4414. 2014-09-05 Tomas Mraz <tmraz@fedoraproject.org>
  4415. Add grantor field to audit records of libpam.
  4416. The grantor field gives audit trail of PAM modules which granted access
  4417. for successful return from libpam calls. In case of failed return
  4418. the grantor field is set to '?'.
  4419. libpam/pam_account.c (pam_acct_mgmt): Remove _pam_auditlog() call.
  4420. libpam/pam_auth.c (pam_authenticate, pam_setcred): Likewise.
  4421. libpam/pam_password.c (pam_chauthtok): Likewise.
  4422. libpam/pam_session.c (pam_open_session, pam_close_session): Likewise.
  4423. libpam/pam_audit.c (_pam_audit_writelog): Add grantors parameter,
  4424. add grantor= field to the message if grantors is set.
  4425. (_pam_list_grantors): New function creating the string with grantors list.
  4426. (_pam_auditlog): Add struct handler pointer parameter, call _pam_list_grantors()
  4427. to list the grantors from the handler list.
  4428. (_pam_audit_end): Add NULL handler parameter to _pam_auditlog() call.
  4429. (pam_modutil_audit_write): Add NULL grantors parameter to _pam_audit_writelog().
  4430. libpam/pam_dispatch.c (_pam_dispatch_aux): Set h->grantor where appropriate.
  4431. (_pam_clear_grantors): New function to clear grantor field of handler.
  4432. (_pam_dispatch): Call _pam_clear_grantors() before executing the stack.
  4433. Call _pam_auditlog() when appropriate.
  4434. libpam/pam_handlers.c (extract_modulename): Do not allow empty module name
  4435. or just "?" to avoid confusing audit trail.
  4436. (_pam_add_handler): Test for NULL return from extract_modulename().
  4437. Clear grantor field of handler.
  4438. libpam/pam_private.h: Add grantor field to struct handler, add handler pointer
  4439. parameter to _pam_auditlog().
  4440. 2014-08-26 Tomas Mraz <tmraz@fedoraproject.org>
  4441. pam_mkhomedir: Drop superfluous stat() call.
  4442. modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Drop superfluous
  4443. stat() call.
  4444. pam_exec: Do not depend on open() returning STDOUT_FILENO.
  4445. modules/pam_exec/pam_exec.c (call_exec): Move the descriptor to
  4446. STDOUT_FILENO if needed.
  4447. 2014-08-25 Robin Hack <rhack@redhat.com>
  4448. pam_keyinit: Check return value of setregid.
  4449. modules/pam_keyinit/pam_keyinit.c (pam_sm_open_session): Log if setregid() fails.
  4450. pam_filter: Avoid leaking descriptors when fork() fails.
  4451. modules/pam_filter/pam_filter.c (set_filter): Close descriptors when fork() fails.
  4452. 2014-08-14 Robin Hack <rhack@redhat.com>
  4453. pam_echo: Avoid leaking file descriptor.
  4454. modules/pam_echo/pam_echo.c (pam_echo): Close fd in error cases.
  4455. 2014-08-13 Robin Hack <rhack@redhat.com>
  4456. pam_tty_audit: Silence Coverity reporting uninitialized use.
  4457. modules/pam_tty_audit/pam_tty_audit.c (nl_recv): Initialize also
  4458. msg_flags.
  4459. 2014-08-13 Tomas Mraz <tmraz@fedoraproject.org>
  4460. pam_tally2: Avoid uninitialized use of fileinfo.
  4461. Problem found by Robin Hack <rhack@redhat.com>.
  4462. modules/pam_tally2/pam_tally2.c (get_tally): Do not depend on file size
  4463. just try to read it.
  4464. pam_access: Avoid uninitialized access of line.
  4465. * modules/pam_access/pam_access.c (login_access): Reorder condition
  4466. so line is not accessed when uninitialized.
  4467. 2014-08-05 Tomas Mraz <tmraz@fedoraproject.org>
  4468. pam_lastlog: Properly clean up last_login structure before use.
  4469. modules/pam_lastlog/pam_lastlog.c (last_login_write): Properly clean up last_login
  4470. structure before use.
  4471. 2014-07-21 Tomas Mraz <tmraz@fedoraproject.org>
  4472. Make pam_pwhistory and pam_unix tolerant of corrupted opasswd file.
  4473. * modules/pam_pwhistory/opasswd.c (parse_entry): Test for missing fields
  4474. in opasswd entry and return error.
  4475. * modules/pam_unix/passverify.c (save_old_password): Test for missing fields
  4476. in opasswd entry and skip it.
  4477. 2014-06-30 Dmitry V. Levin <ldv@altlinux.org>
  4478. doc: add missing build dependencies for soelim stubs.
  4479. * doc/man/Makefile.am [ENABLE_REGENERATE_MAN]: Add dependencies for
  4480. pam_verror.3, pam_vinfo.3, pam_vprompt.3, and pam_vsyslog.3 soelim stubs.
  4481. 2014-06-23 Dmitry V. Levin <ldv@altlinux.org>
  4482. doc: fix install in case of out of tree build (ticket #31)
  4483. * doc/adg/Makefile.am (install-data-local, releasedocs): Fall back
  4484. to srcdir if documentation files haven't been found in builddir.
  4485. (releasedocs): Treat missing documentation files as an error.
  4486. * doc/mwg/Makefile.am: Likewise.
  4487. * doc/sag/Makefile.am: Likewise.
  4488. 2014-06-19 Dmitry V. Levin <ldv@altlinux.org>
  4489. doc: fix installation of adg-*.html and mwg-*.html files (ticket #31)
  4490. Fix a typo due to which sag-*.html files might be installed instead of
  4491. adg-*.html and mwg-*.html files.
  4492. * doc/adg/Makefile.am (install-data-local): Install adg-*.html instead
  4493. of sag-*.html.
  4494. * doc/mwg/Makefile.am (install-data-local): Install mwg-*.html instead
  4495. of sag-*.html.
  4496. Patch-by: Mike Frysinger <vapier@gentoo.org>
  4497. 2014-06-19 Tomas Mraz <tmraz@fedoraproject.org>
  4498. pam_limits: nofile refers to file descriptors not files.
  4499. modules/pam_limits/limits.conf.5.xml: Correct documentation of nofile limit.
  4500. modules/pam_limits/limits.conf: Likewise.
  4501. pam_limits: clarify documentation of maxlogins and maxsyslogins limits.
  4502. modules/pam_limits/limits.conf.5.xml: clarify documentation of
  4503. maxlogins and maxsyslogins limits.
  4504. pam_unix: Check for NULL return from Goodcrypt_md5().
  4505. modules/pam_unix/pam_unix_passwd.c (check_old_password): Check for
  4506. NULL return from Goodcrypt_md5().
  4507. pam_unix: check for NULL return from malloc()
  4508. * modules/pam_unix/md5_crypt.c (crypt_md5): Check for NULL return from malloc().
  4509. 2014-05-22 Tomas Mraz <tmraz@fedoraproject.org>
  4510. pam_loginuid: Document one more possible case of PAM_IGNORE return.
  4511. modules/pam_loginuid/pam_loginuid.8.xml: Document one more possible case
  4512. of PAM_IGNORE return value.
  4513. pam_loginuid: Document other possible return values.
  4514. modules/pam_loginuid/pam_loginuid.8.xml: Document the possible return
  4515. values.
  4516. 2014-03-26 Dmitry V. Levin <ldv@altlinux.org>
  4517. pam_timestamp: fix potential directory traversal issue (ticket #27)
  4518. pam_timestamp uses values of PAM_RUSER and PAM_TTY as components of
  4519. the timestamp pathname it creates, so extra care should be taken to
  4520. avoid potential directory traversal issues.
  4521. * modules/pam_timestamp/pam_timestamp.c (check_tty): Treat
  4522. "." and ".." tty values as invalid.
  4523. (get_ruser): Treat "." and ".." ruser values, as well as any ruser
  4524. value containing '/', as invalid.
  4525. Fixes CVE-2014-2583.
  4526. Reported-by: Sebastian Krahmer <krahmer@suse.de>
  4527. 2014-03-20 Tomas Mraz <tmraz@fedoraproject.org>
  4528. pam_userdb: document that .db suffix should not be used.
  4529. modules/pam_userdb/pam_userdb.8.xml: Document that .db suffix
  4530. should not be used and correct the example.
  4531. 2014-03-11 Tomas Mraz <tmraz@fedoraproject.org>
  4532. pam_selinux: canonicalize user name.
  4533. SELinux expects canonical user name for example without domain component.
  4534. * modules/pam_selinux/pam_selinux.c (compute_exec_context): Canonicalize user name with pam_modutil_getpwnam().
  4535. 2014-01-28 Dmitry V. Levin <ldv@altlinux.org>
  4536. Change tarball name back to "Linux-PAM"
  4537. As a side effect of commit Linux-PAM-1_1_8-11-g3fa23ce, tarball name
  4538. changed accidentally from "Linux-PAM" to "linux-pam".
  4539. This change brings it back to "Linux-PAM".
  4540. * configure.in (AC_INIT): Explicitly specify TARNAME argument.
  4541. 2014-01-27 Dmitry V. Levin <ldv@altlinux.org>
  4542. Introduce pam_modutil_sanitize_helper_fds.
  4543. This change introduces pam_modutil_sanitize_helper_fds - a new function
  4544. that redirects standard descriptors and closes all other descriptors.
  4545. pam_modutil_sanitize_helper_fds supports three types of input and output
  4546. redirection:
  4547. - PAM_MODUTIL_IGNORE_FD: do not redirect at all.
  4548. - PAM_MODUTIL_PIPE_FD: redirect to a pipe. For stdin, it is implemented
  4549. by creating a pipe, closing its write end, and redirecting stdin to
  4550. its read end. Likewise, for stdout/stderr it is implemented by
  4551. creating a pipe, closing its read end, and redirecting to its write
  4552. end. Unlike stdin redirection, stdout/stderr redirection to a pipe
  4553. has a side effect that a process writing to such descriptor should be
  4554. prepared to handle SIGPIPE appropriately.
  4555. - PAM_MODUTIL_NULL_FD: redirect to /dev/null. For stdin, it is
  4556. implemented via PAM_MODUTIL_PIPE_FD because there is no functional
  4557. difference. For stdout/stderr, it is classic redirection to
  4558. /dev/null.
  4559. PAM_MODUTIL_PIPE_FD is usually more suitable due to linux kernel
  4560. security restrictions, but when the helper process might be writing to
  4561. the corresponding descriptor and termination of the helper process by
  4562. SIGPIPE is not desirable, one should choose PAM_MODUTIL_NULL_FD.
  4563. * libpam/pam_modutil_sanitize.c: New file.
  4564. * libpam/Makefile.am (libpam_la_SOURCES): Add it.
  4565. * libpam/include/security/pam_modutil.h (pam_modutil_redirect_fd,
  4566. pam_modutil_sanitize_helper_fds): New declarations.
  4567. * libpam/libpam.map (LIBPAM_MODUTIL_1.1.9): New interface.
  4568. * modules/pam_exec/pam_exec.c (call_exec): Use
  4569. pam_modutil_sanitize_helper_fds.
  4570. * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Likewise.
  4571. * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Likewise.
  4572. * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary):
  4573. Likewise.
  4574. * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise.
  4575. * modules/pam_xauth/pam_xauth.c (run_coprocess): Likewise.
  4576. * modules/pam_unix/support.h (MAX_FD_NO): Remove.
  4577. 2014-01-27 Dmitry V. Levin <ldv@altlinux.org>
  4578. pam_xauth: avoid potential SIGPIPE when writing to xauth process.
  4579. Similar issue in pam_unix was fixed by commit Linux-PAM-0-73~8.
  4580. * modules/pam_xauth/pam_xauth.c (run_coprocess): In the parent process,
  4581. close the read end of input pipe after writing to its write end.
  4582. 2014-01-27 Dmitry V. Levin <ldv@altlinux.org>
  4583. pam_loginuid: log significant loginuid write errors.
  4584. * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Log those errors
  4585. during /proc/self/loginuid update that are not ignored.
  4586. 2014-01-27 Dmitry V. Levin <ldv@altlinux.org>
  4587. Fix gratuitous use of strdup and x_strdup.
  4588. There is no need to copy strings passed as arguments to execve,
  4589. the only potentially noticeable effect of using strdup/x_strdup
  4590. would be a malformed argument list in case of memory allocation error.
  4591. Also, x_strdup, being a thin wrapper around strdup, is of no benefit
  4592. when its argument is known to be non-NULL, and should not be used in
  4593. such cases.
  4594. * modules/pam_cracklib/pam_cracklib.c (password_check): Use strdup
  4595. instead of x_strdup, the latter is of no benefit in this case.
  4596. * modules/pam_ftp/pam_ftp.c (lookup): Likewise.
  4597. * modules/pam_userdb/pam_userdb.c (user_lookup): Likewise.
  4598. * modules/pam_userdb/pam_userdb.h (x_strdup): Remove.
  4599. * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Do not use
  4600. x_strdup for strings passed as arguments to execve.
  4601. * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Likewise.
  4602. * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): Likewise.
  4603. * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise.
  4604. (_unix_verify_password): Use strdup instead of x_strdup, the latter
  4605. is of no benefit in this case.
  4606. * modules/pam_xauth/pam_xauth.c (run_coprocess): Do not use strdup for
  4607. strings passed as arguments to execv.
  4608. 2014-01-27 Dmitry V. Levin <ldv@altlinux.org>
  4609. pam_userdb: fix password hash comparison.
  4610. Starting with commit Linux-PAM-0-77-28-g0b3e583 that introduced hashed
  4611. passwords support in pam_userdb, hashes are compared case-insensitively.
  4612. This bug leads to accepting hashes for completely different passwords in
  4613. addition to those that should be accepted.
  4614. Additionally, commit Linux-PAM-1_1_6-13-ge2a8187 that added support for
  4615. modern password hashes with different lengths and settings, did not
  4616. update the hash comparison accordingly, which leads to accepting
  4617. computed hashes longer than stored hashes when the latter is a prefix
  4618. of the former.
  4619. * modules/pam_userdb/pam_userdb.c (user_lookup): Reject the computed
  4620. hash whose length differs from the stored hash length.
  4621. Compare computed and stored hashes case-sensitively.
  4622. Fixes CVE-2013-7041.
  4623. Bug-Debian: http://bugs.debian.org/731368
  4624. 2014-01-24 Dmitry V. Levin <ldv@altlinux.org>
  4625. pam_xauth: log fatal errors preventing xauth process execution.
  4626. * modules/pam_xauth/pam_xauth.c (run_coprocess): Log errors from pipe()
  4627. and fork() calls.
  4628. 2014-01-22 Dmitry V. Levin <ldv@altlinux.org>
  4629. pam_loginuid: cleanup loginuid buffer initialization.
  4630. * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Move loginuid
  4631. buffer initialization closer to its first use.
  4632. 2014-01-22 Dmitry V. Levin <ldv@altlinux.org>
  4633. libpam_misc: fix an inconsistency in handling memory allocation errors.
  4634. When misc_conv fails to allocate memory for pam_response array, it
  4635. returns PAM_CONV_ERR. However, when read_string fails to allocate
  4636. memory for a response string, it loses the response string and silently
  4637. ignores the error, with net result as if EOF has been read.
  4638. * libpam_misc/misc_conv.c (read_string): Use strdup instead of x_strdup,
  4639. the latter is of no benefit in this case.
  4640. Do not ignore potential memory allocation errors returned by strdup,
  4641. forward them to misc_conv.
  4642. 2014-01-20 Dmitry V. Levin <ldv@altlinux.org>
  4643. pam_limits: fix utmp->ut_user handling.
  4644. ut_user member of struct utmp is a string that is not necessarily
  4645. null-terminated, so extra care should be taken when using it.
  4646. * modules/pam_limits/pam_limits.c (check_logins): Convert ut->UT_USER to
  4647. a null-terminated string and consistently use it where a null-terminated
  4648. string is expected.
  4649. 2014-01-20 Dmitry V. Levin <ldv@altlinux.org>
  4650. pam_mkhomedir: check and create home directory for the same user (ticket #22)
  4651. Before pam_mkhomedir helper was introduced in commit
  4652. 7b14630ef39e71f603aeca0c47edf2f384717176, pam_mkhomedir was checking for
  4653. existance and creating the same directory - the home directory of the
  4654. user NAME returned by pam_get_item(PAM_USER).
  4655. The change in behaviour accidentally introduced along with
  4656. mkhomedir_helper is not consistent: while the module still checks for
  4657. getpwnam(NAME)->pw_dir, the directory created by mkhomedir_helper is
  4658. getpwnam(getpwnam(NAME)->pw_name)->pw_dir, which is not necessarily
  4659. the same as the directory being checked.
  4660. This change brings check and creation back in sync, both handling
  4661. getpwnam(NAME)->pw_dir.
  4662. * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Replace
  4663. "struct passwd *" argument with user's name and home directory.
  4664. Pass user's name to MKHOMEDIR_HELPER.
  4665. (pam_sm_open_session): Update create_homedir call.
  4666. 2014-01-20 Tomas Mraz <tmraz@fedoraproject.org>
  4667. pam_limits: detect and ignore stale utmp entries.
  4668. Original idea by Christopher Hailey
  4669. * modules/pam_limits/pam_limits.c (check_logins): Use kill() to
  4670. detect if pid of the utmp entry is still running and ignore the entry
  4671. if it is not.
  4672. 2014-01-19 Stéphane Graber <stgraber@ubuntu.com>
  4673. pam_loginuid: Always return PAM_IGNORE in userns.
  4674. The previous patch to support user namespaces works fine with containers
  4675. that are started from a desktop/terminal session but fails when dealing
  4676. with containers that were started from a remote session such as ssh.
  4677. I haven't looked at the exact reason for that in the kernel but on the
  4678. userspace side of things, the difference is that containers started from
  4679. an ssh session will happily let pam open /proc/self/loginuid read-write,
  4680. will let it read its content but will then fail with EPERM when trying
  4681. to write to it.
  4682. So to make the userns support bullet proof, this commit moves the userns
  4683. check earlier in the function (which means a small performance impact as
  4684. it'll now happen everytime on kernels that have userns support) and will
  4685. set rc = PAM_IGNORE instead of rc = PAM_ERROR.
  4686. The rest of the code is still executed in the event that PAM is run on a
  4687. future kernel where we have some kind of audit namespace that includes a
  4688. working loginuid.
  4689. 2014-01-15 Steve Langasek <vorlon@debian.org>
  4690. pam_namespace: don't use bashisms in default namespace.init script.
  4691. * modules/pam_namespace/pam_namespace.c: call setuid() before execing the
  4692. namespace init script, so that scripts run with maximum privilege regardless
  4693. of the shell implementation.
  4694. * modules/pam_namespace/namespace.init: drop the '-p' bashism from the
  4695. shebang line
  4696. This is not a POSIX standard option, it's a bashism. The bash manpage says
  4697. that it's used to prevent the effective user id from being reset to the real
  4698. user id on startup, and to ignore certain unsafe variables from the
  4699. environment.
  4700. In the case of pam_namespace, the -p is not necessary for environment
  4701. sanitizing because the PAM module (properly) sanitizes the environment
  4702. before execing the script.
  4703. The stated reason given in CVS history for passing -p is to "preserve euid
  4704. when called from setuid apps (su, newrole)." This should be done more
  4705. portably, by calling setuid() before spawning the shell.
  4706. Bug-Debian: http://bugs.debian.org/624842
  4707. Bug-Ubuntu: https://bugs.launchpad.net/bugs/1081323
  4708. 2014-01-10 Stéphane Graber <stgraber@ubuntu.com>
  4709. pam_loginuid: Ignore failure in user namespaces.
  4710. When running pam_loginuid in a container using the user namespaces, even
  4711. uid 0 isn't allowed to set the loginuid property.
  4712. This change catches the EACCES from opening loginuid, checks if the user
  4713. is in the host namespace (by comparing the uid_map with the host's one)
  4714. and only if that's the case, sets rc to 1.
  4715. Should uid_map not exist or be unreadable for some reason, it'll be
  4716. assumed that the process is running on the host's namespace.
  4717. The initial reason behind this change was failure to ssh into an
  4718. unprivileged container (using a 3.13 kernel and current LXC) when using
  4719. a standard pam profile for sshd (which requires success from
  4720. pam_loginuid).
  4721. I believe this solution doesn't have any drawback and will allow people
  4722. to use unprivileged containers normally. An alternative would be to have
  4723. all distros set pam_loginuid as optional but that'd be bad for any of
  4724. the other potential failure case which people may care about.
  4725. There has also been some discussions to get some of the audit features
  4726. tied with the user namespaces but currently none of that has been merged
  4727. upstream and the currently proposed implementation doesn't cover
  4728. loginuid (nor is it clear how this should even work when loginuid is set
  4729. as immutable after initial write).
  4730. 2014-01-10 Dmitry V. Levin <ldv@altlinux.org>
  4731. pam_loginuid: return PAM_IGNORE when /proc/self/loginuid does not exist.
  4732. When /proc/self/loginuid does not exist, return PAM_IGNORE instead of
  4733. PAM_SUCCESS, so that we can distinguish between "loginuid set
  4734. successfully" and "loginuid not set, but this is expected".
  4735. Suggested by Steve Langasek.
  4736. * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Change return
  4737. code semantics: return PAM_SUCCESS on success, PAM_IGNORE when loginuid
  4738. does not exist, PAM_SESSION_ERR in case of any other error.
  4739. (_pam_loginuid): Forward the PAM error code returned by set_loginuid.
  4740. 2013-11-20 Dmitry V. Levin <ldv@altlinux.org>
  4741. pam_access: fix debug level logging (ticket #19)
  4742. * modules/pam_access/pam_access.c (group_match): Log the group token
  4743. passed to the function, not an uninitialized data on the stack.
  4744. pam_warn: log flags passed to the module (ticket #25)
  4745. * modules/pam_warn/pam_warn.c (log_items): Take "flags" argument and
  4746. log it using pam_syslog.
  4747. (pam_sm_authenticate, pam_sm_setcred, pam_sm_chauthtok,
  4748. pam_sm_acct_mgmt, pam_sm_open_session, pam_sm_close_session): Pass
  4749. "flags" argument to log_items.
  4750. 2013-11-20 Dmitry V. Levin <ldv@altlinux.org>
  4751. Modernize AM_INIT_AUTOMAKE invocation.
  4752. Before this change, automake complained that two- and three-arguments
  4753. forms of AM_INIT_AUTOMAKE are deprecated.
  4754. * configure.in: Pass PACKAGE and VERSION arguments to AC_INIT instead
  4755. of AM_INIT_AUTOMAKE.
  4756. 2013-11-20 Dmitry V. Levin <ldv@altlinux.org>
  4757. Fix autoconf warnings.
  4758. Before this change, autoconf complained that AC_COMPILE_IFELSE
  4759. and AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS.
  4760. * configure.in: Call AC_USE_SYSTEM_EXTENSIONS before LT_INIT.
  4761. 2013-11-20 Dmitry V. Levin <ldv@altlinux.org>
  4762. pam_securetty: check return value of fgets.
  4763. Checking return value of fgets not only silences the warning from glibc
  4764. but also leads to a cleaner code.
  4765. * modules/pam_securetty/pam_securetty.c (securetty_perform_check):
  4766. Check return value of fgets.
  4767. 2013-11-20 Dmitry V. Levin <ldv@altlinux.org>
  4768. pam_lastlog: fix format string.
  4769. gcc -Wformat justly complains:
  4770. format '%d' expects argument of type 'int', but argument 5 has type 'time_t'
  4771. * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Fix format
  4772. string.
  4773. 2013-11-20 Darren Tucker <dtucker@zip.com.au>
  4774. If the correct loginuid is set already, skip writing it.
  4775. modules/pam_loginuid/pam_loginuid.c (set_loginuid): Read the current loginuid
  4776. and skip writing if already correctly set.
  4777. 2013-11-11 Thorsten Kukuk <kukuk@thkukuk.de>
  4778. Always ask for old password if changing NIS account.
  4779. * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): ask
  4780. for old password if NIS account.
  4781. 2013-11-08 Thorsten Kukuk <kukuk@thkukuk.de>
  4782. Allow DES as compatibility option for /etc/login.defs.
  4783. * modules/pam_unix/support.h: Add UNIX_DES
  4784. 2013-10-14 Tomas Mraz <tmraz@fedoraproject.org>
  4785. Docfix: pam_prompt() and pam_vprompt() return int.
  4786. doc/man/pam_prompt.3.xml: pam_prompt() and pam_vprompt() return int.
  4787. Make pam_tty_audit work with old kernels not supporting log_passwd.
  4788. modules/pam_tty_audit/pam_tty_audit.c(nl_recv): Pad result with zeros
  4789. if message is short from older kernel.
  4790. 2013-09-25 Tomas Mraz <tmraz@fedoraproject.org>
  4791. Fix pam_tty_audit log_passwd support and regression.
  4792. modules/pam_tty_audit/pam_tty_audit.c: Add missing "config.h" include.
  4793. (pam_sm_open_session): Always copy the old status as initialization of new.
  4794. 2013-09-19 Thorsten Kukuk <kukuk@thkukuk.de>
  4795. Release version 1.1.8.
  4796. 2013-09-16 Thorsten Kukuk <kukuk@thkukuk.de>
  4797. Check return value of setuid to remove glibc warnings.
  4798. * modules/pam_unix/pam_unix_acct.c: Check setuid return value.
  4799. * modules/pam_unix/support.c: Likewise.
  4800. 2013-09-13 Tomas Mraz <tmraz@fedoraproject.org>
  4801. Write to *rounds only if non-NULL.
  4802. modules/pam_unix/support.c(_set_ctrl): Write to *rounds only if non-NULL.
  4803. Add missing ')'
  4804. modules/pam_unix/pam_unix_passwd.c: Add missing ')'..
  4805. 2013-09-11 Thorsten Kukuk <kukuk@thkukuk.de>
  4806. Release version 1.1.7.
  4807. 2013-09-11 Tomas Mraz <tmraz@fedoraproject.org>
  4808. Updated translations from Transifex.
  4809. po/*.po: Updated translations from Transifex.
  4810. 2013-09-04 Thorsten Kukuk <kukuk@thkukuk.de>
  4811. Extend pam_exec by stdout and type= options (ticket #8):
  4812. * modules/pam_exec/pam_exec.c: Add stdout and type= option
  4813. * modules/pam_exec/pam_exec.8.xml: Document new options
  4814. 2013-08-30 Thorsten Kukuk <kukuk@thkukuk.de>
  4815. Fix compile error.
  4816. * modules/pam_unix/pam_unix_acct.c: fix last change
  4817. 2013-08-29 Thorsten Kukuk <kukuk@thkukuk.de>
  4818. Restart waitpid if it returns with EINTR (ticket #17)
  4819. * modules/pam_unix/pam_unix_acct.c: run waitpid in a while loop.
  4820. * modules/pam_unix/pam_unix_passwd.c: Likewise.
  4821. * modules/pam_unix/support.c: Likewise.
  4822. 2013-08-28 Thorsten Kukuk <kukuk@thkukuk.de>
  4823. misc_conv.3: Fix documentation of misc_conv.
  4824. doc/man/misc_conv.3.xml: Fix return value of misc_conv
  4825. 2013-08-23 Tomas Mraz <tmraz@fedoraproject.org>
  4826. Apply the exclusive check in pam_sepermit only when loginuid not set.
  4827. * modules/pam_sepermit/pam_sepermit.c(get_loginuid): Read loginuid from
  4828. /proc
  4829. (sepermit_match): Apply the exclusive check only when loginuid not set.
  4830. 2013-08-22 Tomas Mraz <tmraz@fedoraproject.org>
  4831. Updated translations from Transifex.
  4832. * po/*.po: Updated translations from Transifex.
  4833. 2013-07-01 Dmitry V. Levin <ldv@altlinux.org>
  4834. pam_rootok: fix linking in --enable-audit mode.
  4835. pam_rootok.c explicitly uses functions from libaudit, so the module has
  4836. to be linked with the library.
  4837. * modules/pam_rootok/Makefile.am (pam_rootok_la_LIBADD): Add @LIBAUDIT@.
  4838. 2013-07-01 Richard Guy Briggs <rgb@redhat.com>
  4839. pam_tty_audit: fix a typo that crept in during patch review.
  4840. * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Replace
  4841. all occurrences of HAVE_AUDIT_TTY_STATUS_LOG_PASSWD with
  4842. HAVE_STRUCT_AUDIT_TTY_STATUS_LOG_PASSWD.
  4843. * configure.in (HAVE_AUDIT_TTY_STATUS_LOG_PASSWD): Remove.
  4844. 2013-06-21 Richard Guy Briggs <rgb@redhat.com>
  4845. pam_tty_audit: add an option to control logging of passwords: log_passwd
  4846. Most commands are entered one line at a time and processed as complete lines
  4847. in non-canonical mode. Commands that interactively require a password, enter
  4848. canonical mode with echo set to off to do this. This feature (icanon and
  4849. !echo) can be used to avoid logging passwords by audit while still logging the
  4850. rest of the command. Adding a member to the struct audit_tty_status passed in
  4851. by pam_tty_audit allows control of logging passwords per task.
  4852. * configure.in: autoconf bits to conditionally add support at compile time
  4853. depending on struct audit_tty_status kernel header version.
  4854. * modules/pam_tty_audit/pam_tty_audit.8.xml: Document new pam_tty_audit module
  4855. log_passwd option.
  4856. * modules/pam_tty_audit/pam_tty_audit.c: (pam_sm_open_session): Added
  4857. "log_passwd" option parsing.
  4858. 2013-06-20 Tomas Mraz <tmraz@fedoraproject.org>
  4859. Man page fix - unix_update runs in the permissive mode as well.
  4860. modules/pam_unix/unix_update.8.xml: unix_update helper runs in the
  4861. permissive mode as well.
  4862. 2013-06-18 Thorsten Kukuk <kukuk@orinoco.thkukuk.de>
  4863. Use hash from /etc/login.defs as default if no other one is specified as argument.
  4864. * modules/pam_unix/support.c: Add search_key, call from __set_ctrl
  4865. * modules/pam_unix/support.h: Add define for /etc/login.defs
  4866. * modules/pam_unix/pam_unix.8.xml: Document new behavior.
  4867. * modules/pam_umask/pam_umask.c: Add missing NULL pointer check
  4868. 2013-04-12 Tomas Mraz <tmraz@fedoraproject.org>
  4869. pam_access: better not change the default function used to get domain name.
  4870. modules/pam_access/pam_access.c (netgroup_match): As we did not use
  4871. yp_get_default_domain() in the 1.1 branch due to typo in ifdef
  4872. we should use it only as fallback.
  4873. 2013-03-28 Tomas Mraz <tmraz@fedoraproject.org>
  4874. Fix strict aliasing issue in MD5 implementations.
  4875. modules/pam_namespace/md5.c (MD5Final): Use memcpy instead of assignment.
  4876. modules/pam_unix/md5.c (MD5Final): Use memcpy instead of assignment.
  4877. 2013-03-22 Tomas Mraz <tmraz@fedoraproject.org>
  4878. pam_lastlog: Do not fail on short read if btmp is corrupted.
  4879. modules/pam_lastlog/pam_lastlog.c (last_login_failed): Just warn, not fail
  4880. on short read or read error.
  4881. pam_rootok: Allow proper logging of the user AVC if access disallowed by SELinux
  4882. modules/pam_rootok/pam_rootok.c (log_callback, selinux_check_root): New functions.
  4883. (check_for_root): Use the selinux_check_root() instead of checkPasswdAccess.
  4884. 2013-02-08 Tomas Mraz <tmraz@fedoraproject.org>
  4885. Add checks for crypt() returning NULL.
  4886. modules/pam_pwhistory/opasswd.c (compare_password): Add check for crypt() NULL return.
  4887. modules/pam_unix/bigcrypt.c (bigcrypt): Likewise.
  4888. 2013-02-07 Tomas Mraz <tmraz@fedoraproject.org>
  4889. pam_userdb: Allow also modern password hashes supported by crypt().
  4890. modules/pam_userdb/pam_userdb.c (user_lookup): Allow password hashes
  4891. longer than 13 characters and long salt.
  4892. 2013-01-18 Walter de Jong <walter.dejong@surfsara.nl>
  4893. pam_access: fix typo in ifdef.
  4894. modules/pam_access/pam_access.c (netgroup_match): Fix typo
  4895. in #ifdef HAVE_YP_GET_DEFAULT_DOMAIN.
  4896. 2012-12-20 Tomas Mraz <tmraz@fedoraproject.org>
  4897. pam_cracklib: Mention checks that are not run for root.
  4898. modules/pam_cracklib/pam_cracklib.8.xml: Add note about checks
  4899. when run as root.
  4900. Update also the POT file.
  4901. po/Linux-PAM.pot: Update to reflect current sources.
  4902. 2012-12-12 Tomas Mraz <tmraz@fedoraproject.org>
  4903. Updated translations from Transifex, added new languages.
  4904. po/LINGUAS: Added new languages.
  4905. po/*.po: Updated translations from Transifex including new languages.
  4906. 2012-11-30 Tomas Mraz <tmraz@fedoraproject.org>
  4907. pam_selinux: Drop obsolete and unsupported manual context selection.
  4908. modules/pam_selinux/pam_selinux.c (manual_context): Drop function.
  4909. (compute_exec_context): Drop manual_context() call.
  4910. 2012-11-23 Tomas Mraz <tmraz@fedoraproject.org>
  4911. pam_limits: fix grammatical mistake.
  4912. modules/pam_limits/limits.conf: Fix grammatical mistake.
  4913. 2012-11-13 Tomas Mraz <tmraz@fedoraproject.org>
  4914. Reflect the enforce_for_root semantics change in pam_pwhistory xtest.
  4915. xtests/tst-pam_pwhistory1.pamd: Use enforce_for_root as the test is
  4916. running with real uid == 0.
  4917. 2012-10-10 Dmitry V. Levin <ldv@altlinux.org>
  4918. pam_unix: fix build in --enable-selinux mode.
  4919. glibc's <sys/wait.h> starting with commit
  4920. http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=glibc-2.15-231-gd94a467
  4921. does not include <sys/resource.h> for POSIX 2008 conformance reasons, so
  4922. when pam is being built with SELinux support enabled, pam_unix_passwd.c
  4923. uses getrlimit(2) and therefore should include <sys/resource.h> without
  4924. relying on other headers.
  4925. * modules/pam_unix/pam_unix_passwd.c: Include <sys/resource.h>.
  4926. Reported-by: Guido Trentalancia <guido@trentalancia.com>
  4927. Reported-by: "Jory A. Pratt" <anarchy@gentoo.org>
  4928. Reported-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
  4929. 2012-10-10 Tomas Mraz <tmraz@fedoraproject.org>
  4930. pam_namespace: add mntopts flag for tmpfs mount options.
  4931. modules/pam_namespace/pam_namespace.h: Add mount_opts member to polydir
  4932. structure.
  4933. modules/pam_namespace/pam_namespace.c (del_polydir): Free the mount_opts.
  4934. (parse_method): Parse the mntopts flag.
  4935. (ns_setup): Pass the mount_opts to mount().
  4936. modules/pam_namespace/namespace.conf.5.xml: Document the mntopts flag.
  4937. 2012-09-06 Tomas Mraz <tmraz@fedoraproject.org>
  4938. pam_selinux, pam_tally2: Add tty and rhost to audit data.
  4939. modules/pam_selinux/pam_selinux.c (send_audit_message): Obtain tty and
  4940. rhost from PAM items and pass them to audit.
  4941. modules/pam_tally2/pam_tally2.c (tally_check): Obtain tty and
  4942. rhost from PAM items and pass them to audit.
  4943. (main): Obtain tty name of stdin and pass it to audit.
  4944. Update configure.in to use more recent interfaces.
  4945. configure.in: Use LT_INIT instead of AC_PROG_LIBTOOL and AS_HELP_STRING instead
  4946. of AC_HELP_STRING.
  4947. 2012-08-17 Tomas Mraz <tmraz@fedoraproject.org>
  4948. Add missing $(DESTDIR) when making directories on install.
  4949. modules/pam_namespace/Makefile.am: Add missing $(DESTDIR) when making
  4950. $(namespaceddir) on install.
  4951. modules/pam_sepermit/Makefile.am: Add missing $(DESTDIR) when making
  4952. $(sepermitlockdir) on install.
  4953. 2012-08-17 Thorsten Kukuk <kukuk@orinoco.thkukuk.de>
  4954. release version 1.1.6.
  4955. configure.in: Bump version to 1.1.6
  4956. NEWS: Document changes
  4957. po/*.po: Regenerate *.po files
  4958. 2012-08-16 Thorsten Kukuk <kukuk@thkukuk.de>
  4959. Small documentation and define fixes.
  4960. modules/pam_limits/limits.conf.5.xml: Document race of maxlogins [#10]
  4961. modules/pam_namespace/pam_namespace.h: Define MS_SLAVE if necessary
  4962. modules/pam_pwhistory/pam_pwhistory.c: Document how the module works
  4963. modules/pam_unix/pam_unix.8.xml: Document remember option obsoleted by pam_pwhistory [#6]
  4964. 2012-08-13 Tomas Mraz <tmraz@fedoraproject.org>
  4965. Respect PAM_AUTHTOK_TYPE in pam_get_authtok_verify().
  4966. libpam/pam_get_authtok.c (pam_get_authtok_internal): Set the PAM_AUTHTOK_TYPE
  4967. item when obtained from module options.
  4968. (pam_get_authtok_verify): Use the PAM_AUTHTOK_TYPE item when prompting.
  4969. 2012-08-09 Tomas Mraz <tmraz@fedoraproject.org>
  4970. Document limits.d also in the limits.conf manpage.
  4971. modules/pam_limits/limits.conf.5.xml: Document the limits.d existence.
  4972. 2012-07-23 Tomas Mraz <tmraz@fedoraproject.org>
  4973. New autotools do not create empty directories on install.
  4974. modules/pam_namespace/Makefile.am: Add install-data-local target to create
  4975. namespaceddir.
  4976. modules/pam_sepermit/Makefile.am: Add install-data-local target to create
  4977. sepermitlockdir.
  4978. 2012-07-09 Stevan Bajić <stevan@bajic.ch>
  4979. RLIMIT_* variables are no longer defined unless you explicitly include sys/resource.h.
  4980. modules/pam_unix/pam_unix_acct.c: Include sys/resource.h.
  4981. 2012-06-27 Tomas Mraz <tmraz@fedoraproject.org>
  4982. pam_umask: correct the documentation of GECOS field parsing.
  4983. modules/pam_umask/pam_umask.8.xml: Correct the documentation of GECOS field
  4984. parsing.
  4985. 2012-06-22 Tomas Mraz <tmraz@fedoraproject.org>
  4986. pam_cracklib: Add monotonic character sequence checking.
  4987. modules/pam_cracklib/pam_cracklib.c (_pam_parse): Parse the maxsequence option.
  4988. (sequence): New function to check for too long monotonic sequence of characters.
  4989. (password_check): Call the sequence().
  4990. modules/pam_cracklib/pam_cracklib.8.xml: Document the maxsequence check.
  4991. 2012-06-01 Tomas Mraz <tmraz@fedoraproject.org>
  4992. pam_timestamp: Fix copy&paste error in manpage.
  4993. modules/pam_timestamp/pam_timestamp.8.xml: Fix AUTHOR section.
  4994. 2012-05-28 Tomas Mraz <tmraz@fedoraproject.org>
  4995. Pulled new translations from Transifex.
  4996. po/*.po: Updated translations.
  4997. pam_pwhistory: Always record the old password even when root changes it.
  4998. modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Use the UID of
  4999. the process instead of the target user UID (same as in pam_cracklib) to
  5000. check for root. Always record old password.
  5001. 2012-05-24 Tomas Mraz <tmraz@fedoraproject.org>
  5002. pam_cracklib: Add enforce_for_root option.
  5003. modules/pam_cracklib/pam_cracklib.c (_pam_parse): Recognize the enforce_for_root option.
  5004. (pam_sm_chauthtok): Enforce errors for root with the option.
  5005. modules/pam_cracklib/pam_cracklib.8.xml: Document the enforce_for_root option.
  5006. 2012-04-30 Tomas Mraz <tmraz@fedoraproject.org>
  5007. pam_cracklib: Add maxclassrepeat, gecoscheck checks and remove unused difignore.
  5008. modules/pam_cracklib/pam_cracklib.c (_pam_parse): Recognize the maxclassrepeat, gecoscheck options. Ignore difignore option.
  5009. (simple): Add the check for the same class repetition.
  5010. (usercheck): Refactor into wordcheck().
  5011. (gecoscheck): New test for words from the GECOS field.
  5012. (password_check): Call the gecoscheck().
  5013. (pam_sm_chauthtok): Drop the diff_ignore from options struct.
  5014. modules/pam_cracklib/pam_cracklib.8.xml: Document the maxclassrepeat and gecoscheck checks, update the documentation of the difok test.
  5015. pam_lastlog: Never lock out the root account.
  5016. modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Return PAM_SUCCESS if
  5017. uid==0.
  5018. modules/pam_lastlog/pam_lastlog.8.xml: Improve documentation.
  5019. 2012-04-17 Tomas Mraz <tmraz@fedoraproject.org>
  5020. pam_lastlog: add possibility to lock out inactive users in auth or account
  5021. * modules/pam_lastlog/pam_lastlog.8.xml: Document the new functionality and
  5022. option.
  5023. * modules/pam_lastlog/pam_lastlog.c: Add the inactive user lock out.
  5024. (_pam_session_parse): Renamed from _pam_parse.
  5025. (_pam_auth_parse): New function to parse auth arguments.
  5026. (_last_login_open): Factor out opening of the lastlog file.
  5027. (_last_login_read): Factor out opening of the lastlog file.
  5028. (pam_sm_authenticate): Implement the lockout functionality.
  5029. (pam_sm_setcred): Just return PAM_SUCCESS.
  5030. (pam_sm_acct_mgmt): Call pam_sm_authenticate().
  5031. 2012-04-11 Paul Wouters <pwouters@redhat.com>
  5032. Check for crypt() failure returning NULL.
  5033. * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Adjust syslog message.
  5034. * modules/pam_unix/passverify.c (create_password_hash): Check for crypt()
  5035. returning NULL.
  5036. 2012-02-03 Dmitry V. Levin <ldv@altlinux.org>
  5037. pam_unix: make configuration consistent in --enable-static-modules mode.
  5038. In --enable-static-modules mode, it was not possible to use "pam_unix"
  5039. in PAM config files. Instead, different names had to be used for each
  5040. management group: pam_unix_auth, pam_unix_acct, pam_unix_passwd and
  5041. pam_unix_session. This change makes pam_unix configuration consistent
  5042. with other PAM modules.
  5043. * README: Remove the paragraph describing pam_unix distinctions in
  5044. --enable-static-modules mode.
  5045. * libpam/pam_static_modules.h (_pam_unix_acct_modstruct,
  5046. _pam_unix_auth_modstruct, _pam_unix_passwd_modstruct,
  5047. _pam_unix_session_modstruct): Remove.
  5048. (_pam_unix_modstruct): New pam_module declaration.
  5049. * modules/pam_unix/pam_unix_static.h: New file.
  5050. * modules/pam_unix/pam_unix_static.c: Likewise.
  5051. * modules/pam_unix/Makefile.am (noinst_HEADERS): Add pam_unix_static.h
  5052. (pam_unix_la_SOURCES) [STATIC_MODULES]: Add pam_unix_static.c
  5053. * modules/pam_unix/pam_unix_acct.c [PAM_STATIC]: Include
  5054. pam_unix_static.h
  5055. [PAM_STATIC] (_pam_unix_acct_modstruct): Remove.
  5056. * modules/pam_unix/pam_unix_auth.c [PAM_STATIC]: Include
  5057. pam_unix_static.h
  5058. [PAM_STATIC] (_pam_unix_auth_modstruct): Remove.
  5059. * modules/pam_unix/pam_unix_passwd.c [PAM_STATIC]: Include
  5060. pam_unix_static.h
  5061. [PAM_STATIC] (_pam_unix_passwd_modstruct): Remove.
  5062. * modules/pam_unix/pam_unix_sess.c [PAM_STATIC]: Include
  5063. pam_unix_static.h
  5064. [PAM_STATIC] (_pam_unix_session_modstruct): Remove.
  5065. Suggested-by: Matveychikov Ilya <i.matveychikov@securitycode.ru>
  5066. 2012-01-27 Dmitry V. Levin <ldv@altlinux.org>
  5067. Make --disable-cracklib compatible with --enable-static-modules mode.
  5068. * configure.in: Define HAVE_LIBCRACK when cracklib is enabled.
  5069. * libpam/pam_static_modules.h (static_modules): Guard the use of
  5070. _pam_cracklib_modstruct by HAVE_LIBCRACK macro.
  5071. 2012-02-10 Tomas Mraz <tmraz@fedoraproject.org>
  5072. Add missing includes for types used in the pam_modutil.h.
  5073. * libpam/include/security/pam_modutil.h: Add missing includes for used types.
  5074. 2012-01-27 Matveychikov Ilya <i.matveychikov@securitycode.ru>
  5075. Fix compile time errors in --enable-static-modules mode.
  5076. * libpam/pam_static_modules.h (_pam_rhosts_auth_modstruct): Remove
  5077. obsolete declaration.
  5078. (static_modules): Remove undefined reference to
  5079. _pam_rhosts_auth_modstruct.
  5080. * modules/pam_pwhistory/opasswd.h: Rename {save,check}_old_password to
  5081. {save,check}_old_pass in order to avoid conflicts with pam_unix.
  5082. * modules/pam_pwhistory/opasswd.c: Likewise.
  5083. * modules/pam_pwhistory/pam_pwhistory.c: Likewise.
  5084. * modules/pam_tally2/pam_tally2.c: Rename _pam_tally_modstruct to
  5085. _pam_tally2_modstruct.
  5086. 2012-01-26 Dmitry V. Levin <ldv@altlinux.org>
  5087. Fix SUBDIRS for --enable-static-modules mode.
  5088. There is no way to build "modules" subdirectory before "libpam" anyway.
  5089. In STATIC_MODULES mode, "libpam" subdirectory must be built twice to
  5090. produce a usable libpam.a without undefined references to multiple
  5091. _pam_*_modstruct symbols.
  5092. * Makefile.am: Use default SUBDIRS in STATIC_MODULES mode.
  5093. 2012-01-26 Matveychikov Ilya <i.matveychikov@securitycode.ru>
  5094. configure: fix typo in --disable-nis help string.
  5095. * configure.in: Change '-disable-nis' to '--disable-nis'.
  5096. 2012-01-26 Tomas Mraz <tmraz@fedoraproject.org>
  5097. Do not unmount anything by default in pam_namespace close session call.
  5098. * modules/pam_namespace/pam_namespace.c (pam_sm_close_session): Recognize
  5099. the unmount_on_close option and make the default to be to not unmount.
  5100. * modules/pam_namespace/pam_namespace.h: Rename PAMNS_NO_UNMOUNT_ON_CLOSE to
  5101. PAMNS_UNMOUNT_ON_CLOSE.
  5102. * modules/pam_namespace/pam_namespace.8.xml: Document the change.
  5103. 2012-01-24 Tomas Mraz <tmraz@fedoraproject.org>
  5104. Make / mount as rslave instead of bind mounting polydirs.
  5105. * modules/pam_namespace/pam_namespace.c (protect_dir): Drop the always argument.
  5106. (check_inst_parent): Drop the always argument from protect_dir().
  5107. (create_polydir): Likewise.
  5108. (ns_setup): Likewise and do not mark the polydir with MS_PRIVATE.
  5109. (setup_namespace): Mark the / with MS_SLAVE|MS_REC.
  5110. * modules/pam_namespace/pam_namespace.8.xml: Reflect the change in docs.
  5111. 2012-01-13 Tomas Mraz <tmraz@fedoraproject.org>
  5112. Add possibility to match ruser, rhost, and tty in pam_succeed_if.
  5113. * modules/pam_succeed_if/pam_succeed_if.c (evaluate): Match ruser,
  5114. rhost, and tty as left operand.
  5115. * modules/pam_succeed_if/pam_succeed_if.8.xml: Document the new
  5116. possible left operands.
  5117. 2012-01-03 Tomas Mraz <tmraz@fedoraproject.org>
  5118. Merge branch 'master' of ssh://git.fedorahosted.org/git/linux-pam.
  5119. Fix matching of usernames in the pam_unix remember feature.
  5120. * modules/pam_unix/pam_unix_passwd.c (check_old_password): Make
  5121. sure we match only the whole username in opasswd entry.
  5122. * modules/pam_unix/passverify.c (save_old_password): Likewise make
  5123. sure we match only the whole username in opasswd entry.
  5124. 2011-12-26 Dmitry V. Levin <ldv@altlinux.org>
  5125. pam_start: fix memory leak on error path.
  5126. * libpam/pam_start.c (pam_start): If _pam_make_env() or
  5127. _pam_init_handlers() returned an error, release the memory allocated
  5128. for pam_conv structure.
  5129. Patch-by: cancel <suntsu@yandex.ru>.
  5130. 2011-11-03 Dmitry V. Levin <ldv@altlinux.org>
  5131. pam_selinux.8.xml: update.
  5132. * modules/pam_selinux/pam_selinux.8.xml (pam_selinux-cmdsynopsis):
  5133. Reorder options, add new "restore" option.
  5134. pam_selinux-description): Rewrite.
  5135. (pam_selinux-options): Reorder options, describe new "restore" option.
  5136. (pam_selinux-return_values): Remove PAM_AUTH_ERR, PAM_SESSION_ERR
  5137. and PAM_BUF_ERR.
  5138. (pam_selinux-see_also): Remove pam.conf(5). Add execve(2), tty(4)
  5139. and selinux(8).
  5140. pam_selinux.c: add "restore" option.
  5141. * modules/pam_selinux/pam_selinux.c (pam_sm_open_session): Add new
  5142. "restore" option.
  5143. pam_selinux.c: rewrite using pam_get_data/pam_set_data.
  5144. * modules/pam_selinux/pam_selinux.c (security_restorelabel_tty,
  5145. security_label_tty): Remove old functions.
  5146. (module_data_t): New structure.
  5147. (free_module_data, cleanup, get_module_data, get_item,
  5148. set_exec_context, set_file_context, compute_exec_context,
  5149. compute_tty_context, restore_context, set_context,
  5150. create_context): New functions.
  5151. (pam_sm_authenticate, pam_sm_setcred, pam_sm_open_session,
  5152. pam_sm_close_session): Use them.
  5153. 2011-10-28 Dmitry V. Levin <ldv@altlinux.org>
  5154. Use libpam.la/libpam_misc.la to link with -lpam/-lpam_misc.
  5155. GNU automake documentation recommends to avoid using -l options in
  5156. LDADD or LIBADD when referring to libraries built by the package.
  5157. Instead, it recommends to write the file name of the library explicitly,
  5158. and use -l option only to list third-party libraries. As result, the
  5159. default value of *_DEPENDENCIES will list all local libraries and omit
  5160. the other ones.
  5161. * modules/pam_access/Makefile.am (pam_access_la_LIBADD): Replace
  5162. "-L$(top_builddir)/libpam -lpam" with
  5163. "$(top_builddir)/libpam/libpam.la", to follow GNU automake
  5164. recommendations.
  5165. * modules/pam_cracklib/Makefile.am (pam_cracklib_la_LIBADD): Likewise.
  5166. * modules/pam_debug/Makefile.am (pam_debug_la_LIBADD): Likewise.
  5167. * modules/pam_deny/Makefile.am (pam_deny_la_LIBADD): Likewise.
  5168. * modules/pam_echo/Makefile.am (pam_echo_la_LIBADD): Likewise.
  5169. * modules/pam_env/Makefile.am (pam_env_la_LIBADD): Likewise.
  5170. * modules/pam_exec/Makefile.am (pam_exec_la_LIBADD): Likewise.
  5171. * modules/pam_faildelay/Makefile.am (pam_faildelay_la_LIBADD): Likewise.
  5172. * modules/pam_filter/Makefile.am (pam_filter_la_LIBADD): Likewise.
  5173. * modules/pam_filter/upperLOWER/Makefile.am (LDADD): Likewise.
  5174. * modules/pam_ftp/Makefile.am (pam_ftp_la_LIBADD): Likewise.
  5175. * modules/pam_group/Makefile.am (pam_group_la_LIBADD): Likewise.
  5176. * modules/pam_issue/Makefile.am (pam_issue_la_LIBADD): Likewise.
  5177. * modules/pam_keyinit/Makefile.am (pam_keyinit_la_LIBADD): Likewise.
  5178. * modules/pam_lastlog/Makefile.am (pam_lastlog_la_LIBADD): Likewise.
  5179. * modules/pam_limits/Makefile.am (pam_limits_la_LIBADD): Likewise.
  5180. * modules/pam_listfile/Makefile.am (pam_listfile_la_LIBADD): Likewise.
  5181. * modules/pam_localuser/Makefile.am (pam_localuser_la_LIBADD): Likewise.
  5182. * modules/pam_loginuid/Makefile.am (pam_loginuid_la_LIBADD): Likewise.
  5183. * modules/pam_mail/Makefile.am (pam_mail_la_LIBADD): Likewise.
  5184. * modules/pam_mkhomedir/Makefile.am (pam_mkhomedir_la_LIBADD,
  5185. mkhomedir_helper_LDADD): Likewise.
  5186. * modules/pam_motd/Makefile.am (pam_motd_la_LIBADD): Likewise.
  5187. * modules/pam_namespace/Makefile.am (pam_namespace_la_LIBADD): Likewise.
  5188. * modules/pam_nologin/Makefile.am (pam_nologin_la_LIBADD): Likewise.
  5189. * modules/pam_permit/Makefile.am (pam_permit_la_LIBADD): Likewise.
  5190. * modules/pam_pwhistory/Makefile.am (pam_pwhistory_la_LIBADD): Likewise.
  5191. * modules/pam_rhosts/Makefile.am (pam_rhosts_la_LIBADD): Likewise.
  5192. * modules/pam_rootok/Makefile.am (pam_rootok_la_LIBADD): Likewise.
  5193. * modules/pam_securetty/Makefile.am (pam_securetty_la_LIBADD): Likewise.
  5194. * modules/pam_sepermit/Makefile.am (pam_sepermit_la_LIBADD): Likewise.
  5195. * modules/pam_shells/Makefile.am (pam_shells_la_LIBADD): Likewise.
  5196. * modules/pam_stress/Makefile.am (pam_stress_la_LIBADD): Likewise.
  5197. * modules/pam_succeed_if/Makefile.am (pam_succeed_if_la_LIBADD):
  5198. Likewise.
  5199. * modules/pam_tally/Makefile.am (pam_tally_la_LIBADD): Likewise.
  5200. * modules/pam_tally2/Makefile.am (pam_tally2_la_LIBADD,
  5201. pam_tally2_LDADD): Likewise.
  5202. * modules/pam_time/Makefile.am (pam_time_la_LIBADD): Likewise.
  5203. * modules/pam_timestamp/Makefile.am (pam_timestamp_la_LIBADD,
  5204. pam_timestamp_check_LDADD, hmacfile_LDADD): Likewise.
  5205. * modules/pam_tty_audit/Makefile.am (pam_tty_audit_la_LIBADD): Likewise.
  5206. * modules/pam_umask/Makefile.am (pam_umask_la_LIBADD): Likewise.
  5207. * modules/pam_unix/Makefile.am (pam_unix_la_LIBADD): Likewise.
  5208. * modules/pam_userdb/Makefile.am (pam_userdb_la_LIBADD): Likewise.
  5209. * modules/pam_warn/Makefile.am (pam_warn_la_LIBADD): Likewise.
  5210. * modules/pam_wheel/Makefile.am (pam_wheel_la_LIBADD): Likewise.
  5211. * modules/pam_xauth/Makefile.am (pam_xauth_la_LIBADD): Likewise.
  5212. * tests/Makefile.am (LDADD): Likewise.
  5213. * examples/Makefile.am (LDADD): Replace "-L$(top_builddir)/libpam -lpam"
  5214. with "$(top_builddir)/libpam/libpam.la", and
  5215. "-L$(top_builddir)/libpam_misc -lpam_misc" with
  5216. "$(top_builddir)/libpam_misc/libpam_misc.la", to follow GNU automake
  5217. recommendations.
  5218. * xtests/Makefile.am (LDADD): Likewise.
  5219. * modules/pam_selinux/Makefile.am (pam_selinux_la_LIBADD): Likewise.
  5220. Fix usage of LIBADD, LDADD and LDFLAGS.
  5221. * modules/pam_selinux/Makefile.am: Rename pam_selinux_check_LDFLAGS to
  5222. pam_selinux_check_LDADD.
  5223. * modules/pam_userdb/Makefile.am: Split out pam_userdb_la_LIBADD from
  5224. AM_LDFLAGS.
  5225. * modules/pam_warn/Makefile.am: Split out pam_warn_la_LIBADD from
  5226. AM_LDFLAGS.
  5227. * modules/pam_wheel/Makefile.am: Split out pam_wheel_la_LIBADD from
  5228. AM_LDFLAGS.
  5229. * modules/pam_xauth/Makefile.am: split out pam_xauth_la_LIBADD from
  5230. AM_LDFLAGS.
  5231. * xtests/Makefile.am: Rename AM_LDFLAGS to LDADD.
  5232. 2011-10-27 Dmitry V. Levin <ldv@altlinux.org>
  5233. Update .gitignore files.
  5234. * .gitignore: Add common ignore patterns.
  5235. * m4/.gitignore: Unignore local m4 files.
  5236. * dynamic/.gitignore: Unignore Makefile.
  5237. * libpamc/test/modules/.gitignore: Likewise.
  5238. * libpamc/test/regress/.gitignore: Likewise.
  5239. * po/.gitignore: Add Makevars.template.
  5240. * conf/.gitignore: Remove common ignore patterns.
  5241. * conf/pam_conv1/.gitignore: Likewise.
  5242. * doc/.gitignore: Likewise.
  5243. * doc/specs/.gitignore: Likewise.
  5244. * doc/specs/formatter/.gitignore: Likewise.
  5245. * examples/.gitignore: Likewise.
  5246. * modules/pam_filter/upperLOWER/.gitignore: Likewise.
  5247. * modules/pam_mkhomedir/.gitignore: Likewise.
  5248. * modules/pam_selinux/.gitignore: Likewise.
  5249. * modules/pam_stress/.gitignore: Likewise.
  5250. * modules/pam_tally/.gitignore: Likewise.
  5251. * modules/pam_tally2/.gitignore: Likewise.
  5252. * modules/pam_timestamp/.gitignore: Likewise.
  5253. * modules/pam_unix/.gitignore: Likewise.
  5254. * tests/.gitignore: Likewise.
  5255. * xtests/.gitignore: Likewise.
  5256. * doc/adg/.gitignore: Remove.
  5257. * doc/man/.gitignore: Remove.
  5258. * doc/mwg/.gitignore: Remove.
  5259. * doc/sag/.gitignore: Remove.
  5260. * libpamc/.gitignore: Remove.
  5261. * libpamc/test/.gitignore: Remove.
  5262. * libpam/.gitignore: Remove.
  5263. * libpam_misc/.gitignore: Remove.
  5264. * modules/.gitignore: Remove.
  5265. * modules/pam_access/.gitignore: Remove.
  5266. * modules/pam_cracklib/.gitignore: Remove.
  5267. * modules/pam_debug/.gitignore: Remove.
  5268. * modules/pam_deny/.gitignore: Remove.
  5269. * modules/pam_echo/.gitignore: Remove.
  5270. * modules/pam_env/.gitignore: Remove.
  5271. * modules/pam_exec/.gitignore: Remove.
  5272. * modules/pam_faildelay/.gitignore: Remove.
  5273. * modules/pam_filter/.gitignore: Remove.
  5274. * modules/pam_ftp/.gitignore: Remove.
  5275. * modules/pam_group/.gitignore: Remove.
  5276. * modules/pam_issue/.gitignore: Remove.
  5277. * modules/pam_keyinit/.gitignore: Remove.
  5278. * modules/pam_lastlog/.gitignore: Remove.
  5279. * modules/pam_limits/.gitignore: Remove.
  5280. * modules/pam_listfile/.gitignore: Remove.
  5281. * modules/pam_localuser/.gitignore: Remove.
  5282. * modules/pam_loginuid/.gitignore: Remove.
  5283. * modules/pam_mail/.gitignore: Remove.
  5284. * modules/pam_motd/.gitignore: Remove.
  5285. * modules/pam_namespace/.gitignore: Remove.
  5286. * modules/pam_nologin/.gitignore: Remove.
  5287. * modules/pam_permit/.gitignore: Remove.
  5288. * modules/pam_pwhistory/.gitignore: Remove.
  5289. * modules/pam_rhosts/.gitignore: Remove.
  5290. * modules/pam_rootok/.gitignore: Remove.
  5291. * modules/pam_securetty/.gitignore: Remove.
  5292. * modules/pam_sepermit/.gitignore: Remove.
  5293. * modules/pam_shells/.gitignore: Remove.
  5294. * modules/pam_succeed_if/.gitignore: Remove.
  5295. * modules/pam_time/.gitignore: Remove.
  5296. * modules/pam_tty_audit/.gitignore: Remove.
  5297. * modules/pam_umask/.gitignore: Remove.
  5298. * modules/pam_userdb/.gitignore: Remove.
  5299. * modules/pam_warn/.gitignore: Remove.
  5300. * modules/pam_wheel/.gitignore: Remove.
  5301. * modules/pam_xauth/.gitignore: Remove.
  5302. Move generated auxiliary files to build-aux directory.
  5303. * configure.in: Add AC_CONFIG_AUX_DIR([build-aux]).
  5304. Remove generated files.
  5305. * ABOUT-NLS: Remove.
  5306. * INSTALL: Remove.
  5307. * config.rpath: Remove.
  5308. * install-sh: Remove.
  5309. * mkinstalldirs: Remove.
  5310. * Makefile.am (EXTRA_DIST): Remove config.rpath and mkinstalldirs.
  5311. * .gitignore: Add ABOUT-NLS and INSTALL.
  5312. Create release tarballs using safe ownership and permissions.
  5313. * Makefile.am: Define and export TAR_OPTIONS.
  5314. Generate ChangeLog from git log.
  5315. * .gitignore: Add ChangeLog
  5316. * ChangeLog: Rename to ChangeLog-CVS.
  5317. * Makefile.am (gen-changelog): New rule.
  5318. (dist-hook, .PHONY): Depend on it.
  5319. (EXTRA_DIST): Add ChangeLog-CVS.
  5320. * README-hacking: New file.
  5321. * gitlog-to-changelog: Import from gnulib.
  5322. * autogen.sh: Create empty ChangeLog file to make automake strictness
  5323. check happy. Use automated "autoreconf -fiv" instead of manual
  5324. invocations of various autotools.
  5325. Fix "make distcheck"
  5326. There is no use to distribute m4 files manually, because automake does
  5327. the right thing, while manual distribution is not only redundant but
  5328. also very fragile.
  5329. * Makefile.am (M4_FILES): Remove.
  5330. (EXTRA_DIST): Remove M4_FILES.
  5331. Remove modules/pam_timestamp/hmacfile from distribution.
  5332. * modules/pam_timestamp/Makefile.am (dist_TESTS): Add tst-pam_timestamp.
  5333. (nodist_TESTS): Add hmacfile.
  5334. (EXTRA_DIST): Replace TESTS with dist_TESTS.
  5335. Rename all .cvsignore files to .gitignore.
  5336. 2011-10-26 Dmitry V. Levin <ldv@altlinux.org>
  5337. Fix whitespace issues.
  5338. Cleanup trailing whitespaces, indentation that uses spaces before tabs,
  5339. and blank lines at EOF. Make the project free of warnings reported by
  5340. git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD
  5341. See ChangeLog-CVS for earlier changes.