다음을 통해 공유


safebuffers

Microsoft 전용

함수에 대 한 버퍼 오버런 보안 검사를 삽입 하도록 컴파일러에 지시 합니다.

__declspec( safebuffers )

설명

/GS 컴파일러 옵션 되도록 컴파일러가 스택에 보안 검사를 삽입 하 여 버퍼 오버런을 테스트 합니다.형식에 대 한 보안 검사를 사용할 수 있는 데이터 구조를 설명 /GS(버퍼 보안 검사).버퍼 오버런 검색 하는 방법에 대 한 자세한 내용은 참조 하십시오 에서 컴파일러 보안 검사 깊이 MSDN 웹 사이트에서.

전문 수동 코드 검토 또는 외부 분석 함수는 버퍼 오버런 안전한 지 결정할 수 있습니다.이 경우에 _ _를 적용 하 여 함수에 대 한 보안 검사를 억제할 수 있습니다declspec(safebuffers) 키워드를 함수 선언 합니다.

주의 정보주의

버퍼 보안 검사 중요 한 보안 기능을 제공 하 고 성능에 별다른 영향을 주지.따라서, 사용자,를 제외 하 고는 성능 기능에 중요 한 문제가 되 고 함수가 안전한 것으로 알려진 드문 경우에 표시 하는 것이 좋습니다.

인라인 함수

A 기본 함수 사용할 수 있습니다가 인라인 복사본을 삽입 하는 키워드는 보조 함수.경우는 _ _declspec(safebuffers) 키워드를 함수에 적용 되어, 버퍼 오버런 감지 해당 함수에 대해 억제 됩니다.그러나 인라인 영향을 __declspec(safebuffers) 키워드를 사용할 수 있습니다.

가정에서 /GS 두 함수에 대 한 컴파일러 옵션을 지정 했지만 주 함수는 _ _를 지정 합니다.declspec(safebuffers) 키워드입니다.데이터 구조에서 보조 기능에 대 한 보안 검사를 사용할 수 있도록 하 고 그러한 확인 함수를 표시 하지 않기.이 경우 다음과 같은 결과가 나타납니다.

  • 지정은 __forceinline 보조 강제로 컴파일러에 컴파일러 최적화에 관계 없이 작동 하는 인라인 함수에 대 한 키워드입니다.

  • 보조 함수를 보안 검사에 대 한 자격이 있는 것 때문에 __ 지정 경우에 보안 검사를 기본 함수에 적용 됩니다declspec(safebuffers) 키워드입니다.

예제

다음 코드는 _ _를 사용 하는 방법을 보여 줍니다.declspec(safebuffers) 키워드입니다.

// compile with: /c /GS
typedef struct {
    int x[20];
} BUFFER;
static int checkBuffers() {
    BUFFER cb;
    // Use the buffer...
    return 0;
};
static __declspec(safebuffers) 
    int noCheckBuffers() {
    BUFFER ncb;
    // Use the buffer...
    return 0;
}
int wmain() {
    checkBuffers();
    noCheckBuffers();
    return 0;
}

Microsoft 특정 끝

참고 항목

참조

__declspec

C + + 키워드

인라인, __inline, __forceinline

strict_gs_check