Einzelnen Beitrag anzeigen

Peter1999

Registriert seit: 13. Dez 2007
Ort: Dresden
88 Beiträge
 
Delphi XE2 Professional
 
#7

AW: MD5 unter x32 anders als unter x64

  Alt 3. Jul 2016, 13:51
Der Bug ist unter XE2 reproduzierbar, unter Seattle ist er behoben.

Der Bug lag in den Indys in der Unit IdGlobalProtocols.pas.
Dort ist die Function ROL in der Version bei XE2 falsch implementiert.

Delphi-Quellcode:
function ROL(const AVal: LongWord; AShift: Byte): LongWord; assembler;
asm
  mov cl, dl
  rol eax, cl
end;
statt neu
Delphi-Quellcode:
// 32-bit: Arg1=EAX, Arg2=DL
// 64-bit: Arg1=ECX, Arg2=DL
function ROL(const AVal: UInt32; AShift: Byte): UInt32; assembler;
asm
  {$IFDEF CPU64}
  mov eax, ecx
  {$ENDIF}
  mov cl, dl
  rol eax, cl
end;
Ein Update der Indys sollte also Abhilfe schaffen.

Viele Grüße...
  Mit Zitat antworten Zitat