From 53ce6d7ab690c75561def56d6373d94f9c7573c6 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Tue, 31 Mar 2026 07:33:50 -0400 Subject: [PATCH] undf: assign 898-906; stamp dosbox-x/rpcs3/ppsspp patches --- UNDF-REGISTRY.json | 11 +- ...-overlay-DOSnames-cache-vector-dedup.patch | 1 + ...02-overlay-deleted-files-vector-scan.patch | 1 + .../test/DosboxXOverlayCacheTest.class | Bin 0 -> 4895 bytes .../openfoam-0001/patch/openfoam-0001.patch | 82 +++++++++++++ ...enFOAMMolsToDeleteDedupTest$Molecule.class | Bin 0 -> 594 bytes .../test/OpenFOAMMolsToDeleteDedupTest.class | Bin 0 -> 3524 bytes .../test/OpenFOAMMolsToDeleteDedupTest.java | 110 ++++++++++++++++++ ...1-kernel-thread-waitingThreads-dedup.patch | 1 + ...ernel-semaphore-waitingThreads-dedup.patch | 1 + ...sspp-0003-irjit-bypage-block-removal.patch | 1 + defects/ppsspp/test/PpssppKernelDedup.class | Bin 0 -> 5065 bytes ...01-spu-recompiler-preds-vector-dedup.patch | 1 + ...02-spu-recompiler-calls-vector-dedup.patch | 1 + ...3-savedata-blist-vector-find-in-sort.patch | 1 + .../rpcs3/test/Rpcs3SpuRecompilerTest.class | Bin 0 -> 7074 bytes .../test/TrytonChangedValuesTest.class | Bin 3441 -> 0 bytes 17 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 defects/dosbox-x/test/DosboxXOverlayCacheTest.class create mode 100644 defects/openfoam-0001/patch/openfoam-0001.patch create mode 100644 defects/openfoam-0001/test/OpenFOAMMolsToDeleteDedupTest$Molecule.class create mode 100644 defects/openfoam-0001/test/OpenFOAMMolsToDeleteDedupTest.class create mode 100644 defects/openfoam-0001/test/OpenFOAMMolsToDeleteDedupTest.java create mode 100644 defects/ppsspp/test/PpssppKernelDedup.class create mode 100644 defects/rpcs3/test/Rpcs3SpuRecompilerTest.class delete mode 100644 defects/tryton-0001/test/TrytonChangedValuesTest.class diff --git a/UNDF-REGISTRY.json b/UNDF-REGISTRY.json index c62a69596..9e88c4d3e 100644 --- a/UNDF-REGISTRY.json +++ b/UNDF-REGISTRY.json @@ -895,5 +895,14 @@ "proton-0002": "UNDF-2026-000000894", "forgejo-0001-0001": "UNDF-2026-000000895", "snort3-0001-0001": "UNDF-2026-000000896", - "tryton-0001-0001": "UNDF-2026-000000897" + "tryton-0001-0001": "UNDF-2026-000000897", + "dosbox-x-0001": "UNDF-2026-000000898", + "dosbox-x-0002": "UNDF-2026-000000899", + "openfoam-0001-0001": "UNDF-2026-000000900", + "ppsspp-0001": "UNDF-2026-000000901", + "ppsspp-0002": "UNDF-2026-000000902", + "ppsspp-0003": "UNDF-2026-000000903", + "rpcs3-0001": "UNDF-2026-000000904", + "rpcs3-0002": "UNDF-2026-000000905", + "rpcs3-0003": "UNDF-2026-000000906" } diff --git a/defects/dosbox-x/patch/dosbox-x-0001-overlay-DOSnames-cache-vector-dedup.patch b/defects/dosbox-x/patch/dosbox-x-0001-overlay-DOSnames-cache-vector-dedup.patch index ad722bd9c..9006a613e 100644 --- a/defects/dosbox-x/patch/dosbox-x-0001-overlay-DOSnames-cache-vector-dedup.patch +++ b/defects/dosbox-x/patch/dosbox-x-0001-overlay-DOSnames-cache-vector-dedup.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000898 --- a/src/dos/drives.h +++ b/src/dos/drives.h @@ -1350 +1350 @@ diff --git a/defects/dosbox-x/patch/dosbox-x-0002-overlay-deleted-files-vector-scan.patch b/defects/dosbox-x/patch/dosbox-x-0002-overlay-deleted-files-vector-scan.patch index 27895563c..15870c326 100644 --- a/defects/dosbox-x/patch/dosbox-x-0002-overlay-deleted-files-vector-scan.patch +++ b/defects/dosbox-x/patch/dosbox-x-0002-overlay-deleted-files-vector-scan.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000899 --- a/src/dos/drives.h +++ b/src/dos/drives.h @@ -1331 +1331 @@ diff --git a/defects/dosbox-x/test/DosboxXOverlayCacheTest.class b/defects/dosbox-x/test/DosboxXOverlayCacheTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ea6287ba50dde8e22ff4ccb1f820f92b653508f2 GIT binary patch literal 4895 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 a>xgrG+qwS2xxRxBi9;dk8`L7k5dJrsGpe8f literal 0 HcmV?d00001 diff --git a/defects/openfoam-0001/patch/openfoam-0001.patch b/defects/openfoam-0001/patch/openfoam-0001.patch new file mode 100644 index 000000000..f7de1b144 --- /dev/null +++ b/defects/openfoam-0001/patch/openfoam-0001.patch @@ -0,0 +1,82 @@ +# UNDF: UNDF-2026-000000900 +--- a/src/lagrangian/molecularDynamics/moleculeCloud/moleculeCloud.C ++++ b/src/lagrangian/molecularDynamics/moleculeCloud/moleculeCloud.C +@@ -274,7 +274,9 @@ + + { +- DynamicList molsToDelete; ++ // CWE-407: molsToDelete was a DynamicList scanned by findIndex() O(N) ++ // for each molecule pair, yielding O(pairs * D) where D = deletions. ++ // Fix: use HashSet for O(1) membership checks. ++ HashSet molsToDeleteSet; + + const labelListList& dil(il_.dil()); + +@@ -304,13 +306,13 @@ + || findIndex(pot_.removalOrder(), idJ) + < findIndex(pot_.removalOrder(), idI) + ) + { +- if (findIndex(molsToDelete, molJ) == -1) ++ if (!molsToDeleteSet.found(molJ)) + { +- molsToDelete.append(molJ); ++ molsToDeleteSet.insert(molJ); + } + } +- else if (findIndex(molsToDelete, molI) == -1) ++ else if (!molsToDeleteSet.found(molI)) + { +- molsToDelete.append(molI); ++ molsToDeleteSet.insert(molI); + } + } +@@ -336,13 +338,13 @@ + || findIndex(pot_.removalOrder(), idJ) + < findIndex(pot_.removalOrder(), idI) + ) + { +- if (findIndex(molsToDelete, molJ) == -1) ++ if (!molsToDeleteSet.found(molJ)) + { +- molsToDelete.append(molJ); ++ molsToDeleteSet.insert(molJ); + } + } +- else if (findIndex(molsToDelete, molI) == -1) ++ else if (!molsToDeleteSet.found(molI)) + { +- molsToDelete.append(molI); ++ molsToDeleteSet.insert(molI); + } + } +@@ -353,10 +355,10 @@ + +- forAll(molsToDelete, mTD) ++ forAllConstIter(HashSet, molsToDeleteSet, iter) + { +- deleteParticle(*(molsToDelete[mTD])); ++ deleteParticle(*iter.key()); + } + } + +@@ -419,9 +421,9 @@ + { +- if (findIndex(molsToDelete, molI) == -1) ++ if (!molsToDeleteSet.found(molI)) + { +- molsToDelete.append(molI); ++ molsToDeleteSet.insert(molI); + } + } + else if +@@ -437,9 +439,9 @@ + if (molI->origId() > molJ->origId()) + { +- if (findIndex(molsToDelete, molI) == -1) ++ if (!molsToDeleteSet.found(molI)) + { +- molsToDelete.append(molI); ++ molsToDeleteSet.insert(molI); + } + } diff --git a/defects/openfoam-0001/test/OpenFOAMMolsToDeleteDedupTest$Molecule.class b/defects/openfoam-0001/test/OpenFOAMMolsToDeleteDedupTest$Molecule.class new file mode 100644 index 0000000000000000000000000000000000000000..0943e618cc21da01cf599c70205abf2b1db9dfd3 GIT binary patch literal 594 zcmaJ;O;5r=5PjQ1Td)Xz;0F~o#wgT8et^bkG{z<%2Z;x73v8fRTcoZ3#hW)TUQ9G5 z9*kc7QN~%t#BkuS`*vsMy?L|y`Stn+-~cOWC{T4IOeCQ(jv(vdbX0h3{)-WUFH{h(G0ys!}*2~R}gNVMaALxj;fMMW$21cTzX z8JHvKlP0o~s|5qM<4`zRa-8xxL*g)KQ)#y9`rv+ftBvp3(p(K^W;+VknNKFqn?- zi@~AC!%&bd<8N@R(!dJ6w1S*`F*@bs^n@y{B;6RM=(H)nfiP>ofZ5hFbbIL;nMVpS zOw+Cr0`s)bV0K6<63S@OenRG9q;!E&dCUz<_efv*u(m#6+#m*S-IYH8=*7oDxZvjSDDc9^u=A2Sr?%%+eY$;k@{-7!48AT+*UTOU zcRVr1;b+)oIaN$8-`-m)sS9bXYzD#M4j}}EW1E8Q*uk)U-A}qO_%&0MRMRLiG{qC? zb#uzmCqrmJm}8fMMno9G_qs6f8MQnl=4m~O=m|OFJ_WlGW$@^hy0N-;O&&>(Jq(A2 zi$Wh5?j0O7^5s#ZU*v@;`bDl%92I5rAZbOmk{1CqW3Phy@c@HM%Q3K25c{y786+#loFp)^A#~XC6h}z+0}Ybav>a65J!TXH9aThrE?^115q1nA|-u~ zC^(8XN~^3rC#-BOb-RKGah%Z18oH@!dihJ%AZS83q2O!M*{$Ys939ojt>T?m%QG24 zr8_B0cN!-+IvKXDV{RF{(9O}K;31r;@?*X9w6{+!+tqD}Kea46ZAH!3+f zTBB{u;%!V4H%3!}P%+7oRgeRvW1rFb^$EbD+%2zfU<_@q>C?%?SeQyMtzZTk!+iyH zR`eNqRyD^pbB3g{sp_W1wmNz{v%_GR4pTds_Ji__ji{z(#NulZw_5-uI%6%zj!(_E z=s_4Lay%tRXy z&NN!&gCEZkwJ!8#GJbrUq=DX4It(|yD zXw+xqD6t)BO&3Fz!lWpTs#dDoGNziH9aM|XIFQk%b=9nt$orj*%9KViOZFr; zaQ1(hc~8fqXAQ$Fn3Z+{h8 zj*l2x?n!U6s5ySaaR1h>bhzylv5&f}%Q~PQYB6+8q34S<-b-&rZ*S{uu-}rv@De?x z8FVS|%WnWpBv+P!2MTHbb_aaoHUdL|Q=Zmk1Q|MgQQtClGF-zaQfgxOBbqz;5!>pI z`W@>PDLK|alP9R2@*Iuw-{UJwh%Mug3mw6u(Ln7uWSK49`v^utk>Cv+YVx!#qm?41 z`EAj_GLE@$9qpF*RTst=aiHFXJ1$CFltjyAwXnFFZt}c*lQMEyIS)|2AfWu%Pv86l zNKj9G7%dpYAv}e{DA1+j1+?Nd9Klt(RD6VXd_uQ~J2;L%(FNfzbOrbf9rzKgav1zB zc5#F}91Z`$UXErG?qZk(#`b@X2mTG$7qszZYx|dJQ~CfpKqnlaZ{ER40{YaZK)=2v z(1rgC&=I>t7Or2na1B>A1f!){y|TEf*TL9>9h6fSWzA43UOBQ^dEGK4$)g_VE^j! zeTsb(Za48OGvV=AFRxd=mXI90gWico^xej}A&1kQo~qz=claW{JvVSFO1kEWHs39r zkN9pQZ4)T!UDNJ~_?}tQzvyF&tACApqTZuR81C>n(!~xQ@m-Ga%f@N{@9=o|o44=` zz4xqO3b5sfZv~gu27Cpx)j>G#`4p}R_iq0Z^vo@k$9MZ1@vXPs2KOw&_ z_`?f}@P?mX!FQ~=k>GW5S;F__$+lTOh6u@z5yeJ`>lxzlMdIxk6>6M{@i>)eg02PQ zc%Cj_FVW}Ca{GD3yKk16&LY{@FsFL*pe3h!qIbLN{1CCzn z8KPeD1y0{3Pv$&Pw_K)%YN33pOe%~ j^4m0e!+QSGdcI{nui- molsToDelete with findIndex() O(N) membership + * check inside a nested molecule-pair loop, yielding O(pairs * D) + * complexity where D = number of deletions. + * + * Fix: Replace DynamicList + findIndex with HashSet for O(1) membership. + * + * This test models the defect pattern in Java: + * - Defective: ArrayList + contains() for dedup in nested loop + * - Fixed: HashSet for O(1) dedup + */ +import java.util.*; + +public class OpenFOAMMolsToDeleteDedupTest { + + /** Simulate molecule with an id and origId */ + static class Molecule { + final int id; + final int origId; + Molecule(int id, int origId) { this.id = id; this.origId = origId; } + @Override public int hashCode() { return origId; } + @Override public boolean equals(Object o) { + return o instanceof Molecule && ((Molecule) o).origId == this.origId; + } + } + + /** Defective: ArrayList + contains() O(N) per check => O(pairs * D) */ + static int defective(List cellI, List cellJ, + List removalOrder) { + List molsToDelete = new ArrayList<>(); + long ops = 0; + for (Molecule molI : cellI) { + for (Molecule molJ : cellJ) { + ops++; + int idxI = removalOrder.indexOf(molI.id); + int idxJ = removalOrder.indexOf(molJ.id); + if (molI.id == molJ.id || idxJ < idxI) { + // findIndex(molsToDelete, molJ) == -1 + ops += molsToDelete.size(); + if (!molsToDelete.contains(molJ)) { + molsToDelete.add(molJ); + } + } else { + ops += molsToDelete.size(); + if (!molsToDelete.contains(molI)) { + molsToDelete.add(molI); + } + } + } + } + return (int) ops; + } + + /** Fixed: HashSet for O(1) membership => O(pairs) */ + static int fixed(List cellI, List cellJ, + List removalOrder) { + Set molsToDeleteSet = new HashSet<>(); + long ops = 0; + for (Molecule molI : cellI) { + for (Molecule molJ : cellJ) { + ops++; + int idxI = removalOrder.indexOf(molI.id); + int idxJ = removalOrder.indexOf(molJ.id); + if (molI.id == molJ.id || idxJ < idxI) { + ops++; // O(1) HashSet lookup + molsToDeleteSet.add(molJ); + } else { + ops++; + molsToDeleteSet.add(molI); + } + } + } + return (int) ops; + } + + public static void main(String[] args) { + // Simulate: 500 molecules in each cell, 3 molecule types + int N = 500; + List removalOrder = Arrays.asList(0, 1, 2); + Random rng = new Random(42); + + List cellI = new ArrayList<>(); + List cellJ = new ArrayList<>(); + for (int i = 0; i < N; i++) { + cellI.add(new Molecule(rng.nextInt(3), i)); + cellJ.add(new Molecule(rng.nextInt(3), N + i)); + } + + int defOps = defective(cellI, cellJ, removalOrder); + int fixOps = fixed(cellI, cellJ, removalOrder); + + double ratio = (double) defOps / fixOps; + + System.out.println("=== OpenFOAM moleculeCloud molsToDelete Dedup Test ==="); + System.out.println("Molecules per cell: " + N); + System.out.println("Defective ops: " + defOps); + System.out.println("Fixed ops: " + fixOps); + System.out.printf("Ratio (defective/fixed): %.1fx%n", ratio); + + // Verify: defective should be significantly more expensive + boolean pass = ratio >= 5.0; + System.out.println("RESULT: " + (pass ? "PASS" : "FAIL") + + " (ratio >= 5.0 required)"); + + if (!pass) System.exit(1); + } +} diff --git a/defects/ppsspp/patch/ppsspp-0001-kernel-thread-waitingThreads-dedup.patch b/defects/ppsspp/patch/ppsspp-0001-kernel-thread-waitingThreads-dedup.patch index e5f9fc0f6..95e216dbe 100644 --- a/defects/ppsspp/patch/ppsspp-0001-kernel-thread-waitingThreads-dedup.patch +++ b/defects/ppsspp/patch/ppsspp-0001-kernel-thread-waitingThreads-dedup.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000901 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -2544 +2544 @@ diff --git a/defects/ppsspp/patch/ppsspp-0002-kernel-semaphore-waitingThreads-dedup.patch b/defects/ppsspp/patch/ppsspp-0002-kernel-semaphore-waitingThreads-dedup.patch index de223e1bb..64bd94b39 100644 --- a/defects/ppsspp/patch/ppsspp-0002-kernel-semaphore-waitingThreads-dedup.patch +++ b/defects/ppsspp/patch/ppsspp-0002-kernel-semaphore-waitingThreads-dedup.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000902 --- a/Core/HLE/sceKernelSemaphore.cpp +++ b/Core/HLE/sceKernelSemaphore.cpp @@ -370 +370 @@ diff --git a/defects/ppsspp/patch/ppsspp-0003-irjit-bypage-block-removal.patch b/defects/ppsspp/patch/ppsspp-0003-irjit-bypage-block-removal.patch index 36c2177d5..fefb3450b 100644 --- a/defects/ppsspp/patch/ppsspp-0003-irjit-bypage-block-removal.patch +++ b/defects/ppsspp/patch/ppsspp-0003-irjit-bypage-block-removal.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000903 --- a/Core/MIPS/IR/IRJit.cpp +++ b/Core/MIPS/IR/IRJit.cpp @@ -363,4 +363,5 @@ diff --git a/defects/ppsspp/test/PpssppKernelDedup.class b/defects/ppsspp/test/PpssppKernelDedup.class new file mode 100644 index 0000000000000000000000000000000000000000..40191d5d22fc22e1014faf8a18927c57dffe3072 GIT binary patch literal 5065 zcmds4TWl2P75@I2*`4+7__p3%ykO{pF|kdI!GHl@C>TPpF}Ey@V{#quj_t*}Gn?J9 zjY-mw#7T*BYXZ3dNlJ)P8i_V)AA$j;eX7((>O-okt*Yjwid3l&QPhXDLLu(?XJ);- zctavZm8ycZ|7E^&{&V@x`DZ@-^2#p(Y{#2k2oPmR3S4kAR2@+#)Yhb`kF@R|I-izOp?(=F8EW!p zZqH=YDei<9^*pM#OeZ1O{e#08C^^6)Z*i5 z(o3EVs0mZc+#lD5DHREBQoxDGe7rh)c~+XSR>3;7F;wQoh7(7%I79sc5j&`s3Nnam z;O=iwuo3MHQZ{jnPNH=8mSHot$mmeeiLN4cM5nT*mLilfPALo88WTqAflNX-qh>}^ zQ=J|VYor6)qfrmG(QMcD-hMyPu1CQR>||J!QpdC%h8|PRfrL3qv#hD=CgpuqVctnw zLLccYq>{7c#V*_~W4D4{^yM;9Yy@RK%}q+`H)KAim4de!{R;MCA5l+Nb>mPXWxLQM$)V_#oWpL<(?T%&&;+{Mt_kd36RoVKi8yLMe9 zt!0LdOiI;bT1RAGcSAg4=d`$rcI3nmq$Knboc6m-~MQ^; z##2LD=8$S7v^;96v9Y~s+F6%H6C=86j%NtnROlD)Ib8+mbDDAIR$ki-d%qdhR*-88 zH_`Wv&pyo1Sa>$Y|EtszR7z3T=hsFd6X)wx#x#|9iAOS?Dk=wCLdJ<3;7a_S!f@2_xETcejC`kkWHQW_bJuI5W%Kc@-9F$ctZv4>yWB*>vX zG;$T;<|VU`FQZ(*8B{on8UX`bT(HC|Akw@F<@D}TiyAycD-o;~4_lB&NH5*u1$sF= zyt>ZP8xnAu^xBJ3dKZ!2TKd2EM!nxBz0_JAz58k8dY3pRh6Qxjoke+b-DNB#bES*o zMavxSaEM|8MCj64j!LYc&RLHz8mtp2R$m~@9OECQL#Pcqht$)^gW_`zSuTJpEsSEb zBX}HTcnpuzGm56?-?XX%q~l_j*nJiCgO|{-&lx+Ut5`)FjU6tr-5qpSwVlT;EkXAz zn(W`O6n61t>-=Qe%`VLSx#cp}Q%Sd-LrqwkpUct(NTlc&*c5c1hR5H10WSY{uh5Gz z-p6fxuWXvJ3vf>hth(mJ)_F5#v1b#RAP428=TQ}wf-;#fEz?n-(W8({+a%|(WjT|* zj*u_tBO!mdEbI;X$kb^ciGAvb`9ktc$VbrqGsc$k+VTLt_v)K)46P(X{R5s4APkDZ z%DlnRL1`&5Bs%CK=>P_eS==2RbccNTgt15mTD_VjstF(DF6N~Hx z)%n1*i%9WtOI6z}M%rCriBHCe@~+dU=e%6zggfSh+aPw++zGeL87=1tas_ES+_aZZ zeG#K`EVT=Z2wG3}P$f}6vy8LKiWZh}yrw?pbapS5;_aTG=ParT?jd6braf~`6}Yuc zwBvxhK`#fng2e5yfoX36$Q$y^guD*tm0G2U^A())4>}2{$h%a)c~73^?vOXXkZYBB z&XZ)`ajr7!vdV~eY*MwP?g2jG}+cpbOlEqZzhx8qmzx$+zI;Unz99|`>_ zeSCb5{Y=CGR)d3V8SY?*XuJziHcVd=ItJM!4zuI9ht1$#b_(~gGxQDcHqGCqz4tK0 zen+qOpCHcui3IzcUZUqPCP+vM^jcGK98ccsI)C{5z0(xdnpzj}nLp7v0hYsS0jy23 zk`A^{4P3`^N#rMope%q$BE4JKr^xsL{Sl7da7yCbMK~G4=3=|*7CL}0P{yud$u+qC zubuxAHBQK{q2W307OMq^k*p>87_B8bw0W)}p#sIBfB9c67{XTE~{t&Ox6EE$a##y|9@P7dIdxfn4 literal 0 HcmV?d00001 diff --git a/defects/rpcs3/patch/rpcs3-0001-spu-recompiler-preds-vector-dedup.patch b/defects/rpcs3/patch/rpcs3-0001-spu-recompiler-preds-vector-dedup.patch index 0b5defe92..16fc5e301 100644 --- a/defects/rpcs3/patch/rpcs3-0001-spu-recompiler-preds-vector-dedup.patch +++ b/defects/rpcs3/patch/rpcs3-0001-spu-recompiler-preds-vector-dedup.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000904 --- a/rpcs3/Emu/Cell/SPUCommonRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPUCommonRecompiler.cpp @@ -2899,4 +2899,5 @@ diff --git a/defects/rpcs3/patch/rpcs3-0002-spu-recompiler-calls-vector-dedup.patch b/defects/rpcs3/patch/rpcs3-0002-spu-recompiler-calls-vector-dedup.patch index cebe543ef..f044f7754 100644 --- a/defects/rpcs3/patch/rpcs3-0002-spu-recompiler-calls-vector-dedup.patch +++ b/defects/rpcs3/patch/rpcs3-0002-spu-recompiler-calls-vector-dedup.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000905 --- a/rpcs3/Emu/Cell/SPUCommonRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPUCommonRecompiler.cpp @@ -4842,4 +4842,5 @@ diff --git a/defects/rpcs3/patch/rpcs3-0003-savedata-blist-vector-find-in-sort.patch b/defects/rpcs3/patch/rpcs3-0003-savedata-blist-vector-find-in-sort.patch index 39767a96d..c383d2910 100644 --- a/defects/rpcs3/patch/rpcs3-0003-savedata-blist-vector-find-in-sort.patch +++ b/defects/rpcs3/patch/rpcs3-0003-savedata-blist-vector-find-in-sort.patch @@ -1,3 +1,4 @@ +# UNDF: UNDF-2026-000000906 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp @@ -1553,8 +1553,11 @@ diff --git a/defects/rpcs3/test/Rpcs3SpuRecompilerTest.class b/defects/rpcs3/test/Rpcs3SpuRecompilerTest.class new file mode 100644 index 0000000000000000000000000000000000000000..6ca1c2409570c823d1cabf63c6f9316698d86f8b GIT binary patch literal 7074 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 literal 0 HcmV?d00001 diff --git a/defects/tryton-0001/test/TrytonChangedValuesTest.class b/defects/tryton-0001/test/TrytonChangedValuesTest.class deleted file mode 100644 index c17a61358310fc893659c6abca6f959e4c837c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3441 zcmaJ^T}&L;75*-}Gk13x!ta9DCeFk*@e&6xjscqm*BBcchrfCWWbGzo*d1WZ?hM(P z#gL}WPn|#aCvDOnJ8_cAQpHmrng?Ri)@r3nmD;yf>Vws%_N7%-sjB+mq9*j*nOzuM zQl#B`@44rkd%knObN2F^&px>WpbtNcpbP zs8mpeYK8~4)PxU)km2Zg&9U+f_3>t(m%*YuQI1;FaYPl=qk*Aj%R@AH&+9_)h=PNNlftY{0Yu}2MHv30gwID69KvH1?4ocuIwKHo(=DE#5X!9z z+HjceLVvEHWo_ZtOOD^GfLehg3LY1#p|oW>nqk^P*rA})wa@E0YfC}3>90srA;C42;&Pl$Zd%XVbH+jhXK{{WP{DaTQR3wG11Y%+;`pq2U&1IJ!<;2PhA_|U? zRUPXsou{f9eTIlTWi60=##o{V-6`?Yums%$BC}%(z9=#q&@!0_k{IWBQo#f!85%sK z{T@7*H}<$LXkP2N-nPTA-(NPO9umF+aM#V}#Stk57lr>CH>hn+LiiGcI^NsV(vcx7 z?$FeJIHP)B$6DKGmYU26p1~Byvx0$IsR~^t4O!+ag%>~XC#?_?3)9GO=)#7$>gyAy zt-^GcDk2&`?YHv8WOo*G3JhE(_PV!0);)gq7BAz{4usy3Me<4NT;i{WKBfW-3zX}e zHm~w_y$ASr9qBwm9py+%(G;OB&|X|tq&N2 zIgOuFD6OIak@+dha%?BBEez|E-O?)*9PerXf_>M6SD*Rt6p{U#CXXwrxmuoo}lAzUTxJ&->`U67-KqxMsJJh0|Zg9@Kp$S!PBdz_Lx87FkZ(SbZc}|fm0N3C0*sZ{If_ZP?Z@? z1*_S=MpIIC;4h;?AK^sJ=~WDfafrrX@1c>FJDtHmrxcZ4YxD;s}{@mT0KE_8*x$x~hB z_2Fyv<=3p^6(WvHp`W8H6>#r8ney&GnUd=1kf)O=xxU;T`L2rFm`<)@c5+um9pATK0+Ama9-q zj*7_E;8EnRu#HJ%9FtdZaDtfDi)-{x#5?pFyorAN2xssS zY5#%7yEunGV-WwK=h;8W&pnK?{TO52xWG;$$!0LlUcr;>ReH(1g{P>eq}Ux?WWS^r z%_nOMm|LihbWkJ#CJczadw01WC!&G%4n10n~{_B?!#Md c4!@1>&=?|%@6zXOyi2PH&ECWN_z