codesonar 돌리고 있는데 조언좀~~(Null Test After Dereference??)
글쓴이: fensy / 작성시간: 화, 2014/07/01 - 11:38오전
이놈의 신뢰성 검사떄문에 골치가 썩네요.-_-;;
PayLoad = malloc(sizeof(unsigned char) * PayLoadLength);
for(i = 0; i < PayLoadLength; i++){
PayLoad[i] = *((ReadTCPBuffer + 12) + i);
}
코드가 이런식인데..
PayLoad is dereferenced. 라는 경고가 하나뜨더니
아래쪽 switch - case 문에 (메시지 코드별로 정리 된 코드)
if (PayLoad == NULL) {
~~~
}
이렇게 Null 일 때 예외처리 해놨거든요..
그러니 뜨는 에러가 Null Test After Dereference 네요...
예외처리를 안하면 Null 데이터가 들어갈수있다고 지롤떨고.. 예외처리 해노면 이상황이 나오고..
조언좀 부탁드립니다..
Forums:
아마도
공개된 코드의 윗부분이 문제로 보입니다.
PayLoad가 힌트겠네요.
소곤소곤
...
PayLoad = malloc(...) 이 줄과
PayLoad[i] = *... 이 줄 사이에 NULL 체크가 있어야죠.
이미 PayLoad라는 포인터를 사용하고 나서 나중에 NULL 체크를 하는 건 의미가 없습니다. 만약 malloc이 NULL을 리턴했다면 포인터를 사용하는 순간에 이미 프로그램이 죽겠죠.
"Null Test After Dereference"라는 에러 메시지를 그냥 문자 그대로 해석하시면 됩니다.
코드소나 엄청 비싸다고 알고 있는데, 한번 써보고
코드소나 엄청 비싸다고 알고 있는데,
한번 써보고 싶네요.
원글자분 부럽습니다. ㅎㅎ
댓글 달기