From f1ac24efb98c6ca1abb900cf3d57a231a0bf490a Mon Sep 17 00:00:00 2001 From: Joe Julian Date: Mon, 6 Apr 2026 17:11:07 -0700 Subject: [PATCH] Harden Android shared vault imports --- android/keepassgo-android.jar | Bin 23214 -> 23284 bytes .../keepassgo/SharedVaultImportActivity.java | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/android/keepassgo-android.jar b/android/keepassgo-android.jar index b37b173d7b972fe923ca53a2e3db0899ff609a7d..556c6a86b6d7a7f273ad829d6265750b0aba9629 100644 GIT binary patch delta 3182 zcmYk;cQhOP_XqGqZHgjQn@7!xS~Y5`6@(%ZB8t`~V$^7hpjsn#YS(Dhi1iS=^g%Ud zP*tO9@1iwYtJb&aAHVba{PBLBd++(2bN{^64ZvRwK<2w9m#7&50D1rb5|_#>N%bd{ zLn+xHM9B&8pTyGwmH$wu1-wE}DMb{(byx-!DoU?~i3p^KzC83-4OUuqO06$E`nTp0 z$!DhgLCKlc(aOU9_E2)9zlta{vruL;I_B6A-mxp^1!xbDTizYj^b{fgh((hWTI283 zJPvVD$%;XIF9A+y^j2cAy>L~iwj?6*qvg7eo$q?sn_zz96+Z2CIw;cJWE(fDT&!G7 zlf!o2bmJ=#Tzc%i{WVWn0W(Y1`nh^cKqRZv7U~?uTSVy6=u4^ZFp?+8?w{meJ7K}8 z^q4JTqGp!>=T5b4h4pNP`6A7lH`8ODKj3*!P{g5lSOhvcLW9Pm#9%8mw2 zK8B`t%IHYZSGOMA2()F9+ZwVSAYo6XR-OKfm@0yB7!+qbFX8YY*%5v&^<(G_!(*AsmZ zwU-d`U)(3*;4j5J%SjuenRu2*_tUNHx<#+mlr-r7iJgdQ!Uy@ z&ZHj_DD-(|8WAL->R*s|) z17j!$hy04HRI`brpN}H)(?M3w{jILA#dAMa8^vkRr3oV%&4^Al>o%tCp(?%>F)qJY z#t_|BPv?H@kFGGOS=?djrvk<0K7y|pd+OA|LO6)EH=uhIRA>1%>Z}MUE{2tRz5@ga zeu$wqu6M7$m1nf$2>FI`_mjZ3_*TA~i%H(A?B!Zxw8CwsA4CM8!cZjf9f;5EC#W%Q zf}Sa_w-~Nt!{ccRj=+7ysaZ9zAf<^LW_YKVr#Yoe0By9wFn7eb}jq#cs zeCh;Q;#`%sYLM1#DEbh$pF|tTXAXQaNq0nL}yXVw%taWJ!*vgVjP!TJ|tw%Jo zI$*D4sfng?stdF61v>oWvCnOx!R_Ou=bYu4-Q=gR(uLrjoUxdAGgIWLVMqmpKUnT`_^eM&3^~>$QeVkh#{j+MmfTP^hY~p8> zcBf3E66t~BD$=haeU(8PC&Yo7s(xqb>FhsdlQD>_5Y2hm+7r+I^=2K93csbI1CDbV zU%#lc&~?$gxoZ@pdYDj{^_@hx--eAJWjw@r3RA-qzxrf_!T-(QPx;EIw6osi+&Epp zM3gS_8g*SOPeG2k+rInuA)B{`AqxF8F0}NpT0L(B25LY`kN0y#M8ZT$2;%%U-z4=p zYrFH)3Gwr`wWs9DEq0Xa!KTzUcz%vuJw~feE@bu?Ik?@v9I7=mke9-xi`Bd^?w3y@ zvxgWP3bE|z&tpO#^Dm+}`&u0{_T}RTM6YIKBx*~72OV8$15~Bw=NA3GJcF^$Hmlnt zuv3@0FkE$%4BRzKAG6LJYp~fsB9R%L{>QyVi3kPF;o?Riuxc`55Y$Fp{pQ^Ivn^8<$F}IGFIMc)##7BQ&yM)T5d{ON@*|pjBhxycu)GYHneUrFqhk|F zJ}H4q0x=PFth8-CRQf%B;e`@USp_@xq>@ix7M#I~qd)(4?7%l{h}4&t8&wNP_-C?) zI3H;pu(3Gr95b`zKWcdTYstF#N>km+TaMtRdr7w@hgV%=?XkUG(-&;{E{km)yZUWW zR(vxy^&BJGVAm^sYdigjNN7T@tFhrx?$o0=sFd)F}wQgh(WJeHA%ztMKb%!zkR6}n}Xv$n12ra8<$^+t3D!(*rCiz5`&!~684 z(^Eri-g`OI=ljPUiVT8!7XIy>w}@HCW4g|JdW8SuV=O?(Nh1{S)lNhQlUT3laB*RQ zz-a|08gaSY^&mO3KJxmMZqb|1zM1a+9mro26=1sMPZIHI^iON+-uLg2O_=K5w5!)m_EUPvCR*BY}_Y$euyns`8na7 zWcR`xtFmV&tF0~?TNHlZEn>?1w#4^!#p9Xb0$$bG=bL_XKE9|%n%PlK9^C#Y^TO?K zYHiCxD|g zGr?}J<~iU8Xr-p|1C}QPyoyD)p z_BVACnAvcGnd6YZN#tbJ{Y%|BR$*>tDG!6x0XzscX0M6wIV;l;fq{P-3UZ1tYqOKX z|7t0D3P1CYyEc*tapkWQ(X#y4ch~Ovr#y^yl=(huYzrjFpd}A&vu7vEh-I^sX?pba z#^9&eP_0U;UY|(@y_6?l5IRX#7~UKR_VbIZ@IS_C4>Cphzp9z%Q0*`Kn_Kyn5s$_jz_$}3Ak*l^r+grD1St>B+J;wx^g|LO)>y%2Z790`iexu^Pmv@ zn%9KH_Zd=+z7rx&DZORUsd)pJ-(ahS3w|C0G`gTXy-8}Q+$D@?e&)N;h?|7_9c+J+ z^R;nDAXTBrP)*ViUZ*slFfb(RxR9fts!Q4x5ivK+6p}yS=`Vc<)}-s8zy>0bFMBfL zuAngw)j4P?8sp_w5RV5BWYvyo-3YMo54V(1q(xf5{iTd&h0*B(6Dr5zg4V z2-$pUvldoDSaMaJ#v<;JmRGF!_I#jRNyF}i2{`sa)eQkVa)YMXI@5zd#%3b_2B8aBsZX2lx0@_K8oLErFKfa_`2_0Dn{}O@5a#U+&pQ; zQ*#^#$nz7|G9rJPGM)}ROTn5Zqf_K(<|d|29N?)0m8WvP4X-3m8y7%|`T*AE1b^Sy zej)1J36fOk*2Iv@v|LUodhpg~enGWHYy%EsQdnVcrx#w-DL(w%m~!Ljq%rLSOSYiw z4y6n>HK7P!Lk->xx}zL8_;6|_I>0{~{%)dcu;^Qi=qvSm*T@9tg;5c)Z0CNebX1xr z86KRGZT^Z$zOzv+z34R#jn$gd zmm474YbAS)2koAE6HR;9D`JsPw(t|uew6X)G}NPd{tC^w_{QD*xajDM)b$Od#<@Hb&>aiUb zx{G3xVfNwbb7u@;Nav>8=iLd)BaX@@(cn-=Ms&*!SSRUJAi4j(Kgx1CMIY4Sh~l)> z@G3hkxs{)DHIN|=EM9DJYmaAm@F)fv%uy~-T@Z9BUCgn3eJo;XZlN=AjL>x8?o)9A z5}Y~FF}~%3@L-s7d(LPeC)W{iYHl-SpP)QbIKX7 zDO;X8;LIv_xfS5le(lq}w7jQJh5{@=1?lPt6%*vx@ZEPg71QJMk-TR$aY$36y59Wm zy} z&H7)e>ZgJ5D5)-cj?4u<142n{@}tR&H9g{0yt(Pm*bJEQ_o@JhL(wyO8M;m=bI}^w z`glIKcCa^YE%zjG<=&W=j<(q(VO^cKHC0(b0}s882pG8?B)_v%TH*QgB_V9SAXK0r zn2nTD964`e_wnSSTe59ph(&kpZmG@_JHVpDwHyEi2ElXdA_p6GI1_B!e~@_%H#-Ft zjZo<(V9LtaCZhBA%e&#{QBjzVbzyP8)JhLsOGvR@0g$vYxxLFSht?r)MIH( z5TG!t##kit61h=h)%HCWI+nUV{Cgc8NlG^x>b3PZJ58#`*!5Uw`&us>9Qr2O{uXT zWCZBJ!n=WTLjxv8fU14xpaz#A2Gh+`HU)D)cLVE$Vd8Vw@H>-k>Mc>%f$Hs`gImAb z!^kze2Y+Vkx6U)R$+~)Hfe(2NGLrm^99yF^Z^e0l`QiVNr;M{`ZMFJIs=DWzJtv=kc(=!hIUcrFvO)3%(qj#9IjIt5m4X z2&`Fk6G|+!NfkhOmeBUYuZe1&S_KwxISY~wq=yW4QZKE{vD=4FC3(EQ(3eE}g6DUZ zNwJVBzv^7SCtXQzjJI=GXgiZe>Ir{OYnvs1&GKBO!M{j2SKyBd@T0y)p;5|&n~0+F z)}*hRcu>U~Y6fqY$~VeuE6D{B{8y(gG=&T>(-FbkajRH z$S2~5#27mM&Fb@+aydjYFw)FMDRlZ_SG^(kEdJr!*|YP)q30MZXLGxH>h_k_WArWc zJyN8@MfXeGZWm7LjV-WzS&lsy^n<;pd|QLExM$$e(IUnU5uCqCDomH56D7KObY9J>jnGgoX*84?e_e>Fz1A)w;)ig0Xr0*h(pPnE!o!tje3= z?6dt4wk{gB_~(4wZJ_2xzn}grz1?!^j)O-tX#r!>Rv@$$(O<{Sp=@Ur)hwaBdW{%w zt)_P~*^Mg3_1G-)#0+)~pkcF1HI9c=8r;h7?c6I)jt}>u9xikuJdz+mf}Y;XQ=NMl zR`&W#FKW`vjnU)TnkRk|TQ*|5e?~mo*S-bKg0{ZT*`7Uh5va*4{O%lI{wy~07oc^~ z5hQeEd{Na;rVKy616AtwYV_}Pw1^RID7d5sbJui4rdOoGT2Fs^oSD0>+-7```{u&A zyO#$MN>qVtdE-1z0BHrkts|<7)0B?w)1E{#C@0az>B%is2tb zQ*uoN{Wlm3BsLlyRI9CS1g^l8!@%uhUw95Gnu=!*7c~;;itdML33K1|lO%B8CA)Fy zjM9>&gF5-ontRp%p$>>6KqTeR^KpCS(L=9(vgtfvXU)Zpf$6!t{JUJkK`boHJsZTr z&CUIH&%Wi(^8XI}?>!9frx{r1ZsWqm+=UxadQ7%aMoeI6Ehau_LnftY3nrh@u1qYQ ze3;ZY1v8O#4rh|-e2EFe`3e(1mp~@NE_fyuuK#Fu^$}ps@qZH%As9F2dn!hTZ3ju* Uc9A7wF?_^9%yCW}iaG560A^jV4*&oF diff --git a/androidsrc/org/julianfamily/keepassgo/SharedVaultImportActivity.java b/androidsrc/org/julianfamily/keepassgo/SharedVaultImportActivity.java index 27268f6..b669fa7 100644 --- a/androidsrc/org/julianfamily/keepassgo/SharedVaultImportActivity.java +++ b/androidsrc/org/julianfamily/keepassgo/SharedVaultImportActivity.java @@ -26,6 +26,15 @@ public final class SharedVaultImportActivity extends Activity { finish(); } + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + setIntent(intent); + handleIntent(intent); + launchMainActivity(); + finish(); + } + private void handleIntent(Intent intent) { Uri uri = resolveSharedUri(intent); if (uri == null) { @@ -35,7 +44,7 @@ public final class SharedVaultImportActivity extends Activity { try { persistPendingImport(uri); Log.i(TAG, "queued shared vault import from " + uri); - } catch (IOException err) { + } catch (IOException | RuntimeException err) { Log.e(TAG, "failed to queue shared vault import", err); } }