Loading CHANGES +7 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,13 @@ Changelog Daniel (28 October) - Dan C tracked down yet another weird behavior in the glibc gethostbyname_r() function for some specific versions (reported on 2.2.5 and 2.1.1), and provided a fix. On Linux machines with these glibc versioins, non-ipv6 builds of libcurl would often fail to resolve perfectly resolvable host names. Daniel (26 October) - James Bursa found out that curl_msnprintf() could write the trailing zero-byte outside its given buffer size. This could happen if you generated Loading RELEASE-NOTES +2 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ This release includes the following changes: This release includes the following bugfixes: o added work-around for a name resolve problem on some glibc versions o a rare ERRORBUFFER single-byte overflow was fixed o HTTP-resuming an already downloaded file works better o builds better on Solaris 8+ with gcc Loading Loading @@ -83,6 +84,6 @@ advice from friends like these: Jeremy Friesner, Florian Schoppmann, Neil Dunbar, Frank Ticheler, Lachlan O'Dea, Dirk Manske, Domenico Andreoli, Gisle Vanem, Kimmo Kinnunen, Andrew Fuller, Georg Horn, Andrs Garca, Dylan Ellicott, Kevin Roth, David Hull, James Bursa James Bursa, Dan C Thanks! (and sorry if I forgot to mention someone) lib/hostip.c +19 −4 Original line number Diff line number Diff line Loading @@ -983,12 +983,27 @@ static Curl_addrinfo *my_getaddrinfo(struct connectdata *conn, of buffer size (step_size grows beyond CURL_NAMELOOKUP_SIZE). If anyone has a better fix, please tell us! ------------------------------------------------------------------- On October 23rd 2003, Dan C dug up more details on the mysteries of gethostbyname_r() in glibc: In glibc 2.2.5 the interface is different (this has also been discovered in glibc 2.1.1-6 as shipped by Redhat 6). What I can't explain, is that tests performed on glibc 2.2.4-34 and 2.2.4-32 (shipped/upgraded by Redhat 7.2) don't show this behavior! In this "buggy" version, the return code is -1 on error and 'errno' is set to the ERANGE or EAGAIN code. Note that 'errno' is not a thread-safe variable. */ if((ERANGE == res) || (EAGAIN == res)) { if(((ERANGE == res) || (EAGAIN == res)) || ((res<0) && ((ERANGE == errno) || (EAGAIN == errno)))) step_size+=200; continue; } else break; } while(step_size <= CURL_NAMELOOKUP_SIZE); Loading Loading
CHANGES +7 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,13 @@ Changelog Daniel (28 October) - Dan C tracked down yet another weird behavior in the glibc gethostbyname_r() function for some specific versions (reported on 2.2.5 and 2.1.1), and provided a fix. On Linux machines with these glibc versioins, non-ipv6 builds of libcurl would often fail to resolve perfectly resolvable host names. Daniel (26 October) - James Bursa found out that curl_msnprintf() could write the trailing zero-byte outside its given buffer size. This could happen if you generated Loading
RELEASE-NOTES +2 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ This release includes the following changes: This release includes the following bugfixes: o added work-around for a name resolve problem on some glibc versions o a rare ERRORBUFFER single-byte overflow was fixed o HTTP-resuming an already downloaded file works better o builds better on Solaris 8+ with gcc Loading Loading @@ -83,6 +84,6 @@ advice from friends like these: Jeremy Friesner, Florian Schoppmann, Neil Dunbar, Frank Ticheler, Lachlan O'Dea, Dirk Manske, Domenico Andreoli, Gisle Vanem, Kimmo Kinnunen, Andrew Fuller, Georg Horn, Andrs Garca, Dylan Ellicott, Kevin Roth, David Hull, James Bursa James Bursa, Dan C Thanks! (and sorry if I forgot to mention someone)
lib/hostip.c +19 −4 Original line number Diff line number Diff line Loading @@ -983,12 +983,27 @@ static Curl_addrinfo *my_getaddrinfo(struct connectdata *conn, of buffer size (step_size grows beyond CURL_NAMELOOKUP_SIZE). If anyone has a better fix, please tell us! ------------------------------------------------------------------- On October 23rd 2003, Dan C dug up more details on the mysteries of gethostbyname_r() in glibc: In glibc 2.2.5 the interface is different (this has also been discovered in glibc 2.1.1-6 as shipped by Redhat 6). What I can't explain, is that tests performed on glibc 2.2.4-34 and 2.2.4-32 (shipped/upgraded by Redhat 7.2) don't show this behavior! In this "buggy" version, the return code is -1 on error and 'errno' is set to the ERANGE or EAGAIN code. Note that 'errno' is not a thread-safe variable. */ if((ERANGE == res) || (EAGAIN == res)) { if(((ERANGE == res) || (EAGAIN == res)) || ((res<0) && ((ERANGE == errno) || (EAGAIN == errno)))) step_size+=200; continue; } else break; } while(step_size <= CURL_NAMELOOKUP_SIZE); Loading