Bug 16498 - wrong getaddrname functions behavior
: wrong getaddrname functions behavior
Status: NEW
: Sisyphus
(All bugs in Sisyphus/glibc-core)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-07-31 18:43 by
Modified: 2010-10-11 21:50 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-07-31 18:43:37
int getaddrinfo(const char *node, const char *service,
                       const struct addrinfo *hints,
                       struct addrinfo **res);
Параметр service -- или имя сервиса или номер сервиса.
Проблема в том что при получении строки с номером порта выше 65536 функция не
возвращает код ошибки а получает неопределённое поведение.

В debian это известно аж с 2003:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=192876
В netbsd подобной проблемы нет:
http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-4-0/src/dist/bind/lib/lwres/getaddrinfo.c

Мне кажется это ошибка иначе вызывающая getaddrinfo программа вынуждена будет
самостоятельно заниматься конверсией из числа в строку и проверкой диапазона.

Тем более что ведь на левые сервисы по имени будет возвращена ошибка,
спрашивается, почему нет сообщения об ошибке для левого порта.