From 93f0fef1e1ef4b8bc323a8b26c2fb71737cf36c8 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Tue, 8 Jun 2021 19:54:36 +0200 Subject: [PATCH] Improve and secure attachment handling (fixes #2400). Externally opened attachments are now lifecycle-managed properly. The temporary files are created with stricter permissions and entirely random names (except for the file extension) to prevent meta data leakage. When the database is closed, the files are overwritten with random data and are also more reliably deleted than before. Changes to the temporary files are monitored and the user is asked if they want to save the changes back to the database (fixes #3130). KeePassXC does not keep a lock on any of the temporary files, resolving long-standing issues with applications such as Adobe Acrobat on Windows (fixes #5950, fixes #5839). Internally, attachments are copied less. The EntryAttachmentsWidget now only references EntryAttachments instead of owning a separate copy (which used to not be cleared properly under certain circumstances). --- share/demo.kdbx | Bin 79061 -> 79189 bytes src/core/EntryAttachments.cpp | 115 +++++++++++++++++-- src/core/EntryAttachments.h | 18 ++- src/gui/DatabaseWidget.cpp | 1 + src/gui/EntryPreviewWidget.cpp | 10 +- src/gui/EntryPreviewWidget.h | 1 + src/gui/entry/EditEntryWidget.cpp | 19 ++-- src/gui/entry/EditEntryWidget.h | 2 + src/gui/entry/EntryAttachmentsModel.h | 3 +- src/gui/entry/EntryAttachmentsWidget.cpp | 139 +++++++++++++---------- src/gui/entry/EntryAttachmentsWidget.h | 30 +++-- 11 files changed, 245 insertions(+), 93 deletions(-) diff --git a/share/demo.kdbx b/share/demo.kdbx index f78524633642d3b2d81b57d5737242640950dd24..35fd79ce131be93fb4136c8e858a6808b4421640 100644 GIT binary patch literal 79189 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

UadEVNI2#3**0Ouwg!?q z%%yN)o0)9?a&b@76~yvR$9Of<=^VtfOrxMBU*N3DmQ=OAh&=E`i>nghto9)K1wdaD zt}B1I@hK~|$JD0~rCo-;waEw{-aYz;8hl`@F*H&N-A`k+?&2L_CU7#r(QPiH^>}~u z3i{nG9g_d($5MjF|I6Vc2Ku3@xtej_HD8r+1o8bIv!Y?-udyO&{<=~popWzZu|{lt z(t0I7%FxTi|B6eM2xb&UXGjY8Z&s zs2(+XOd>u^SvL)iB-ViTy>GZkLN7{%>%3s>O!nFMWVxpNvj`n$XEwmL%)`HO zoD~P5$8S0+MKynN9k5{wnr5|2{=Sm@;)T`5X$8^D+;mfep%F``cF`n!MdzEOnko>F1~F+cEp-=S_5tb1^}dy9w1QI^hR^c@>7{$wxZ(%aoz2vdNg-2?6R!GCE*=WiIL=B1g{mCKBgB&R82!C+pEF zfBhAkBV=fHpxcAULXe0%;C@pZzsJBL7-Q+F_HYETC+bLuz@!uyWEdRPY#F8Ew zTT0su^E^1@%Ndd^goI22nrk?CIq0i+ISTTt(RtIuc+wE7OERxzF5r#<*gQ;V+udh;aU`eFsEu!7d_6To;U@KjeNJL zWP^vTSX(ZZQAcQ^n6rx~FS)ivG{5C|C>I0_n|8%I;V7o0^!WAYV%WWa9-9VDR53Et z-^EX|?e%TN6eE)$7odqr`Hzn8w+1MK2L} zAlsAWPdF0j%cY(wAb7L~F%4H$<2vuR#7G}ejLe3sxwvbGVklu$tJ5>D!-Lw|n!?b} z%?V8_J=IS6oirCU{H4@*4%B5g7L)X*U?ppB0mWn8^wR;pE7R;tUSrBgdy+iYV$T1g z4IA{Be1hCeH=(_6s&naZUI z>>xOYQ698X^E$dXHRdDD^}hAG-C2rWQ`8Za_|+E4u!YgCI0%H|XQ2vwnf=h~W%1b> zkhkJ{Fb{U6e)mQIDgBYV8$G zL`z$f_x{vZ0$iH2F^;2nG7!d9=IQaD-bz&FUP_kDIE~Ijvp>{cWI#tP|H#>SC7>RH zKE8rj0!OTvsE#^moV4OD860pn=ovOD-FhUzV%7~y-zzDhEfJ(_{Kl#GLZWXB-&uZ2 zB;?f)%t^hPuB0Ve+sMLUe-A}3`Q^8KXP}FQ_20(Hxj5PCv0H8w7>AHcBTdO4V-&mo zo%DhS%lsbMi!~Mvi1y^h+#53)r=#t`5 z`>z-mH8V$6{?Y)9rL+eHf;i3Z!~dy@vnyRamG1|rNiaGOg^%f7+xE5yAEr0RrkxUC zdusKUCSFpm6AdMjn@zQH`|>&jL84RYql@M}Wz17iUa*s}+qA9HAEm5Mq(k3K6&b3R z!0u6d3aeE@OkwuX?X4IpP9}(3w!Hc^79MH`!n-mZMN^252Y<*}R#;I+?FIj`)@bF8 zHb3V^Ao?=vw_BSzi#su~Q!Lzc89tuoXrMvx_!Q;4k8uJ&o3IXzd{eb1dNu!netGP4 z=2M1;g11uUnF0kxcuz9Ucip+cd+jq_Gi)grGE(-y_&)#XKfs28xYJ&Aj*IV@U^)ei z;o0OcLDJy+#@aiT2-J0C&86jxtx8DT1#{K$3iR+!Et3*Q$f9bM*ULHwYl}>rX%uJ~ zQByy_{sBCL&up_uUC8NF8_f9%pu@NwwJ3O++Om(|`9J@8T)EEn49<>VRAJ?vuXd=O z7zC0IKKS%dQe(lI2v<*Yj~a0!B5A=+CF6Ol;TBT7NFH9S(y6sB^0gBviz>eOGLu}+ z`rx<{P+RoOtUPJpzGBtU{=eTzfdT|Q69(H=##14K`pN$x8-$JLn5e$ARitZc6K2De zQE?6kxk%e81rW)LYK}iDz7@JfS6`LB##0Zs*?G*XoBU-u=!#W|ZzzML_vu@E6a>wmp=af4VkVB>xE*!TL!6R^npT)V86^rFcP4;ZmC3R_ z5Ke($SN|$!x;<&dZ>$6Vx_|q5SN)X01Vw61KZN}T>XdU)FECiUoD*M@ZBM0G1UsVg zb3kC3{ZKSror2*DrabS`4?}95#caJ3xnC5Bqjp?5CIBIz+jId{I_td0EqqRV3w_DI z_(^5doy8mGo7A4{AsU)TS_R=pyDx337(nx*PBF^8dW-XItPf2^HyI{!JC6{k=MkHZ z4lsC+2&(UNy=m&?szq&0@G9e)p&CQTV(pq(M?Ma7O>$h3{}_UOgA6}{f{BT1ZqKv(knu2?6$XKX7#6?5crpXX{)!WurS7UY*j;bU{GCm}r|8v@*0 z7|l#>-+NI;n+Evih#$O$ljM_x>mT{yW7}-^s#wilB8-9@+3k<3lnpPA1s0ye+25e1 z60mmFz}p(OpK zP_+l_(~9MZ^&0}Bdkz=Y*ssN(hMuxE+(L-vpAi&J0+oltgKV-T+PB6O44goEgF}4G zb7%}wch*-cDO;gcg2Dn{)Gz$Ldq$E*;#G%<{_41?J~>CPPjH6C@}n!sVK0P#gMQY1 zhN1#fE0_f+9Ue&4FveKcBO{x7jk~92Vc1I(mO^s2btSziT{A?ieOAFP2r~g~HYJLt zs_ZI%>0i1^>I{NMoW65vfpUU7tP-NzCYpcukB5gS+eziW6rcI7|Djlh?jOf9&mXM_ zn`_GMiWgJ*I0|q9_z2GnE)M)eJI637BYAxAPZHr69)&L zG_zg9_yOEX#O#_VPt~sAJ>xGXb_T4i^>-y51(*o#w6V%vn+cHhVGCKF@0Tv9z);$5 z4_^^-$-3&AFQmbtC^5@gZ_j3j^ z9$rhddYv}aFDLcj6$s$+BT;@~I8l>$T+7^rDz=1Byly!Q$WIky{Ft=yHOctZ`$c=@ z9A{F>KO)SDkH!-FKI}OCioi?Zw{&=9Q_*gragF0k3%fPQm_w;aks8j2m zQA!-(5s5g16GLwp1(;=w^8*zi;$z24nv6m0YqKgRVbW};_3;SHIkSKpG}DTaS_f4c zS(vsyvN+kn;B4csM>Q#ChniSs{|>bCQW0Z#d$;6l4)$_3jl9^gU%VpC*Jr~BCC)3? zZj7JSeQ+w4E1NPy+<+yqX4n<*2!qPZ>AG}_&h-_X`9G-B(sJxD!APlzdM6XP8^w5F z1}?3hY})ixsj>=0MSE;R?Zy#iI5mdbPXY@VmO2VRSpiQyb<4F)Ok2{uTnj~&8!w4r z5Jd+%-Yb6^sb_W0^1U3{M!0-mg`3etGMJvW9pgNuhz2c^`Uz9re{uy$8+G`m46Vyv zGDc#$p=!9x6lms zY2lD%g3pyMObqEMIZ0UdCOhu~F&!sHKC$Odlp&hShipckfL!DA?JXwA4$PVnY!~aFCCq+v*sDboU>FaN2zM_qqX#9 zj9GMfwgTNkg`)7hQ2BC-nnKXypW^%88B-mXf7LQb2x_u}; z8Ff{aBE1)#dwz&jWMiHq#zIK*fwp_@>OX|&0tx26bhVkP62+SymOUMJQN7;hE<8{2 z3oiXeL;r7wEf`~A>~({qk`K&RlNh3+;$8JVl^Vv1TzIWqy4t)AkO@e#F5IE0Or_h5 zVgG}hm7~O9o7hv^GF^SgT+d}B9yk%*;c!ipdI{KQ%nndA!2;4Vl{ntOQEd|!KP^&J zn5*FOuM1z?9F^?>p3>=}_xnUqrl5F)@mN7{UkpO^PwkW!wzBzOdKoJ$d*Q2BjJ1ea zqvqo@>#9O@^%M^t$qq5SniM}_qzT|KNYne&<1Xs{WeiX=m_$!h9YP>{%$(Jm132uF zYF^o;h$vr*AQZ&-M2_D%4zyH-5;o=UhGUr5Grd(F)h$9_%uS+8poZyBCFwN6QHA3i zBmS8*N>p_a-s?!7#K$;y_9->T!;)Nir@mP9g5{Z%+R$`ZAJMcOC`!D^)&KjvZpVya zkMm8e(^-g0-TqzlQ4GGHe`$YQN(zW~Ocx^^^)Hm-So2tAUQv_%gmH=Ic^|N)X*{$eWv=R2F zvMT+Vd(Z$$x>(*A;v)f}Hs#{-T>uF%0z)#X19$7LjAs0I9bVonmVjJcp0szj8WQU( z6nyJn&WS&E6F>fwP&S7-ye#CZlRDH=2>l9TM%}#|ty|0hs)gR=B$-)}-NOn5zX@_o zthp0JYq8;jWFx+T(3tD^_*D~Z^`8&+hM<3iR9MObs&6EkcFf4VX{jjBz#}d`1yz1! znJC|oiKP|64(e`fJ&0emR9Dz6$-_#0vYOP;$nC<`FJ+%9jDp<~VY8QCPq=8;!6SXU z*>azb30wseC%?s<_q;R_e^zI2*_Xw$SKFGs|KRm&gT>nKR1!rv-OlttDyvQ5>@XyE zBn2l2Ui&>>-%ANMyP^X{tb4w5<@XkZEmv!?&%7Fm!r62hEJL7=%dT_4jKC#D24fB; z!7wFRmUOsJq4i7#13%mCXkE$)J^TZH_Q)^^J{f1*A@Di3xzZN~sh66zg^=!EpFuh@ zNaS>l&%EA|FNo2rI7A32EzscEAH`!hnl#|?6h9SBzsm@&<3Jl_KHwTxw+bwuX5Ut1 z^3nW~Dc^}+Rr89sDxpxwYW%6##y+Q)sskG}M{8~8@JvLYA;1&U9bE*1P7F@ixI2M}(fMS0+ zeV3qw+SQ#$LfMgpw%o#;-$W@o(E5mmiE(v9TkU&tNB^<JDJ?NH+a$h zh#v|5n^XC~+@AR+6rD?Xr*;j-1y5#NDr=vvx*(=ve$jBAjNFV~MHiClrDBQ(0(Yip z0mkO1w74s7JETuycsk4I@hdfD|0kq3k%dw z^UHyabwV;@|Ej`D87B2cQI&3pdbd13*jbp3-baHxmWmyF)`v6mez4)evB(`(y%#C& zOPqI?x9K|1vs4Ep^=2;Q_;-^DQe_zK3J$%B!Rt@F69W!O@Sim>L_xK_5~XfmU@QR@ z+1kj1ti=^R%OjbYSeRvh>EMBJDnHlIq{jxxTe0;cRq+?uvs3_rLjNo;*(6DbSN34L(zHb< z$M;7(PdFshJcD8ol~HLOt|Q1tDpX2v{d!^ncu1s`dkwRqT1^n&*kOI9=GIKb%qZwc z79AMvVuZd(ELJOL0NVLOx5WPexooAgla-?EC5Dj^Pjd<*C~^1A^pC+-SaA<{PYr~P zDqW$q2t_7&4DvD$mBkR@g`FVS>DC52>z*5McZSS?|LGo|5KKUzPblQ`>Q~{)i&6ryzmkyoY z4<${4dGl;|57n=4xb}6WUzo}Ox6ax)rR-}sX$nu4g~lbWsRGK%A7&H9y@V3KCkZ@~ zd+>L*;Fw;;tnep*AH=6Jv|<$ly8R{0!Nn^iXSfICskXq}pW`5~BEKiX=h&cS?`2Y06>CIu z`YHkhJ}ZGUkv4OuKB7)(rS{42%Ut81R(Ts9R&#Pu2s4~e#H+{q6Y`GT9lX7dXI|lz zdCQ9x`iku>-MyCeJ&GM^IiSh_{GWdMJ@ifS|D$y zbv`d6s+?VXwjy<>j(N!f1gN*UzKo`lXd@8V%PW?0W^2C)-BOiX(X_fgsa6EN(643u zZ-jtJJ>bLE0Z`W$+!Y0n zLR`hPetHf>0iD!DRC{PQx7HJM6bqj;1DPN=~XnU<5%lEBAxno+MfdMh9!SBH#_Jd7sT>igh zDk5{KwHMo67l3PEDe3YRnQ<=hU1$!sUNU6D61Y2%FJX{WdOC#PMxTaA^)Xl*G zpO|B2{b(&fbYA=rzZa~1?YyEsw(U3d{c+(r60|gAl22R-)w1%@ewM7Q-`X27mLpvJ z?ykKU*q&3etrDMit4vw<5eH3NQ?z;E(JX!yHj&GcBN3O2(?E1B%PSQ<;m*omOcmC6hcVBTSs}Pe_?ec9hzu||7VRF3Xwf3B1i&<%q z)jPa=9RrD2uLvgc?{|A^WdLnp0%tN*m$}ffp|?O<0Y+UYM-Q54-NypE zts^!yR#LhPiA~Gxyz51O6!hiCol46!SOwyHlr@$Z#mDnR{HREw*ZbQ_-$3fYBW3*7 zuJy91AlOGoEi+k=lx-UYOD6bo$Oau^`2(lyVqQ7!m8MP$8fHP#p@rO3N_6rFK#ixd zv2-7Lo!pRaqd-m9j`^{n(8n8#P4|r}%%}_6b^YZBL9>xIT7IPZH<>ckKMpil|LgJ< z>k!PTSkxyRJNLr9H5sN6NRovujq1a*(&Jt&%8Yu2`C%)!E{hLmTH!(rZlj+x%Y;i+ zX!U7e&Td6vQ9n(^6C*oL z{QZoXRNTRFnyq~-qA>#$p#|-SOwt&vrJ;&#ZxTL-uQR2`^7{`{hDR`bpBC9j2CMey z#~?4DTf^2CC-0Z-0Le=bFGOw7CH;@o&AHH6Hx{3QihQg^P#vV}?(STd7Yp4IwmnWX zFI7CF)b}I@TRe=1_F_nkrcPLXc`_5cEMi8xw&EC?k|X)N%p!iw`>aLwL^=u8_Gx5Y z&IrYjY!Muh!HpCMCN}AOuGk7jGZHepA0Xu<$08ZKcOMpMlmb+9dU-J8Ivv}9@&D~l z?tA1mE%#Uf2N>f1tb@C!Z~X6Gv{qB&-#@daxaFGP4`#{u59In^Y83~fx(1-nPy7

r>}Z?o21f;(VftlFqL0A@qRa#Oll+K%cq_AHX4BYLm`Em z;kAqtNCckrcSAF;&%YpLz2njbnUMnAL1`wo%IlPk$_&X;<`l(%VK7f>HZJ)3KB&?RnMI7~B@8m)^vzlXIH1fuZMG;c`p2D$-7 zG`h?4Q=x`HYx6;VTs%5uV-8Y0S=GJ4!4B75+he4ag?Kn3_wf&|_{FPu5$lZUiZT{4 z?%d1DX%Upqr*q&qEssYIJ$18IAvWRXAgO8iB(zX>_i7g~8r*-aqeweIy7{$!>uonEM_Lf|yS|UN8%hUGcAEKyBE?r}W0A53^}<i0V(@CCK|eLE$W$a)O=~4tmRo!2 zjAbDb%RlYJcyfJlR|!{;kICKKW)@ljBF=$EkoETMsB82SI0#(X38|L_hsJ;M!m>#5 zJzZ^0Q#ue3eWtke8o_ZrY~sMXCZAI8Hkd((FdOj}U6T+&nUTXnAIxc9A9 zcub4NE*F(o_g#!May|(8_M`{e8~t!Xu2J?W;82o))@1Ge#7(fGpvzhYVr3!KA0QaT z#@Qf@P3pNfYkdRw!Wz`jfS@%>L=jANahDIhP+4}?jY#R%6#+O2R+XLhlBd0?-R_*H z(sm)EZ~_!92k+uv7(@+_lcnh?c&&2-UjtrTTf#hXfbT@urwDU@XoN_oE}zj#k~^Bg zE6~MEbdvf4*xqzDIq@@I4KFIiKR~nv-nj-s0EeJIvs{X=L)VNmJOxiee>0%7KPx&uc-X|kL1l;fx{GDXeYb+zdoW8pIzCU zrPDuXRr8E?`U+yHKVFulN7lN&oScGJrEH*$!RU&o>n?w>%HN4iqfd}VLW?nK`1!ea zX!tCK`WkkMB~!*=Ja<`(9#PTc02X^YU#c3GU}_)iU_iOjsB=7qF`%0#+;>c`c9x%v zCim9a=0l2Y893+s=1v7CK$fS$w(glxO!Px7JcGeB$RwyAG`fiMY#G~;maSfLuTmQu zgT$x*i)D|9A@DQ_%~-sX+98Z_M273J8mKWeJSS#=Iy9JNiVX*wRe`;Ox+atQdc8@%j~|SJ-%;v14!Z>qP$k5B*?h~E6KqOlOCoPbN~6_}0c#iMUF~lW z4DMS(BM%~S^cr|yIrg8JBo7&%u5>P;lB^&rQi-m zT_CN7@+;l)VRj6?d_RMgmm1fpbb{(O1C5;G1XsWhl7^$CB1GOCtby3o$cDgb&WAh9 zjx>7jm>c<}(y!J+E>wCzEk%eP*%cG{+rAyIPEd>OR4Ofh35o0`U^dY$%ypa-5nyU$-hpoC?xtGBd7n&TIMilzPZA&hIx zkWz}V7e~*~Vj}hKYCE6jf}wFJBbihai1OGrn#NRXo1q92b6k7;c@B#APG)9g}b>-RREAo+y%{^&3PXtDtA3m-vxc$b08`*C1f<9FJ zlrC#5{ru{|d}zzQwrR-Ll1ibSRHofmmP9v4kxS!X2XiB{h3ib4`Fn)g{oT*vK!!uj zTJw|=Z(WlJSn)1Et%6KivFYJQGXa7hhBwmIHaE)m4|_f9tD$8DW<}fZPM3`m5|gV< z$O5N`s8W7q$-!$WRbkl;rn2o~V>d$NBlTRKiZ-N0evgG1Md5y{R5G zuqX@`@PuqH%JYwlIR<->#zsN@#=NG|&Pt?$xgYpe*6eo>F%cS=2^!_bOf5OV(no46 zq%|-gnK`LfYfMbzB_W0AY4)0%YnTCl%IXdh6$+Aeq45=?7m1D%2OH` znj_6;D7$F@f@=N*KKE6Tmlt(_JJf+>OMX(#*3HjY&%1YiFXKC!)T`)fCydq<=(_E& zhAv~o4`CjWs-hDk!Zzz|awddt_iLn@xn&>8wUNjrlQLArA(Eu@tSuT+nAa>~Ff27P zb0yzFt*V^|3p5R>G*+HLQ5Z_^S0Tv_kvqKkqx|a%Zm(ZEba=DcvhCjklkEL{_O|6H z>cJM6{!qTOWlzCJO9cIgP18FHKLgk^;Ze}%ae6ap73$tNvA4t9*V;?KSp#@|B%rkX01 zq=e}d8!-XNIdtRdFuFT|pZ$Ix_3UhESBD!5#WTRJ$1XP!;X$&(2h8B*JKICYHOSMz zJSyRzTN2GXc>>(NoEi{`F7-R2_z&o{hZPi|c#@dAmUVv{GG=b`!f;=}nbfgbXyNw?21{d057oF$C^bs|>Z z1alGFlm0&u=38+cSD8EYwi9D*r*FS4ta5jEm8IrV3?#47@!^&X}+ zT?FRG=lv{eC4FJZ5Z$GnA*zRvq~iZ%^>4OXUYR{T(*9! z$BwACtOM9w)(PyxB<2#Lu<$xEtbK>{c7~t}3X@*}E|AloCEN~ah>APugcdAja|AW6WuZ19+Ed&R~Guu@i6rDHQ3& zExT8&(fGiKTAuz*LHgLpU7Z*SeEQF1h2yxi{Fcs-mA4icVt~?UKwN7$$U%C z^KI)C0S_JW%PSlIa+=QH>hEUTrM$^gqXo{a(*2b)@WqMR^?P;I$fMKDb+mRgHg`+8 z?~D_EH)MW&d4?m#CwfQ#jvmw;y|7Hl+&Gn$e+6UZIdj*33S`wjhU2a6@__6t>y7UX zm9yVex$gDy4Ue{Y1dZ~u#zdmm4ZhTVLxCWz?R3QCYG+%|5ImM(*#I?tfW9y^AZ#QG z?*=A;OD!+3n$H0AL>wq=UqQUS8NatC((os%z13J{;MS(}771ggvrWwf0#S9s>#e>% zl7Q7cR`F6n`}|#&1KE%Zg|{P2tc{RaMr&?6hzQ1A#Br|oS7_QB6O(~~<1bBeZNRhRRi#&~9d^q=aKYCq$#t@R&$De$nT0VruDSW5=*?>|2l5QggC*XIA z+g3JCF^r753|WYYlW5882}6+P9`&eRtsawR4blwuwV1rz1I<8u2gzwkR^O2y&r|&< z-%ZAJMMjyckVTWm^IE|s_8X%a{m2l851q+K8&b~$5#TIQz13riJVD`(hAsb>uAaV> zPIL;*!b`8*vj2D})o2|E5xJe1sory@`pWD~h6u3(Ow~jtoWJ9fZ~VcZ06bR6vB=1=7VB`j zR)p+WImA(s5C#*uu@3iZ-`ae&m2(cHUE6CMwA({x{lt1Ui}m@U4z+Yppg+g+gaiqM) zQ)rtF{N=yDc$veEv~!hJ=hTW`;-j)sv_Ub%%R6lX@_`&uzgnPeo(r#;|CY+g(XGb{ zL5nX^den*$Gh@YlNq6o{2#N^g8M_j44&>G+%bK{P z(&broQXs1ld7hPgEqVp3Ew3kgZw)h~LKDY0h$HJWUajI`jM==<;lrkgr8~%eGuPyx zow+qCrz|k$u?AN?=TEZYb_HB)yK}D1pBAp7))*;rru*ybhK{;BX$IjvQ>cNULB&*c z*~4g);woe8C^gHSSrPk+lX={h$^mexF~CI-;C>wGA4Znd$R#$@0p;jeErM>m_N780 zCmU!7gY%DLrKD|bcs?7hO|0-fmgqV>PIL!V{kCNlp^i|#9$eR?s(eM zm+y9phnv^bWvH$l1i_L1RRT?F_ZGYJaOvHuu(g{ZQ2K~+q}yt2I5+bQBV9t0q1mz9>dQq4?zGV`7^v9icqCV$@jAYcYIaLp>@r17gnI}7w4N=ii z`U0q(bX6(6gHw$2$F(pT+Fz>OIk!2bo^>sY5h5h-!#`N4dlhM}SVxlxa}uH|H!!Kx zR~Y$q8kRPOUfx=k=IuWyln}CYXwSdX8W9j6?qSaQB24aXH3cJBG4kf+C+3o2?G!z~ z|1naW$zbv$b;zWNeg)XC+6&o{rdWgY1gA_OU2`J|lDHU57w?ocbb6uO-n9Y3g8%C2 z4BDr&E}Zj~kraL=YNqnqBtx0x8}#2!T^ub_Ep6d@Tm=tpbkG0z$iur%6n9(;3X0`m z!>G7MUdV|gl*wYq#@)!pU)KU|t(Zm=0c^DfXZ!g1nQ0w ziRhu#zxsx#X`#+Da}qj6^lm#z?<76c;i{YU$AVXiVfam=Rb1TrA#p$zZ=lW^E$R|v z%g+rm)4>tYUMuc1^iG>RW!i_>x3K*4!Prm8R2o6UR8aZ}UHou3yKeU~Rr!WsT8Cy_ z`1nWcG($_vReVIv?;EO;$V{8y8RjWirMn{-1TbCRR!O)%+ewkU6Ws~G8bB0{fZje`H-p^ z^|vEtX`#QXcxSIz?&oihmEHlzaqxV@!av{`soWipAh2t7hp1|hEdOg)&A(MUTw!##NJ z2Uaceu|FXGXew@Rl=k0Q#p&4rkx0yqPG;Ki>A9&eGC>L%1aOZ&v`q}egW!gEuQGbE z)KE#C5MFzXiD}JJERK-o+{VjD;SZruMy~}*iNhqCiaT_b1sjP*kB$Yn+b}(%JfW}u zJ!P<%@enGF!1vLq?Wx8|sC;U4gi@dLYG24WUs(u&W2T7oS+D-$d*KNyF~u^j z5{f1-v9X6=<(S! zF2k+IL@fF5)3c?%+d7ksi{#t1j*4U*jSQ1;%Sp>6Y4r<>l{AS|Bbvoe`0_rjFJtgm z);u^+ttVjiR622tcBm@Jj9N%@jDglWWwT^~k zn1cf~5G+^w<^0<(=wA@kPEtO!esV;F^)s;0lF3HcXK6Gu93I{Ej zZY-)zYrU`oP*p-QakvaW z{|G9)`uy1tlpP-x$Y;7u$Rdi1#23aIa)#r4xI7(=L-A9BAo1Z-4Ket6DglHSy$)`g<>;s-)u@`f{2Iotyl&fe*yg$|gUs%sJ<`!m8-v7L2>GLkVgOD$jUF>%G6LPYrv@xzSg4} zN8|xuZ)F$~q_uEmZ`IPmzK*^-)YF>ndk;mB~6fG`{)-2*3}?)kZ9{o5QjgQEOnum7NOzq-85N zvX!g_2RP=SY7>Up=L%_5|k+vNDw zt4e&iCtSpsU|R|r3gF*`jro1@U%fgnx}f@cFKx&ecz{vrlmo9%=W87G5cbfnk+;7i z=na1o11tz7w?nBYM&1=F`m^%MVW=1dmZP7Ecz8VXOye;rB>WDpjcu?z5B*CUJe*fJ=F(9B;s69q|gX`HtxUmNA;6Hd}-FzB-eN`PjELM`iWZmt@=Umjm!U$t%7Pb%wYiq#*J#H?MW| zk0BfEQOf*b>SBA24NNP{H^)dZi8gC}K;WfEdy(+qA2VxyBdAlcS=G-R~?_?3SyDGh+6Hae2+%qN@ptr+45iUXwg*OJQqf zy_N$Am{rc7BZ<_=kM+reuLyYJ`zn)pgSAn~W68|5Rbpw`s)=9q$QrBcJ6|(*#>i)p z3vXU!RwC%lT80XWDwx*C(har}`RNs;S|SrW=2n;RdQjYP>aRVc!>mmyWCRi}hA5F^ z@}@&3YnMu8byTt`P-7UA_!p0EJ1D*hpn>y)YQ$HJ!@KV`CEPKrOJa6xqiqi4ob{HX z5|G{NjK?**x8>_ae`z2z(#-!6?^GA7}(e%e;+kJN&^mwF8aw-bjq4PF{)p=)#RJ8|$@K z#GY}*Xhqb-*GqwZiC}SMb?gCp`6d~kYtp^urZ`NlUj zgv&g8-v*kZfE~<6GQ~W5^Z>iAsbiGve>YKA)J5$+!7bOU1F`|`C|D$k{^43Rc=gMd z4SUhr51Z46djDImEsb4q(sU9Nbuxt>qxebUch)g})cuhgeT_?u$vQNT%RETON%)Wr z>Z3&?L8^C4)YKzJvP8@qMEXTK#xMfeEke-JdK^m=I8Me`N9ynUYuN^HXyQ%s%V0vD-6l)`bIrlaAD=v zn~T2TlYWrpz`)xN=u7^J=`F<#&8!XRZ|C4>Udo~lO|%*)ddVztsWJ+B^#JR=el#PO8+Hy>)82$f~q zqXO`nCw6`5KQc@2xTe^{mWUINl}lh2@>1_V7yNbe@2Mm5{C?^a<%i9)*D-IZR7_T- zLF}04qyA9JnBGNZa8Nyj(y0-f)}lhvyNReK-6z8at!d>@59l!cP||jB7vnaa0qzpV zT-G}Lf|X7JhHyI9S>0|?0YQ)ywe!8?7|F0kds;zpm7S1d<#zOwZZI`$*&m~Y&c2gF zXHWnS(}p|Tw^y~NP8UV>-D_)&QEPbbf8;Q(kGx&v>l$=d^jK+%?-0*o`^Qpm16

zoZ(tc{r0DVm*WAfF4l=*qbP79#uU9`?uNVf+vTvlEDFB&!GHhE;aZDk227AtyZ5DK zm83iOsgxS(XcLBx@M<}dthA!eHAaM%5lK4TBqXxCcMNk`b?Zz*pEl94?d>V!MO{~U zbq9|fax}&U)0|TQ5^D~61OJbWkNtIbqF@6W)XR8G`}l7=Nt{EGP)cOs3jXzw`pTM$ zlIb&Vv5;kCvGc5}_P~rELXr<$>^>y)hl;9Q)anE29(oW?kW4-ZXBtekg+l#q;4eN5 z)+|%#&3$6y6+6_fm6R!QWLM20hgj1NqaZ6c9E_|?6_L_pxkh({F$P7$DDT4J$SNA- z--eOyNZ1+E;GeQ-uIcWzGd>@X&i#9I`&v|`7gi^)w!NkWY=_`$|neaA$XhAN>qi{p~7;-`ctcj672frP9?gr@>22pc5G zY>u9~2C<(5dKMUnhN<8?;yvW$6<0zM8r;L##thvK)B5W5yrjdiCTRF_F_%M$aH+!c z*X}!v5-{F-IcprT1ReS46cBF^&bHFKY1;x4H^u>r2Iq3ciyw)>rV%u+fw$WKa|X3G zYKR!Hq;q_QyXuU0zP`n+CB{w9Q7dPG@c(BNE>OIxmZf>oe}|+6+BmQWI@)bMf#3nk zXe74P>;jwXVay52thT!9u0PI8PS3nv&Ae8MEL@3D1J%3CrX+E9-LCo zb{lFAf-^9J9y49hL@zIW{Z=Z)3Va@*x~4UDkQRo)+}2N zD0Tgd1&kpDGLB+gIIb{Oq*yEe2sRZ?VBD~R!+M<9*%s_Lp%0d?bv8J~88T`Fi`81+b@K|tFx+`O?SJ07Y zPZP$i{$`5!V!g+0d`5cyUE;sGUs_5Mk^&;qWtE_xWhIEo*aMrY+!Q&1dDA*lYHB$R z4mNk1P(>m_YwbS18IGXiBJQP4d4mdKD=Dl>)zF^A*d^$PmQa(O6C&aPxiA)_{-j0h zPTKOnn~fEc_*k5)AQZvQChA1y8Q4CplpwIitM4qZsNW6|K|e|5cicj zrqnaY(xE^qiJj=6nID<Co34t>ZPxW5~WEe8-_lASAgO(I>Fi5~Lf98&@cd&EI4E6IApIP4RE7zg@f zRN2!2z2N%c9QY0-5Z%O!|5%vb-wUHBqZbyl4-)u>eC4an0!VYjQ$XsX*XL@^)q3nt zuTx#v7eJkY@yOk2M9T89qE z5_F=S?zzYpn9NZlCPb9fC?N%uVAYm8v^OZI-TEkF!H^Se$Y52cVuh?|pIBg1-_nxD z!A9;UpCmKD14`F&EJMFn)8TGoH`6JPiV13pmV3-Ran$EIAt;U+CN%+Jpq;gCz(`z5 z5h$n9UzZTI5L6KOLzcW1!ZtItG5gUzQ4-*!RH6 z_jv^;-fWJDLqH}|IFSN3JM5JQVri_(Y*8x% z_~4&GR7a@XT*qsw!!Mblsg7_kyg>k9bCU+X;Mcs>HWZ`II7^Sb4NKDN6|O+olQK7_ zl8L-*o4>p~3^Z-SFy&lG!2~1^P1y;ngtp6%&o8(4q75V#|UB?Agpys4+epX z79+f!2SpbF;E{+Y6>2yhHa)3JO$Jy~Z$~<}1~HI_S>u;}wa9%KYU~^BKBU@T z&FGX6`@RdaB`mo9%RcTy4tZ2*uQsuWua3FL;|MEm9dc}_@#9}DzKQAN8WzrdHL3@u z`dk%TXNU7Y)&P;;0Sk3$m)*Qx1FDb!s+gh5Iay3ZqKYSl>v+QfC6?PFqjcWQx(-{I zXVYbVO@k8C6S1GAG5);qcG=T_QJ_GRQO0pVg~54~gir zL5gr!&!#-~PqA0+BrwnEJyzfwK$&Qse^=NDI0fc)G>v*aV3wYwzu4x151l(@K0&C= zetj`=x&I6sW22CF-jLcSYqKnL8aVHaM++!DTPMYS8Xxv ziiw%gIVy+eyU?=-l@~+1%OSr+%*Hx^*MR};E_BycbVvQH`cWG2y ztAz-b+Ee6hGQ^%aheqe-45OCEF|l*7W2@6$s;P(rv7@gVf+!p={V5HL?}ih*grZzwODeOL@C5xD(ZeC zh*%*?dXgaZefiTd{2dFsV0pP+pC1Iq_M4c2ILb^tYRhVB%~UQ??>qy9Mj-ix7VZh%8vq z+sNA%yZ`)`^Vv`O>R*7H0nBoM#%z0m%fgp+s$sKro>16i7J{u=a#~Jda?_wPA-mE) zWr1Dbl}hnhg8ZT;Mfqm2Q#e?0ysK#J-vV2{Z#DG4E2py1W*tR%h|m)OUFAbtfoy@y z;p?F>jH(G@!%2l};`0|4Vo{~|Ltutu0*a{9%ZFYO@rS-~&~PimC{A4U*Jkp?3ZlR% z>{hCYos;$V1ppySiz`le$!=K!PqL{7Zyka$^^2`ctmS|o_^(#vG8SbXO0d!Nxz&^t zuFwz6*mv0f54Wy3&*N7r;WWf%uvB$Dcm~@o$)YfZL@i^;`jkh+zb653v4fxj#)7I? zF5Nipuz_PB%88h4V(#{mVp2q=w(tk$jtX)S{)LHanL577F4)Wt_g(;b zaVW816!cJ4h~(>3L#?}%@i-eg3AM$sIe&c)LdvWy`YzjT#~iY~4M(1|tOj=I$DS}2 zQd-Bt*@}};dLHCdMbmNP)GoHR^bw5p$hpne@_kNA&WvAK^&?GFZz@w03NTY-$sZSa zCZ-o`r^eAhrw@0h{NWS5Fkub~zUSQnVX?|^{!?ZHS>Wip-HpfN(>0+idN3@Qg7CvH zu*&6&A~uO6w*_`^W&s*HSN$`Rkx=8=SV#nTNSH+n3AQe`V@Kb zX4}oi!?V+L)UuCEsbUbZ3-?_4kriU2$%YJNnO=|i>fJOVrv^SLIg=ByJp%Z5e%MI@ zjE0f6%e_!}ZK>WUtrudvh)10D zc?m#*Sn24EOo9BgPsTHPdSuUTk!1ZcPIixWnKGJ6=Xa5Nxj4e(kmauXrMuqYzh|*F zh{3-zh-kiMk$r)i;oi{aTz#ylvZMxsh3a}Bxk9?^i)fy2DQqTaQ5jKukNDk+g}_UX zUI|5)03-5gEfa=|w;#+d%-l9PmDL6txg&luR5`Z-O-?$pUM{7JD*2Tp!i2DH>i$@^ z$^_F}38R?_8!UyJLeSF1@@f+THV;kI&Zw;^ckmoU^ zhTie}4K3@|gQgK40_k*4r2v)%V$H4kN-cYO_bl;CSW!^A!Erq}$ z(x1Y`*qGSY(WT2pd-QTzF|cwQZHqdztvvE@cIsDW6m1t%`yYST=hY^Fox3oPM549D zSK#x10v!U)EH`PW2bG2~Mc}k>9FBY1(|TeEn+7pCGHS+W8v{(itvns)YDcYFakbx3 za8V68p5NT2F5%Q-l3*5Ty&%5@#86x%IkkSEPc$q2#^$~SUY@m>SH7DUj>$JYje2{X zlyoa1#lMy#>Wfe)pMMN<``&;Wlp~JUiguf2G7J+0 z#}-WNm5~|1U0N+(nN^(0GDlF>CX9=)Fvr}*lZZu?J%~VGX!JCl>QkB#4iWP(QWUZ9)_lma9EKoBq z&En(Mwf!Tf#tsSMFV+sXY|2SonMDx3ki5hOy!7LD2v_t;<6gRV?2wwV(eF><-AY+h zw1qCp#tW_&g+^04Gl6Qy3V5jRy##yc^W2@nyr$wfO3kG8qk9+x6X!2N8LIZ?kcfMB zP#CK*dw98JO4VM1#_u@ZflTp~d%%^5w)O5T##c6fYnA=Q)DIbVS~7fG&4)210AD5^j@jn1uK3%oIe4ExIO{ATM>$hT$ES_H0%%Bfu*0 zYu}cLob}vY*?rZ*AtQjAhM)Egx4<`H03w^)^kSB&Qu}~WQ}L334+F1;D4;U9n&C=l z4gV<3Ks>W`rL!#+_6Q*j;~#9VfC|%(a4e~(KA!eIQdrCY46wQchFwh)D-)2Qw*ro% z+vaFeZ2WUTx(INXc$N0*%ZyFQojqA*)aCQACQJ&ji`~8MEug2faF~r1Iq>JH^3e>T z-J5VK_zxtUoh!+#LV{Evro&gAF-Z`+NKTR93UmscC3OE18R3=rq+?#DR0w@c( zE543#%qm<0NRpdc%q$$+&y0XlqR-eX99K6&3VS{H5m`CJCu+6cm?!0s(_gIyQB);p zGn0=+eJiL8Nl8cM+1)0_D81~|A?D3M*@LFy_|bK=UD^gp8v3uEPxQ~#;C@<{slw;# z*i>)FiBRA{C6I{OSQsCjM$VdC$bzYCpD7kf(LZ;2oq$hj;iB{BJ)XgEv;4^A-$grf z?*TzniwBdGLoWYiG&DySh@EQtWEl4%EJUcs9Ec$N20f@fgoOKgckSA4`qAo|3|;Ek z?B|826_F8Rbnzr7)7_%}QAtmv^UiYabWz|z2=c`VlH%fHM2-M-i!#~bocdc!8zw^- z`QYLvAJ=V1C*2Gl8|Bj{X(rq#pX{e=E_L>!BJda+&Es|~5zgr6=um=`Q37oeg#Q{i zS{X)q4*9B=swxAN#6dn(|FfYWLiyl)zNLJ~o60H9UkTr5TD~fI4xhnL=#f-fgiNZ# zsj&pt^_!utT1|<}ae$H)f8@Z9c`4p#nik9LZnLcXkVO77o8dKGrK>eURwJ#TbgglB zvbtnVP1bo!+=T-sB1!tmI`Bz+Od{5gz8}!4f!$ZT;6A%p*n{dmPGvkc9Uk;Q>et~g zffHUcwc1ul%~D_TJIt^-i4}&|Q(tm2^=482OQBJP0w{~NP_NjIUh9VUMGXSawzEBk~A*&9k6 z7Ksy$BHJY7U09caLOA~sQXpkD$&)4UEEcEuw3DUyi);!VD7+QQ>gWoP$(}6-`_9xr z%+lj=qk#Oc4nvpd=&rm?K7M5FaB*c~!KBLd*fQFK9buk2nF?wwY_Y5>R3DEHfyWSIElj&<7)UuW?mz5kku8PNEVnIKJ`N z$ak;nuMcA0+$Q@zF|u6M&STg>SP0vROtPNfx&m=U{1kW=2}p#duPt#5Y!39qI;?+j X4^IawQ%G|8&r6j2g-OFT00000AUPcI literal 79061 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𝔭3CdrHc-KW;Iib%D>bUK!+mO>wer8wQ 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 +#include +#include #include +#include +#include EntryAttachments::EntryAttachments(QObject* parent) : ModifiableObject(parent) { } +EntryAttachments::~EntryAttachments() +{ + clear(); +} + QList EntryAttachments::keys() const { return m_attachments.keys(); @@ -82,6 +93,10 @@ void EntryAttachments::remove(const QString& key) m_attachments.remove(key); + if (m_openedAttachments.contains(key)) { + disconnectAndEraseExternalFile(m_openedAttachments.value(key)); + } + emit removed(key); emitModified(); } @@ -92,20 +107,17 @@ void EntryAttachments::remove(const QStringList& keys) return; } + bool emitStatus = modifiedSignalEnabled(); + setEmitModified(false); + bool isModified = false; for (const QString& key : keys) { - if (!m_attachments.contains(key)) { - Q_ASSERT_X( - false, "EntryAttachments::remove", qPrintable(QString("Can't find attachment for key %1").arg(key))); - continue; - } - - isModified = true; - emit aboutToBeRemoved(key); - m_attachments.remove(key); - emit removed(key); + isModified |= m_attachments.contains(key); + remove(key); } + setEmitModified(emitStatus); + if (isModified) { emitModified(); } @@ -133,15 +145,47 @@ void EntryAttachments::clear() m_attachments.clear(); + const auto externalPath = m_openedAttachments.values(); + for (auto& path : externalPath) { + disconnectAndEraseExternalFile(path); + } + emit reset(); emitModified(); } +void EntryAttachments::disconnectAndEraseExternalFile(const QString& path) +{ + if (m_openedAttachmentsInverse.contains(path)) { + m_attachmentFileWatchers.value(path)->stop(); + m_attachmentFileWatchers.remove(path); + + m_openedAttachments.remove(m_openedAttachmentsInverse.value(path)); + m_openedAttachmentsInverse.remove(path); + } + + QFile f(path); + if (f.open(QFile::ReadWrite)) { + qint64 blocks = f.size() / 128 + 1; + for (qint64 i = 0; i < blocks; ++i) { + f.write(randomGen()->randomArray(128)); + } + f.close(); + } + f.remove(); +} + void EntryAttachments::copyDataFrom(const EntryAttachments* other) { if (*this != *other) { emit aboutToBeReset(); + // Reset all externally opened files + const auto externalPath = m_openedAttachments.values(); + for (auto& path : externalPath) { + disconnectAndEraseExternalFile(path); + } + m_attachments = other->m_attachments; emit reset(); @@ -167,3 +211,54 @@ int EntryAttachments::attachmentsSize() const } return size; } + +bool EntryAttachments::openAttachment(const QString& key, QString* errorMessage) +{ + if (!m_openedAttachments.contains(key)) { + const QByteArray attachmentData = value(key); + auto ext = key.contains(".") ? "." + key.split(".").last() : ""; + +#ifdef KEEPASSXC_DIST_SNAP + const QString tmpFileTemplate = + QString("%1/XXXXXXXXXXXX%2").arg(QProcessEnvironment::systemEnvironment().value("SNAP_USER_DATA"), ext); +#else + const QString tmpFileTemplate = QDir::temp().absoluteFilePath(QString("XXXXXXXXXXXX").append(ext)); +#endif + + QTemporaryFile tmpFile(tmpFileTemplate); + + const bool saveOk = tmpFile.open() && tmpFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner) + && tmpFile.write(attachmentData) == attachmentData.size() && tmpFile.flush(); + + if (!saveOk && errorMessage) { + *errorMessage = tr("%1 - %2").arg(key, tmpFile.errorString()); + return false; + } + + tmpFile.close(); + tmpFile.setAutoRemove(false); + m_openedAttachments.insert(key, tmpFile.fileName()); + m_openedAttachmentsInverse.insert(tmpFile.fileName(), key); + + auto watcher = QSharedPointer::create(); + watcher->start(tmpFile.fileName(), 5); + connect(watcher.data(), &FileWatcher::fileChanged, this, &EntryAttachments::attachmentFileModified); + m_attachmentFileWatchers.insert(tmpFile.fileName(), watcher); + } + + const bool openOk = QDesktopServices::openUrl(QUrl::fromLocalFile(m_openedAttachments.value(key))); + if (!openOk && errorMessage) { + *errorMessage = tr("Cannot open file \"%1\"").arg(key); + return false; + } + + return true; +} + +void EntryAttachments::attachmentFileModified(const QString& path) +{ + auto it = m_openedAttachmentsInverse.find(path); + if (it != m_openedAttachmentsInverse.end()) { + emit valueModifiedExternally(it.value(), path); + } +} diff --git a/src/core/EntryAttachments.h b/src/core/EntryAttachments.h index d23681b9..1fc35df8 100644 --- a/src/core/EntryAttachments.h +++ b/src/core/EntryAttachments.h @@ -18,10 +18,13 @@ #ifndef KEEPASSX_ENTRYATTACHMENTS_H #define KEEPASSX_ENTRYATTACHMENTS_H +#include "core/FileWatcher.h" +#include "core/ModifiableObject.h" + +#include #include #include - -#include "core/ModifiableObject.h" +#include class QStringList; @@ -31,6 +34,7 @@ class EntryAttachments : public ModifiableObject public: explicit EntryAttachments(QObject* parent = nullptr); + virtual ~EntryAttachments(); QList keys() const; bool hasKey(const QString& key) const; QSet values() const; @@ -45,9 +49,11 @@ public: bool operator==(const EntryAttachments& other) const; bool operator!=(const EntryAttachments& other) const; int attachmentsSize() const; + bool openAttachment(const QString& key, QString* errorMessage = nullptr); signals: void keyModified(const QString& key); + void valueModifiedExternally(const QString& key, const QString& path); void aboutToBeAdded(const QString& key); void added(const QString& key); void aboutToBeRemoved(const QString& key); @@ -55,8 +61,16 @@ signals: void aboutToBeReset(); void reset(); +private slots: + void attachmentFileModified(const QString& path); + private: + void disconnectAndEraseExternalFile(const QString& path); + QMap m_attachments; + QHash m_openedAttachments; + QHash m_openedAttachmentsInverse; + QHash> m_attachmentFileWatchers; }; #endif // KEEPASSX_ENTRYATTACHMENTS_H diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 86dbea41..9daae9f8 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -329,6 +329,7 @@ void DatabaseWidget::clearAllWidgets() m_editEntryWidget->clear(); m_historyEditEntryWidget->clear(); m_editGroupWidget->clear(); + m_previewView->clear(); } void DatabaseWidget::emitCurrentModeChanged() diff --git a/src/gui/EntryPreviewWidget.cpp b/src/gui/EntryPreviewWidget.cpp index b7d783e6..74fec6af 100644 --- a/src/gui/EntryPreviewWidget.cpp +++ b/src/gui/EntryPreviewWidget.cpp @@ -94,6 +94,14 @@ EntryPreviewWidget::~EntryPreviewWidget() { } +void EntryPreviewWidget::clear() +{ + hide(); + m_currentEntry = nullptr; + m_currentGroup = nullptr; + m_ui->entryAttachmentsWidget->unlinkAttachments(); +} + void EntryPreviewWidget::setEntry(Entry* selectedEntry) { if (!selectedEntry) { @@ -339,7 +347,7 @@ void EntryPreviewWidget::updateEntryAdvancedTab() m_ui->entryAttributesTable->horizontalHeader()->setStretchLastSection(true); m_ui->entryAttributesTable->resizeColumnsToContents(); m_ui->entryAttributesTable->resizeRowsToContents(); - m_ui->entryAttachmentsWidget->setEntryAttachments(m_currentEntry->attachments()); + m_ui->entryAttachmentsWidget->linkAttachments(m_currentEntry->attachments()); } void EntryPreviewWidget::updateEntryAutotypeTab() diff --git a/src/gui/EntryPreviewWidget.h b/src/gui/EntryPreviewWidget.h index 335ef26e..8a5b0c09 100644 --- a/src/gui/EntryPreviewWidget.h +++ b/src/gui/EntryPreviewWidget.h @@ -40,6 +40,7 @@ public slots: void setEntry(Entry* selectedEntry); void setGroup(Group* selectedGroup); void setDatabaseMode(DatabaseWidget::Mode mode); + void clear(); signals: void errorOccurred(const QString& error); diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp index 5687351b..9a70b211 100644 --- a/src/gui/entry/EditEntryWidget.cpp +++ b/src/gui/entry/EditEntryWidget.cpp @@ -66,6 +66,7 @@ EditEntryWidget::EditEntryWidget(QWidget* parent) , m_sshAgentUi(new Ui::EditEntryWidgetSSHAgent()) , m_historyUi(new Ui::EditEntryWidgetHistory()) , m_browserUi(new Ui::EditEntryWidgetBrowser()) + , m_attachments(new EntryAttachments()) , m_customData(new CustomData()) , m_mainWidget(new QScrollArea()) , m_advancedWidget(new QWidget()) @@ -537,7 +538,7 @@ void EditEntryWidget::setupSSHAgent() connect(m_sshAgentUi->decryptButton, &QPushButton::clicked, this, &EditEntryWidget::decryptPrivateKey); connect(m_sshAgentUi->copyToClipboardButton, &QPushButton::clicked, this, &EditEntryWidget::copyPublicKey); - connect(m_advancedUi->attachmentsWidget->entryAttachments(), &EntryAttachments::modified, + connect(m_attachments.data(), &EntryAttachments::modified, this, &EditEntryWidget::updateSSHAgentAttachments); // clang-format on @@ -576,7 +577,7 @@ void EditEntryWidget::updateSSHAgentAttachments() { // detect if KeeAgent.settings was removed by hand and reset settings if (m_entry && KeeAgentSettings::inEntryAttachments(m_entry->attachments()) - && !KeeAgentSettings::inEntryAttachments(m_advancedUi->attachmentsWidget->entryAttachments())) { + && !KeeAgentSettings::inEntryAttachments(m_attachments.data())) { m_sshAgentSettings.reset(); setSSHAgentSettings(); } @@ -584,8 +585,7 @@ void EditEntryWidget::updateSSHAgentAttachments() m_sshAgentUi->attachmentComboBox->clear(); m_sshAgentUi->attachmentComboBox->addItem(""); - auto attachments = m_advancedUi->attachmentsWidget->entryAttachments(); - for (const QString& fileName : attachments->keys()) { + for (const QString& fileName : m_attachments->keys()) { if (fileName == "KeeAgent.settings") { continue; } @@ -698,7 +698,7 @@ bool EditEntryWidget::getOpenSSHKey(OpenSSHKey& key, bool decrypt) if (!settings.toOpenSSHKey(m_mainUi->usernameComboBox->lineEdit()->text(), m_mainUi->passwordEdit->text(), m_db->filePath(), - m_advancedUi->attachmentsWidget->entryAttachments(), + m_attachments.data(), key, decrypt)) { showMessage(settings.errorString(), MessageWidget::Error); @@ -828,6 +828,7 @@ void EditEntryWidget::loadEntry(Entry* entry, void EditEntryWidget::setForms(Entry* entry, bool restore) { + m_attachments->copyDataFrom(entry->attachments()); m_customData->copyDataFrom(entry->customData()); m_mainUi->titleEdit->setReadOnly(m_history); @@ -888,7 +889,7 @@ void EditEntryWidget::setForms(Entry* entry, bool restore) m_mainUi->notesEdit->setPlainText(entry->notes()); - m_advancedUi->attachmentsWidget->setEntryAttachments(entry->attachments()); + m_advancedUi->attachmentsWidget->linkAttachments(m_attachments.data()); m_entryAttributes->copyCustomKeysFrom(entry->attributes()); if (m_attributesModel->rowCount() != 0) { @@ -1090,7 +1091,6 @@ bool EditEntryWidget::commitEntry() } m_historyModel->setEntries(m_entry->historyItems()); - m_advancedUi->attachmentsWidget->setEntryAttachments(m_entry->attachments()); showMessage(tr("Entry updated successfully."), MessageWidget::Positive); setModified(false); @@ -1110,7 +1110,7 @@ void EditEntryWidget::updateEntryData(Entry* entry) const QRegularExpression newLineRegex("(?:\r?\n|\r)"); entry->attributes()->copyCustomKeysFrom(m_entryAttributes); - entry->attachments()->copyDataFrom(m_advancedUi->attachmentsWidget->entryAttachments()); + entry->attachments()->copyDataFrom(m_attachments.data()); entry->customData()->copyDataFrom(m_customData.data()); entry->setTitle(m_mainUi->titleEdit->text().replace(newLineRegex, " ")); entry->setUsername(m_mainUi->usernameComboBox->lineEdit()->text().replace(newLineRegex, " ")); @@ -1212,7 +1212,8 @@ void EditEntryWidget::clear() m_mainUi->notesEdit->clear(); m_entryAttributes->clear(); - m_advancedUi->attachmentsWidget->clearAttachments(); + m_attachments->clear(); + m_customData->clear(); m_autoTypeAssoc->clear(); m_historyModel->clear(); m_iconsWidget->reset(); diff --git a/src/gui/entry/EditEntryWidget.h b/src/gui/entry/EditEntryWidget.h index 47975ac6..4616e1af 100644 --- a/src/gui/entry/EditEntryWidget.h +++ b/src/gui/entry/EditEntryWidget.h @@ -35,6 +35,7 @@ class EditWidgetIcons; class EditWidgetProperties; class Entry; class EntryAttributes; +class EntryAttachments; class EntryAttributesModel; class EntryHistoryModel; class QButtonGroup; @@ -171,6 +172,7 @@ private: const QScopedPointer m_sshAgentUi; const QScopedPointer m_historyUi; const QScopedPointer m_browserUi; + const QScopedPointer m_attachments; const QScopedPointer m_customData; QScrollArea* const m_mainWidget; diff --git a/src/gui/entry/EntryAttachmentsModel.h b/src/gui/entry/EntryAttachmentsModel.h index 486ee059..d155f25c 100644 --- a/src/gui/entry/EntryAttachmentsModel.h +++ b/src/gui/entry/EntryAttachmentsModel.h @@ -19,6 +19,7 @@ #define KEEPASSX_ENTRYATTACHMENTSMODEL_H #include +#include class EntryAttachments; @@ -55,7 +56,7 @@ private slots: void setReadOnly(bool readOnly); private: - EntryAttachments* m_entryAttachments; + QPointer m_entryAttachments; QStringList m_headers; bool m_readOnly = false; }; diff --git a/src/gui/entry/EntryAttachmentsWidget.cpp b/src/gui/entry/EntryAttachmentsWidget.cpp index 5d1e9240..bab041d8 100644 --- a/src/gui/entry/EntryAttachmentsWidget.cpp +++ b/src/gui/entry/EntryAttachmentsWidget.cpp @@ -1,14 +1,30 @@ +/* + * Copyright (C) 2021 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "EntryAttachmentsWidget.h" #include "ui_EntryAttachmentsWidget.h" -#include #include #include #include +#include #include #include "EntryAttachmentsModel.h" -#include "config-keepassx.h" #include "core/Config.h" #include "core/EntryAttachments.h" #include "core/Tools.h" @@ -18,7 +34,7 @@ EntryAttachmentsWidget::EntryAttachmentsWidget(QWidget* parent) : QWidget(parent) , m_ui(new Ui::EntryAttachmentsWidget) - , m_entryAttachments(new EntryAttachments(this)) + , m_entryAttachments(nullptr) , m_attachmentsModel(new EntryAttachmentsModel(this)) , m_readOnly(false) , m_buttonsVisible(true) @@ -29,7 +45,6 @@ EntryAttachmentsWidget::EntryAttachmentsWidget(QWidget* parent) m_ui->attachmentsView->viewport()->setAcceptDrops(true); m_ui->attachmentsView->viewport()->installEventFilter(this); - m_attachmentsModel->setEntryAttachments(m_entryAttachments); m_ui->attachmentsView->setModel(m_attachmentsModel); m_ui->attachmentsView->verticalHeader()->hide(); m_ui->attachmentsView->horizontalHeader()->setStretchLastSection(true); @@ -63,7 +78,7 @@ EntryAttachmentsWidget::~EntryAttachmentsWidget() { } -const EntryAttachments* EntryAttachmentsWidget::entryAttachments() const +const EntryAttachments* EntryAttachmentsWidget::attachments() const { return m_entryAttachments; } @@ -78,15 +93,29 @@ bool EntryAttachmentsWidget::isButtonsVisible() const return m_buttonsVisible; } -void EntryAttachmentsWidget::setEntryAttachments(const EntryAttachments* attachments) +void EntryAttachmentsWidget::linkAttachments(EntryAttachments* attachments) { - Q_ASSERT(attachments != nullptr); - m_entryAttachments->copyDataFrom(attachments); + unlinkAttachments(); + + m_entryAttachments = attachments; + m_attachmentsModel->setEntryAttachments(m_entryAttachments); + + if (m_entryAttachments) { + connect(m_entryAttachments, + SIGNAL(valueModifiedExternally(QString, QString)), + this, + SLOT(attachmentModifiedExternally(QString, QString))); + connect(m_entryAttachments, SIGNAL(modified()), this, SIGNAL(widgetUpdated())); + } } -void EntryAttachmentsWidget::clearAttachments() +void EntryAttachmentsWidget::unlinkAttachments() { - m_entryAttachments->clear(); + if (m_entryAttachments) { + m_entryAttachments->disconnect(this); + m_entryAttachments = nullptr; + m_attachmentsModel->setEntryAttachments(nullptr); + } } void EntryAttachmentsWidget::setReadOnly(bool readOnly) @@ -109,25 +138,9 @@ void EntryAttachmentsWidget::setButtonsVisible(bool buttonsVisible) emit buttonsVisibleChanged(m_buttonsVisible); } -QByteArray EntryAttachmentsWidget::getAttachment(const QString& name) -{ - return m_entryAttachments->value(name); -} - -void EntryAttachmentsWidget::setAttachment(const QString& name, const QByteArray& value) -{ - m_entryAttachments->set(name, value); -} - -void EntryAttachmentsWidget::removeAttachment(const QString& name) -{ - if (!isReadOnly() && m_entryAttachments->hasKey(name)) { - m_entryAttachments->remove(name); - } -} - void EntryAttachmentsWidget::insertAttachments() { + Q_ASSERT(m_entryAttachments); Q_ASSERT(!isReadOnly()); if (isReadOnly()) { return; @@ -153,6 +166,7 @@ void EntryAttachmentsWidget::insertAttachments() void EntryAttachmentsWidget::removeSelectedAttachments() { + Q_ASSERT(m_entryAttachments); Q_ASSERT(!isReadOnly()); if (isReadOnly()) { return; @@ -181,11 +195,14 @@ void EntryAttachmentsWidget::removeSelectedAttachments() void EntryAttachmentsWidget::renameSelectedAttachments() { + Q_ASSERT(m_entryAttachments); m_ui->attachmentsView->edit(m_ui->attachmentsView->selectionModel()->selectedIndexes().first()); } void EntryAttachmentsWidget::saveSelectedAttachments() { + Q_ASSERT(m_entryAttachments); + const QModelIndexList indexes = m_ui->attachmentsView->selectionModel()->selectedRows(0); if (indexes.isEmpty()) { return; @@ -253,7 +270,7 @@ void EntryAttachmentsWidget::openAttachment(const QModelIndex& index) } QString errorMessage; - if (!openAttachment(index, errorMessage)) { + if (!m_entryAttachments->openAttachment(m_attachmentsModel->keyByIndex(index), &errorMessage)) { errorOccurred(tr("Unable to open attachment:\n%1").arg(errorMessage)); } } @@ -268,7 +285,7 @@ void EntryAttachmentsWidget::openSelectedAttachments() QStringList errors; for (const QModelIndex& index : indexes) { QString errorMessage; - if (!openAttachment(index, errorMessage)) { + if (!m_entryAttachments->openAttachment(m_attachmentsModel->keyByIndex(index), &errorMessage)) { const QString filename = m_attachmentsModel->keyByIndex(index); errors.append(QString("%1 - %2").arg(filename, errorMessage)); }; @@ -324,39 +341,6 @@ bool EntryAttachmentsWidget::insertAttachments(const QStringList& filenames, QSt return errors.isEmpty(); } -bool EntryAttachmentsWidget::openAttachment(const QModelIndex& index, QString& errorMessage) -{ - const QString filename = m_attachmentsModel->keyByIndex(index); - const QByteArray attachmentData = m_entryAttachments->value(filename); - - // tmp file will be removed once the database (or the application) has been closed -#ifdef KEEPASSXC_DIST_SNAP - const QString tmpFileTemplate = - QString("%1/XXXXXX.%2").arg(QProcessEnvironment::systemEnvironment().value("SNAP_USER_DATA"), filename); -#else - const QString tmpFileTemplate = QDir::temp().absoluteFilePath(QString("XXXXXX.").append(filename)); -#endif - - QScopedPointer tmpFile(new QTemporaryFile(tmpFileTemplate, this)); - - const bool saveOk = tmpFile->open() && tmpFile->write(attachmentData) == attachmentData.size() && tmpFile->flush(); - if (!saveOk) { - errorMessage = QString("%1 - %2").arg(filename, tmpFile->errorString()); - return false; - } - - tmpFile->close(); - const bool openOk = QDesktopServices::openUrl(QUrl::fromLocalFile(tmpFile->fileName())); - if (!openOk) { - errorMessage = QString("Can't open file \"%1\"").arg(filename); - return false; - } - - // take ownership of the tmpFile pointer - tmpFile.take(); - return true; -} - QStringList EntryAttachmentsWidget::confirmLargeAttachments(const QStringList& filenames) { const QString confirmation(tr("%1 is a big file (%2 MB).\nYour database may get very large and reduce " @@ -421,3 +405,34 @@ bool EntryAttachmentsWidget::eventFilter(QObject* watched, QEvent* e) return QWidget::eventFilter(watched, e); } + +void EntryAttachmentsWidget::attachmentModifiedExternally(const QString& key, const QString& filePath) +{ + if (m_pendingChanges.contains(filePath)) { + return; + } + + m_pendingChanges << filePath; + + auto result = MessageBox::question( + this, + tr("Attachment modified"), + tr("The attachment '%1' was modified.\nDo you want to save the changes to your database?").arg(key), + MessageBox::Save | MessageBox::Discard, + MessageBox::Save); + + if (result == MessageBox::Save) { + QFile f(filePath); + if (f.open(QFile::ReadOnly)) { + m_entryAttachments->set(key, f.readAll()); + f.close(); + emit widgetUpdated(); + } else { + MessageBox::critical(this, + tr("Saving attachment failed"), + tr("Saving updated attachment failed.\nError: %1").arg(f.errorString())); + } + } + + m_pendingChanges.removeAll(filePath); +} diff --git a/src/gui/entry/EntryAttachmentsWidget.h b/src/gui/entry/EntryAttachmentsWidget.h index b959d7c7..53d5076e 100644 --- a/src/gui/entry/EntryAttachmentsWidget.h +++ b/src/gui/entry/EntryAttachmentsWidget.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2021 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef ENTRYATTACHMENTSWIDGET_H #define ENTRYATTACHMENTSWIDGET_H @@ -22,17 +39,13 @@ public: explicit EntryAttachmentsWidget(QWidget* parent = nullptr); ~EntryAttachmentsWidget(); - const EntryAttachments* entryAttachments() const; + const EntryAttachments* attachments() const; bool isReadOnly() const; bool isButtonsVisible() const; - QByteArray getAttachment(const QString& name); - void setAttachment(const QString& name, const QByteArray& value); - void removeAttachment(const QString& name); - public slots: - void setEntryAttachments(const EntryAttachments* attachments); - void clearAttachments(); + void linkAttachments(EntryAttachments* attachments); + void unlinkAttachments(); void setReadOnly(bool readOnly); void setButtonsVisible(bool isButtonsVisible); @@ -51,10 +64,10 @@ private slots: void openSelectedAttachments(); void updateButtonsVisible(); void updateButtonsEnabled(); + void attachmentModifiedExternally(const QString& key, const QString& filePath); private: bool insertAttachments(const QStringList& fileNames, QString& errorMessage); - bool openAttachment(const QModelIndex& index, QString& errorMessage); QStringList confirmLargeAttachments(const QStringList& filenames); @@ -63,6 +76,7 @@ private: QScopedPointer m_ui; QPointer m_entryAttachments; QPointer m_attachmentsModel; + QStringList m_pendingChanges; bool m_readOnly; bool m_buttonsVisible; };