none
세션 정보 확인 중 발생 문제에 대한 질문 입니다. RRS feed

  • 질문

  • 안녕하세요

    세션 관련 작업 진행 중 발생 문제로 질문 사항이 있어 글을 올려 도움을 받고자 합니다.

    현제 접속 중인 세션에 대한 정보를 얻기 위해(Terminal)  작업 중 입니다.

    관련 활성화된 계정 정보를 얻기 위해 WTSQuerySessionInformation 함수를 호출해서 사용하는데 간혈적으로 관련 함수를 호출 시 

    비정상 종료가 발생하는 경우가 있습니다.

    관련 문제로 생성된 덤프를 확인 해보면 Access violation 에러가 발생하며 Allocateheap 에서 문제가 발생합니다

    ----------------------------------------------------------------------------------------------------------------------

    FAULTING_IP: 
    ntdll!RtlpAllocateHeap+613
    77033a96 310e            xor     dword ptr [esi],ecx

    EXCEPTION_RECORD:  02e8db64 -- (.exr 0x2e8db64)
    ExceptionAddress: 77033a96 (ntdll!RtlpAllocateHeap+0x00000613)
       ExceptionCode: c0000005 (Access violation)
      ExceptionFlags: 00000000
    NumberParameters: 2
       Parameter[0]: 00000001
       Parameter[1]: 035c0e80
    Attempt to write to address 035c0e80

    ----------------------------------------------------------------------------------------------------------------------

    콜 스텍을 확인해 보면 아래와 같이 WTSQuerySessionInformation 함수에서 문제가 발생합니다.

    STACK_TEXT:  
    02e8e018 77033a96 ntdll!RtlpAllocateHeap+0x613
    02e8e0f0 77033cfe ntdll!RtlAllocateHeap+0x23a
    02e8e174 76b158eb kernelbase!LocalAlloc+0x5f
    02e8e1c0 6f0d25b9 wtsapi32!WTSQuerySessionInformationW+0x101
    02e8e26c 6f0d4d19 wtsapi32!WTSQuerySessionInformationA+0x3c

    ----------------------------------------------------------------------------------------------------------------------

    상기 덤프 발생시 콜스텍에서 호출한 실제 소스

    if( WTSQuerySessionInformation( WTS_CURRENT_SERVER_HANDLE,
         dwSessionID,
       WTSDomainName,
       &ppBuffer,
       &pBytesReturned))
    {

    ----------------------------------------------------------------------------------------------------------------------

    이때의 Locals 정보를 확인하면 WTSQuerySessionInformation 함수의 OutPut 버퍼인 ppBuffer

    값의 Location에 fffffff5 값이 넘어 옵니다.

    혹시 WTSQuerySessionInformation 함수의 호출 시 설명한 문제가 발생한 경우가 있는지 그렇다면 이에 처리 할 수 있는

    방법이나 예외 처리가 있는지 궁금합니다.

    관련 함수 호출 후 내부적인 메모리 오류 발생의 경우로 보여 관련 문제가 함수상 버그 문제가 아닌지 궁금하여 질문을 올립니다.

    

    감사합니다

    2015년 7월 3일 금요일 오전 8:14