Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: gethostbyname() segmentation fault  (Прочитано 911 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн danilsl

  • Автор темы
  • Участник
  • *
  • Сообщений: 170
    • Просмотр профиля
gethostbyname() segmentation fault
« : 03 Марта 2013, 14:27:25 »
Всем привет.
При вызове функции gethostbyname() программа улетела в segmentation fault. Происходит это далеко не всегда. Точнее впервые за несколько лет. Пользоваться этой функцией и рядом плавающими учился по книге Йона Снейдера эффективное программирование tcp/ip. До сих пор сбоев не было. Сейчас прога упала на попытке резольвить a956e985.services.gismeteo.ru. Системный host выдаёт:
a956e985.services.gismeteo.ru is an alias for serv01.gismeteo.ru.
serv01.gismeteo.ru has address 212.24.42.228
serv01.gismeteo.ru has address 212.24.42.229
На других адресах отрабатывает как надо. Возможно касяк в алиасе. Попытался найти пакет исходников для bind9-host, но не нашёл.
Пожалуйста пните в нужном направлении, почему падает старая проверенная функция, или в сторону исходников системного host.
P.S. произошла сия досадная хрень в ubuntu 12.04 32-bit.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: gethostbyname() segmentation fault
« Ответ #1 : 03 Марта 2013, 14:31:52 »
cat /etc/hosts?
Wars ~.o

Оффлайн danilsl

  • Автор темы
  • Участник
  • *
  • Сообщений: 170
    • Просмотр профиля
Re: gethostbyname() segmentation fault
« Ответ #2 : 04 Марта 2013, 09:33:00 »
danil@chronos:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 chronos

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

chemtech

  • Гость
Re: gethostbyname() segmentation fault
« Ответ #3 : 04 Марта 2013, 09:38:09 »
Рекомендуется дописывать имя машины
127.0.0.1 localhost имя машины (hostname)

Оффлайн danilsl

  • Автор темы
  • Участник
  • *
  • Сообщений: 170
    • Просмотр профиля
Re: gethostbyname() segmentation fault
« Ответ #4 : 04 Марта 2013, 10:18:19 »
Рекомендуется дописывать имя машины
127.0.0.1 localhost имя машины (hostname)
Кем рекомендуется? Имя машины идёт следующей строкой. И вообще этот файл сгенерен автоматически при установке системы, руками я в него не лазил. Я думаю что все рекомендации там соблюдены.

По сабжу касяк нашёл. Адрес на котором падала функция оказался длинноватым, и залазил в притык в отведённую переменную, а вот на завершающий '\0' места уже не хватило.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: gethostbyname() segmentation fault
« Ответ #5 : 05 Марта 2013, 06:17:05 »
На самом деле ответ очевиден: не такая уж она и проверенная.

 

Страница сгенерирована за 1.327 секунд. Запросов: 25.