segmentation fault en llamada a funci贸n

Mori
29 de Octubre del 2007
Hola, estoy teniendo un problema en una llamada a funci贸n que produce un segmentation fault. He comprobado mediante trazas que el fallo de segmentaci贸n se produce justo en la llamada, y no s茅 a qu茅 se puede deber...

Aqu铆 est谩 la parte del c贸digo:

...
///Se comprueba que la IP del servidor es valida, y si no es as铆 se ignora el mensaje
if(verifyRemoteAddress(remote_addr.sin_addr)!=VALID_ADDRESS)
{
TRACE(DEBUG_CRITICAL, "La IP %s no se reconoce como un servidor FTP valido. Trama ignorada.", inet_ntoa(remote_addr.sin_addr));
continue;
}
...



tRemoteAddressOK verifyRemoteAddress(struct in_addr serverIP)
{
TRACE(DEBUG_CRITICAL, "verificando direcci贸n remota...");
int serverList[] = {6, 14, 22};///< Son los indices que contienen servidores FTP en la variable config
int lengthServerList = sizeof(serverList);///< longitud de la lista de servidores (si se a帽ade alguno en
/// posteriores versiones no hace falta modificar su valor.
int i;

for(i=0; i<lengthServerList; i++)
{
if (isServer(inet_ntoa(serverIP),config[serverList[i]]))
return VALID_ADDRESS;
}

return INVALID_ADDRESS;
}//fin funcion verifyRemoteAddress




Algunos comentarios:
-El tipo de vuelto simplemente es un tipo enum que indica un c贸digo de error.

-La variable remote_address es de tipo sockaddr_in, tiene un miembro sin_addr. En cualquier caso, prob茅 haciendo la conversi贸n a cadena de caracteres de la ip fuera de esta funci贸n, y pas谩ndole como par谩metro una cadena de caracteres, y daba segmentation fault de cualquier manera.

-El error se produce justo en la llamada con total seguridad. La traza "verificando direcci贸n remota..." no llega a mostrarse.

-He comprobado que la m谩quina en la que se est谩 ejecutando tiene memoria suficiente.

驴Alguien puede ayudarme con esto?
Much铆simas gracias por adelantado.