'pthread'에 해당되는 글 1건

  1. 2008.01.29 [TCP/IP] inet_ntoa의 위험성
반응형
pthread로 프로그래밍 하던중 발견한 사실..

새로운 thread에서 inet_ntoa를 하여 리턴한 함수를 사용할 경우 segmentation fault가 발생한다..

void* thread_function(void *arg)
{
    char *client_addr;
    ....
    client_addr=inet_ntoa(from.sin_addr)
    ....
    client_addr를 이용한 Operation..
    ....
}

이유인 즉슨 inet_ntoa에서 내부 버퍼를 리턴하는 함수를 연속적으로 사용 할 경우 문제가 발생 한다고 한다.

따라서 이것은

void* thread_function(void *arg)
{
    char ipaddr[64]
    ....
   sprintf(&ipaddr,"%s",inet_ntoa(from.sin_addr)
    ....
    ipaddr를 이용한 Operation
    ....
}

으로 바꾸면 된다..
반응형
Posted by alias
,