这个看起来有点问题

xcbjky 2026-09-28 05:02 1

/* ~~~ C 有差异: _IOSurfaceAcceleratorParavirtProcessGuestData [_IOSurfaceAcceleratorParavirtProcessGuestData] ~~~ */
--- 27.0
+++ 27.2
@@ -1,25 +1,29 @@

-void _IOSurfaceAcceleratorParavirtProcessGuestData(long param_1,int *param_2)
+void _IOSurfaceAcceleratorParavirtProcessGuestData(long param_1,int *param_2,ulong param_3)

{
int iVar1;
int iVar2;
undefined8 uVar3;
int *piVar4;
undefined8 uVar5;
long lVar6;
- int *piVar7;
+ ulong *puVar7;

- iVar2 = -0x1ffffd3e;
+ if (param_3 < 8) {
+ return;
+ }
if (param_2 == (int *)0x0) {
return;
}
iVar1 = *(int *)(param_1 + 0x24);
if (iVar1 == 0) {
return;
}
if (*param_2 == 2) {
+ iVar2 = -0x1ffffd3e;
+ if (param_3 < 0x610) goto _IOSurfaceAcceleratorParavirtProcessGuestData;
piVar4 = param_2 + 2;
if (*(long *)(param_2 + 4) != 0) {
*(long *)(param_2 + 4) = 0;
param_2[6] = 0;
@@ -40,18 +44,23 @@
iVar1 = *(int *)(param_1 + 0x24);
uVar3 = 1;
uVar5 = 0x1b0;
lVar6 = 0;
- piVar7 = (int *)0x0;
+ puVar7 = (ulong *)0x0;
}
else {
- if ((*param_2 != 1) || (lVar6 = *(long *)(param_2 + 4), lVar6 == 0)) goto _IOSurfaceAcceleratorParavirtProcessGuestData;
- piVar7 = param_2 + 6;
+ iVar2 = -0x1ffffd3e;
+ if (((*param_2 != 1) || (param_3 < 0x20)) ||
+ (lVar6 = *(long *)(param_2 + 4), iVar2 = -0x1ffffd3e, lVar6 == 0)) goto _IOSurfaceAcceleratorParavirtProcessGuestData;
+ puVar7 = (ulong *)(param_2 + 6);
+ if (0x298 < *puVar7) {
+ *puVar7 = 0x298;
+ }
uVar3 = 0xb;
piVar4 = (int *)0x0;
uVar5 = 0;
}
- iVar2 = raw_2880fa660(iVar1,uVar3,piVar4,uVar5,lVar6,piVar7);
+ iVar2 = raw_290103440(iVar1,uVar3,piVar4,uVar5,lVar6,puVar7);
_IOSurfaceAcceleratorParavirtProcessGuestData:
param_2[1] = iVar2;
return;
}
最新回复 (0)
    没有回复
* 帖子来源Linux.do
返回