VULN_CHECK_I913V6 Gi`CddlZddlZddlZddlZddlZddlZddlmZddl Z ddl ddl m Z ejjZGddZy)N)*)TunedExceptioncReZdZd2dZdZdZdZdZdZd3dZ d4dZ d Z d Z d Z d5d Zd6dZd7dZd8dZd9dZd9dZd9dZd9dZdZdZd2dZdZdZd2dZdd igdfdZd2dZdZdZd Z d:d!Z!d"Z"d#Z#d$Z$d%Z%d;d&Z&d'Z'd(Z(d)Z)d*Z*d+Z+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1y )<commandsc||_yN)_logging)selfloggings 9/usr/lib/python3.12/site-packages/tuned/utils/commands.py__init__zcommands.__init__s $-cH|jrtj|yyr)r logerrorr msgs r _errorzcommands._error ]]99S>rcH|jrtj|yyr)r rdebugrs r _debugzcommands._debugrrc t|jj}dddddddddj||S)N10)YYESTTRUENNOFFALSE)strupperstripget)r valuevs r get_boolzcommands.get_boolsD %j !#cs#WZ [ _ _`ach iirc^tjddt|jS)Nz\s+ )resubr$r&)r ss r remove_wszcommands.remove_wss" SV $ * * ,,rc0tjdd|S)Nz^"(.*)"$z\1)r-r.)r r)s r unquotezcommands.unquote"s  eQ ''rc.|j|||Srreplace)r r/ what_escape escape_bys r escapezcommands.escape&s ;)[ A BBrc&|j|dS)Nr4)r r/ escape_chars r unescapezcommands.unescape*s ; ##rc0|d|t|z zz|zS)Nr,)len)r s1poss2s r align_strzcommands.align_str.s cS3r7]# #b ((rcfg}|,t|jD]}|t|z }|Sr)sorteditemslist)r dlis r dict2listzcommands.dict2list4s3!] 1779 qaLA  (rc |ytjddjt|j zS)Nz(%s)z)|()r-compilejoinrFkeys)r rGs r re_lookup_compilezcommands.re_lookup_compile<s1Y  FUZZQVVX77 88rNc||Stdk(s||S||j}|jfd||S)NrcVtj|jdz S)N)rFvalues lastindex)morGs r z.commands.multiple_re_replace..Ms$qxxz*2<rOr.)r rGr/rflagss ` r multiple_re_replacezcommands.multiple_re_replaceDsOYi H !fkQY HY a 1 rOsearchrFrSrT)r rGr/rWrUs r re_lookupzcommands.re_lookupSs[Vq[AI Y a 1xx{" qxxz 2< KKNdnnQn6<<>#d)KKKORSST  Q 288CI88: 2 ) 7 > 24 x177(#: [[q!<= ) >s AC178C11EA EEc|} t|d}|j}|j|j d|d|d|S#ttf$r$}|s|j d|d|dYd}~Hd}~wwxYw)NrWzError when reading file '': 'r_zRead data from file: 'z' > ')rhreadrjrkrlrr)r rperr_retr` old_valuertrvs r rgzcommands.read_filesp)? Q 2wwy988:++AyAB  ' ? KK1=>?s,A A=A88A=c |jd|ztjj|r t j ||yy#t $r1}|s%tjd|dt|dYd}~yd}~wwxYw)NzRemoving tree: '%s'zcannot remove tree 'ryr_FT) rrbrcexistsshutilrmtreerkrrr$r rpr`rs r rzcommands.rmtreesi++#a'(WW^^A MM!X   YY!SZ@A sA B'BBc |jd|ztjj|r tj|yy#t $r1}|s%t jd|dt|dYd}~yd}~wwxYw)NzRemoving file: '%s'zcannot remove file 'ryr_FT) rrbrcr~unlinkrkrrr$rs r rzcommands.unlinksf++#a'(WW^^AIIaL   YY!SZ@A sA B'BBc |jd|d|d tj||y#t$r4}|s(tj d|d|dt |dYd}~yd}~wwxYw)NzRenaming file '' to 'r_zcannot rename file 'ryFT)rrbrenamerkrrr$)r srcdstr`rs r rzcommands.renamesZ++c37899S#   IIc3u:NO s1 A.*A))A.c  tjd|d|dtj||y#t$r*}|stj d|d|d|Yd}~yd}~wwxYw)Nzcopying file 'rr_Tzcannot copy file 'z': F)rrrcopyrlr)r rrr`rvs r rz commands.copysR99C 56 ;;sC   IIS#qAB s25 A( A##A(c |j|}t|dkry|j|tj|||tj SNrFrX)rgr>rwr-r. MULTILINE)r rppatternreplrqs r replace_in_filezcommands.replace_in_filesD  $Y!^   ArvvgtT2<<P QQrc|j|}t|dkry|j||j||tj Sr)rgr>rwrYr-r)r rprGrqs r multiple_replace_in_filez!commands.multiple_replace_in_filesG  $Y!^   At7747V WWrc|j|}|D]}t|}t||}tjd|zdz|tj*|sKt |dkDr |ddk7r|dz }||d|dz }rtj d |zd zd |j|zd z|tj}|j||S) Nz\bz\s*=.*$rr z="z" z\b(z\s*=).*$z\1"") rgr$r-r\rr>r.r8rw)r rprGaddrqoptor)s r add_modify_option_in_filez"commands.add_modify_option_in_files  $ c 3x1 1S6{1ii J&bllCK  D A $r(d* dld a ##T 66&1*{*L4;;q>,ID,PRV`b`l`l mD   At $$rc|j|}tjt|j dj SNzutf-8)rghashlibmd5r$encode hexdigestr rprqs r md5sumzcommands.md5sums7  $ SY%%g. / 9 9 ;;rc|j|}tjt|j dj Sr)rgrsha256r$rrrs r sha256sumzcommands.sha256sums7  $ D ((1 2 < < >>rc^|jtj|jSr)rgconstsMACHINE_ID_FILEr&)r r`s r get_machine_idzcommands.get_machine_ids" .. 9 ? ? AArc d}tjj}d|d<|j||j dt |zd} d} t |tt|||dd} | j\} } | j}|rJ||vrFd|vrB| dd} t| dk(r| dd} d d j|d | } |s|j| |r|| | fS|| fS#ttf$r`}|j |j nd}t!||vr.d|vr*d d j|d |} |s|j| Yd}~ud}~wwxYw) NrCLC_ALLz Executing %s.r:T)stdoutstderrenvshellcwd close_fdsuniversal_newlinesrz Executing 'r,z ' error: )rbenvironrupdaterr$PopenPIPE communicate returncoder>rMrrkrlroabs)r argsrrr no_errors return_errretcode _environmentouterr_msgprocerrerr_outrvs r executezcommands.executes_ '",,xc++oD )* # ' td  #  4  83 __7 g*1 >#2hG 7|q3BxW,/HHTNGDG  [[ 3  3, 7 ,aggX"7 g,) #AN,/HHTNA>G  [[ sBC**E9AEEctjd|}|r|jdS|r|jdS|S)Nz.*\[([^\]]+)\].*rRr)r-matchgroupsplit)r optionsdosplitms r get_active_optionzcommands.get_active_options=hh"G,! ''!* --/!  .rcvt|}|dk(xs(|jd|zddjdk(S)Nrz$/sys/devices/system/cpu/cpu%s/onlinerT)r{r`)r$rgr&)r cpuscpus r is_cpu_onlinezcommands.is_cpu_onlinesM S$  Dt~~&Lt&S_bos~tzz|ADDDrc|yt|jdd} t|d}|j |S#t$r&tj dt|zgcYSwxYw)N,r:zinvalid hexadecimal mask '%s')r$r5int ValueErrorrrbitmask2cpulist)r maskrs r hex2cpulistzcommands.hex2cpulistso \  T  3 #$  4}1   a    99 ,s4y 89 9 s =,A,+A,cdd}g}|dkDr&|dzr|j||dz}|dz }|dkDr&|Sr[)append)r rrcpuss r rzcommands.bitmask2cpulist*sH # $ q QhKKA:4!83 q +rc g}||S|}t|tur6|t|j|}t|j d}g}g}d}d}|D]} t| } |r*t | dk(rd}|j |d}4|| z }:| ddjdk(rd}| }U| r| ddk(s| dd k(ru| d dj d } t | d kDr4|ttt| dt| d d zz }n|j t| d dt | dkDs|j | t |dkDr|j ||D]} | j d } | ddjdk(r||j| z }? t | d kDr4|ttt| dt| d d zz }n|j t| dttt|} |D]}|| vs| j|| S#t$rgcYcSwxYw#t$rgcYcSwxYw) NrFr:r0xT^!rR-)typerFr$r&rr>rlowerrangerrrrDsetremove)r rH strip_charsrlllll2 negation_listhexmaskhvr)svnlvlcpu_listrs r cpulist_unpackzcommands.cpulist_unpack=si "Y 8" "XT R{ #B B c2 #- ' " a A2  2w!|WZZ^ R2XR !Aw}}$W R A#A# QR&,,s R  b'A+U BqE  BqE Q   } C12K( B!  jjn9 : Wq[::b> a  2!flln$  1 B B! Ds2a5z3r!u:>2 33biiBqE  DRM "(c Xo OOC /3  i"  Ys&AI9AI) I&%I&) I98I9c6|j|}|t|dk(r|Sd}|}g}|dzt|kr||dz||z dk7rW||k7r0|jt||dzt||zn|jt|||dz}|dz }|dzt|kr|dzt|kr1|jt||dzt|dz|S|jt|d|S)NrrRrr)rr>rr$)r rHrIjrs r cpulist_packzcommands.cpulist_packs !!Y#a&A+ 8!! " AAAh1oAvYYs1Q4y3QqT*+YYs1Q4y AA61 AAUSV^99S1Y_s1R5z )* )99S2Z )rc|j|}|j|jd}tt|t|z S)Nz/sys/devices/system/cpu/online)rrgrFr)r rHronlines r cpulist_invertzcommands.cpulist_invertsD  Q $   t~~.NO P& c&kCI% &&rc |y|j|}|y|j|}d|zt}|dzdk7r |d|dzz z }j|dj fdt dtdDS)Nz%xrrc3.K|] }||dzyw)rN).0rIr/s r z'commands.cpulist2hex..s:&9!Aa!e*&9s)rcpulist2bitmaskr>zfillrMr)r rHulrlsr/s @r cpulist2hexzcommands.cpulist2hexsY  1"Z  2! Qh! 1v"!Vq[R!V2ggbk! :eAs1vq&9: ::rc6d}|D]}|td|z}|S)Nrr)pow)r rHrr)s r rzcommands.cpulist2bitmasks%! aAq >1 (rc8djfd|DS)Nrc3:K|]}t|zywr)r$)rr)prefixs r rz*commands.cpulist2string..s/Q6CF?Qs)rM)r rHr s `r cpulist2stringzcommands.cpulist2strings /Q/ //rcL|ddjdk(rF|dd}|ddjdk7r+|j|Dcgc]}dt|zc}Stjd|}|Dcgc]}t|j ddc}Scc}wcc}w)Nrrzcpulist:rz\s*(? 0s B7"B!cv |j|dS#t$r}|j|cYd}~Sd}~wwxYw)NF)wait TypeError)r terminatetimervs r rz commands.waits7 ..u %%  .. s 8388c,t|jj}dD]X}|j|}|dk(r t |d|}||d}|dk(r|dz}n|dk(r|dz}n|dk(r|dz}n|d k7rd}|cSy#t $rYywxYw) N)KBMBGBr:rririri@r:)r$r&r%rfindrr)r r/unitunit_ixvalus r get_sizezcommands.get_sizes !flln!$d WWT]7 m   ak C '( ADyD[S dKS d S b S J%  s>#L . ? V % %s+q 668>> D B22F4P4PQQ 58P8PP QQR , RZ 6 F00 06R<  / .- Bgg  ?? 8 ? 9A= >>?svC;C/C;E("AEE(/C84C;; E+D44EEEE%!E(( G1+F!!G3GGc ttjd5}||j|dzddd ttjd5}|rtjntj}|j|dzdddy#1swYdxYw#tt f$r}t d|jzd}~wwxYw#1swYyxYw#tt f$r}t d|jzd}~wwxYw)Nrarz!Failed to save active profile: %szFailed to save profile mode: %s) rhrrrirkrlrstrerrorr!r#r")r r$r&rprvr%s r save_active_profilezcommands.save_active_profilesJ V ' '-WW\D ! . H V % %s+q+16 ' 'v7Q7QDGGD4K ,+ .- ' J ;ajjH IIJ ,+ ' H 9AJJF GGHsbB"BB"C7C CBB""C1C  CCCCD ,DD cvd} ttjd5}|jj }ddd|dk(rd}|S#1swYxYw#t $r5}|j t jk7rtd|zYd}~Nd}~wttf$r}td|zd}~wwxYw)Nr:rWz1Failed to read the active post-loaded profile: %s) rhrPOST_LOADED_PROFILE_FILErzr&rlrorrrkr r r$rprvs r get_post_loaded_profilez commands.get_post_loaded_profile s,Q V , ,c2a668>>#L 3R<  32 Rgg LqP QQ 8 Q KaO PPQs9AAAAA B8#+BB8%B33B8c ttjd5}||j|dzdddy#1swYyxYw#tt f$r}t d|jzd}~wwxYw)Nrarz1Failed to save the active post-loaded profile: %s)rhrr,rirkrlrr)r-s r save_post_loaded_profilez!commands.save_post_loaded_profilesjZ V , ,c2aWW\D ! 322 ' Z KajjX YYZs1A<AAAAA4A//A4c tj||}|j |S#t$rddl}|j||}Y2wxYwNr)r$ maketransAttributeErrorstring translate)r text source_chars dest_charstransr5s r trz commands.tr sN6 ==z 25   6   L* 556s)A  A cl| xs0td|Dxrt|tjkS)Nc3@K|]}|tjvywr)rNAMES_ALLOWED_CHARS)rcs r rz)commands.is_valid_name..*sH4a!v9994s)allr>rNAMES_MAX_LENGTH)r names r is_valid_namezcommands.is_valid_name)s0  rcH4HHqSQUYZ`ZqZqMqrrcTtd|gjjS)Ngetconf) check_outputdecoder&)r variables r rEzcommands.getconf,s$ y(+ , 3 3 5 ; ; ==rcl|jtj}|r|j|SdgSr2)rgrSYSFS_CPUS_PRESENT_PATHr)r rs r get_cpuszcommands.get_cpus0s0 66 7$&*  T "5!5r)T)\rL)rLr2r)FFF)r:F)F)z'")r:)2__name__ __module__ __qualname__r rrr*r0r2r8r<rBrJrOrYr]rwrgrrrrrrrrrrrrrrrrrrrrr r rrr'r*r.r0r;rCrErKrrr rrsj-(C$)  9 H! F   RX % < ? B "'d""[`"ND !&?H ,' ; 01 * : H Zs>6rr)ror tuned.logstunedrrbr tuned.constsrr- subprocesstuned.exceptionsrlogsr'rrrrr rVs?   + jjnne6e6r