Bug 16498 - wrong getaddrname functions behavior
Summary: wrong getaddrname functions behavior
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: glibc-core (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-31 18:43 MSD by inger@altlinux.org
Modified: 2018-12-02 17:58 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description inger@altlinux.org 2008-07-31 18:43:37 MSD
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 программа вынуждена будет самостоятельно заниматься конверсией из числа в строку и проверкой диапазона.

Тем более что ведь на левые сервисы по имени будет возвращена ошибка, спрашивается, почему нет сообщения об ошибке для левого порта.
Comment 1 Dmitry V. Levin 2018-12-02 17:58:58 MSK
Is it a getaddrinfo()'s to detect illegal invalid ports?