티스토리 뷰

반응형

 

 

 

가. 원인

  - C언어에서 스택 메모리에 저장하는 변수를 초기화하지 않고 사용하는 경우

 

 

나. 영향

  - 초기화 하지 않은 변수는 이전 함수에 사용되었던 내용을 포함하고 있음

  - 메모리에 저장되어 있는 값을 읽거나 특정코드를 실행

 

 

다. 보안대책

  - 모든 변수를 사용전에 반드시 올바른 초기값을 할당

 

 

라. 안전한 코드

1. 변수에 초기값 설정

 

  int x = 0;

  int y = 0;

  ...

  switch( position ) {

     case 0:

        x = 10;

        break;

     defualt:

        y = 10;

        break;   

  }

  setCursorPosition( x, y );

 

 

 

마. 진단방법

<변수 초기화 확인>

  1. 변수를 선언하는 코드를 확인

  2. 선언 시 변수를 초기화 하는지 확인

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. 별도의 변수를 초기화 하지 않는 디폴트 생성자를 호출 뒤 변수를 사용 시

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday