f42e23773a5fd7a5d3f0fd1c1a6f183ab1175772 galt Wed May 24 11:25:16 2017 -0700 File descriptor leak in netLineFileMayOpen when error-condition occurs. Reported by Jonathan. diff --git src/lib/net.c src/lib/net.c index b8ddb22..473a0c1 100644 --- src/lib/net.c +++ src/lib/net.c @@ -1672,30 +1672,31 @@ int sd = netUrlOpen(url); if (sd < 0) { warn("Couldn't open %s", url); return NULL; } else { struct lineFile *lf = NULL; char *newUrl = NULL; int newSd = 0; if (startsWith("http://",url) || startsWith("https://",url)) { if (!netSkipHttpHeaderLinesHandlingRedirect(sd, url, &newSd, &newUrl)) { + close(sd); return NULL; } if (newUrl != NULL) { /* Update sd with newSd, replace it with newUrl, etc. */ sd = newSd; url = newUrl; } } char *urlDecoded = cloneString(url); cgiDecode(url, urlDecoded, strlen(url)); boolean isCompressed = (endsWith(urlDecoded,".gz") || endsWith(urlDecoded,".Z") || endsWith(urlDecoded,".bz2"));