Jump to content

alex1234

Members
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by alex1234


  1. I think I found another bug in this module.

    type
    ULONG_PTR = Longword;
    type
    _SecHandle = packed record
    dwLower : ULONG_PTR;
    dwUpper : ULONG_PTR;
    end;

    This will lead to problems in x64 mode.
    Should be

    type
    ULONG_PTR = NativeUInt;

    OR something like

    type
    {$IF (defined(CPUX64) or defined(CPU64BITS) or defined(CPUARM64))}
    ULONG_PTR = UInt64;
    {$else}
    ULONG_PTR = Longword;
    {$endif}

    Alex


  2. I am trying to use OverbyteIcsSmtpProt.pas v8.68 from ICS 8.70
    TSslHtmlSmtpCli class

    Problem: OnGetData event never called in smtpPlainText mode
    Looks like this happens because FMailMsgText.CurrentIdx=0 and FEmailBody.Count=0?
    Tried to set MailMessage field and keep OnGetData:=nil - still mail body not sent (headers, from, to, everything else is fine, e-mail is sending but empty body)

     

    In HTML mode TSslHtmlSmtpCli sends data (mail body) and calls OnGetData correctly but mail client (at least Thunderbird) shows empty mail body.

     

    While TSslSmtpCli works fine as I see.

     

    Any tips?


  3. There is bug in OverbyteIcsSspi.pas
    Incorrect definition of
    DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; fQOP: DWORD): SECURITY_STATUS;

    fQOP is not a DWORD, its PULONG - pointer to DWORD.
    https://learn.microsoft.com/en-us/windows/win32/secauthn/decryptmessage--negotiate

    Such incorrect call may lead to access violation errors or data corruption.
    I think it should be defined like
    DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; var fQOP: DWORD): SECURITY_STATUS;
    or
    DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; fQOP: PULONG): SECURITY_STATUS;

×