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 특정 끝