Hi all!
Обнаружилось довольно любопытное явление:
на новых Линуксах (ядрo 2.4.18 libc 2.2.5 , ядрo 2.4.17-z1 libc 2.2.2
и еще куча -- все ядра 2.4.x) статически слинкованная программа,
вызывающая gethostbyname с несуществующим символич. адресом, валится
по SIGSEGV. Динамически слинкованная - все ок.
Дело, видимо, в ядре. На ядрах 2.0.x и 2.2.x явление не наблюдалось,
Более того, прога, статически линкованная c libc 2.1.3 под ядром 2.2.16,
при вызове gethostbyname сразу валится, если резолвится символич.
имя, не прописанное в /etc/hosts. Если IPшник - все ok.
Кто сталкивался? Куда про баг писать?
З.Ы.
Кто не верит - попробуйте статически любую Xовую прогу слинковать,
и дайте ей -display ququ:0.0 Или поиграйте:
#include <netdb.h>
#include <arpa/inet.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
struct hostent *hp;
if( (argc<2)||( (hp=gethostbyname(argv[1]))==NULL) ){
printf("NULL\n"); return 1;
}else
printf("%s\n",inet_ntoa(*(struct in_addr *)(hp->h_addr)) );
return 0;
}
Компилить:
gcc -Xlinker -Bstatic try.c
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум где у меня руки кривые? (2001)
- Форум gethostbyname (2004)
- Форум Как получить свой IP адрес? (2005)
- Форум что не так в использовании структуры (2008)
- Форум Многопользовательский чат (2013)
- Форум Помогите разобратся. Прога сокеты+http (2009)
- Форум Вопрос по применению c-ares (2023)
- Форум Ошибка сегментирования. Рекурсивный обход каталогов (2017)
- Форум Не понимаю почему не работает (2013)
- Форум Posix Threads (2005)