mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Make getent services compliant with RFC 6335 section 5.1 Fixes bug 15374
The RFC 6335 allows services that start with digit (like 3com-tsmux). These were parsed as port number which this patch fixes.
This commit is contained in:
parent
8d6bb57c44
commit
e4368156e6
@ -1,3 +1,8 @@
|
||||
2013-11-07 Ondřej Bílka <neleai@seznam.cz>
|
||||
|
||||
[BZ #15374]
|
||||
* nss/getent.c (services_keys): Recognize services starting with digit.
|
||||
|
||||
2013-11-06 David S. Miller <davem@davemloft.net>
|
||||
|
||||
[BZ #15985]
|
||||
|
14
NEWS
14
NEWS
@ -11,13 +11,13 @@ Version 2.19
|
||||
|
||||
156, 431, 832, 2801, 7003, 9954, 10278, 11087, 13028, 13982, 13985,
|
||||
14029, 14155, 14547, 14699, 14752, 14876, 14910, 15048, 15218, 15277,
|
||||
15308, 15362, 15400, 15427, 15522, 15531, 15532, 15608, 15609, 15610,
|
||||
15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736,
|
||||
15748, 15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15844,
|
||||
15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890,
|
||||
15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921, 15923,
|
||||
15939, 15948, 15963, 15966, 15985, 15988, 16032, 16034, 16036, 16037,
|
||||
16041, 16071, 16072, 16074, 16078, 16112.
|
||||
15308, 15362, 15374, 15400, 15427, 15522, 15531, 15532, 15608, 15609,
|
||||
15610, 15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735,
|
||||
15736, 15748, 15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825,
|
||||
15844, 15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887,
|
||||
15890, 15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921,
|
||||
15923, 15939, 15948, 15963, 15966, 15985, 15988, 16032, 16034, 16036,
|
||||
16037, 16041, 16071, 16072, 16074, 16078, 16112.
|
||||
|
||||
* CVE-2012-4412 The strcoll implementation caches indices and rules for
|
||||
large collation sequences to optimize multiple passes. This cache
|
||||
|
@ -788,8 +788,12 @@ services_keys (int number, char *key[])
|
||||
if (proto != NULL)
|
||||
*proto++ = '\0';
|
||||
|
||||
if (isdigit (key[i][0]))
|
||||
serv = getservbyport (htons (atol (key[i])), proto);
|
||||
char *endptr;
|
||||
long port = strtol (key[i], &endptr, 10);
|
||||
|
||||
if (isdigit (key[i][0]) && *endptr == '\0'
|
||||
&& 0 <= port && port <= 65535)
|
||||
serv = getservbyport (htons (port), proto);
|
||||
else
|
||||
serv = getservbyname (key[i], proto);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user