PDA

Просмотр полной версии : Смешно и плакать хочется


gattsu
26.01.2016, 06:08
L2J_Server/NewCrypt.java at develop · L2J/L2J_Server · GitHub (https://github.com/L2J/L2J_Server/blob/develop/src/main/java/com/l2jserver/util/crypt/NewCrypt.java)

и все остальные производные сборки. Код никто не смотрит.

Код:



public static void encXORPass(byte[] raw, final int offset, final int size, int key)
{
int stop = size - 8;
int pos = 4 + offset;
int edx;
int ecx = key; // Initial xor key

while (pos > 8 & 0xFF);
raw[pos++] = (byte) (edx >> 16 & 0xFF);
raw[pos++] = (byte) (edx >> 24 & 0xFF);
}

raw[pos++] = (byte) (ecx & 0xFF);
raw[pos++] = (byte) (ecx >> 8 & 0xFF);
raw[pos++] = (byte) (ecx >> 16 & 0xFF);
raw[pos] = (byte) (ecx >> 24 & 0xFF);
}



Ковырял. Увидел. Посмеялся. Загрустил.

Веселый участок кода, с++ такое бы не простил. Мне кажется, что чрезмерная автоматизация множества процессов, в данной ситуации работа с памятью, делает из людей дураков.



int stop = size - 8; offset потеряли



ПС Понятно, что с нуля всегда, и не перекрывает никакие данные, но все же. Забавная фигня обычно из-за таких глупых ошибок мучаешься 2 недели, в поисках при краше системы на один из миллиона случаев. Но когда находишь хочешь себе руки отрезать хД