TLS servers are not obliged to implement the RFC3546 maximum fragment length extension, and many common servers (including OpenSSL, as used in Apache's mod_ssl) do not do so. iPXE may therefore have to cope with TLS records of up to 16kB. Allocations for 16kB have a non-negligible chance of failing, causing the TLS connection to abort. Fix by maintaining the received record as a linked list of I/O buffers, rather than a single contiguous buffer. To reduce memory pressure, we also decrypt in situ, and deliver the decrypted data via xfer_deliver_iob() rather than xfer_deliver_raw(). Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
19 |
|
19 |
|
20 |
|
20 |
|
21 |
|
21 |
|
|
22 |
|
|
22 |
|
23 |
|
23 |
|
24 |
|
24 |
|
25 |
|
|
|
||
264 |
|
265 |
|
265 |
|
266 |
|
266 |
|
267 |
|
267 |
|
|
|
268 |
|
|
|
269 |
|
268 |
|
270 |
|
269 |
|
271 |
|
|
|
272 |
|
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
|
273 |
|
|
273 |
|
274 |
|
274 |
|
275 |
|
|
276 |
|
|
|
277 |
|
|
|
278 |
|
|
|
279 |
|
|
|
280 |
|
|
|
281 |
|
|
|
282 |
|
|
|
283 |
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
|
287 |
|
|
|
288 |
|
|
|
289 |
|
|
|
290 |
|
|
|
291 |
|
|
|
292 |
|
|
|
293 |
|
|
|
294 |
|
|
|
295 |
|
|
|
296 |
|
|
275 |
|
297 |
|
276 |
|
298 |
|
277 |
|
299 |
|
|
|
||
101 |
|
101 |
|
102 |
|
102 |
|
103 |
|
103 |
|
|
104 |
|
|
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
|
108 |
|
|
|
109 |
|
|
|
110 |
|
|
|
111 |
|
|
104 |
|
112 |
|
105 |
|
113 |
|
106 |
|
114 |
|
|
|
||
125 |
|
133 |
|
126 |
|
134 |
|
127 |
|
135 |
|
128 |
|
|
|
129 |
|
|
|
130 |
|
|
|
131 |
|
|
|
132 |
|
136 |
|
133 |
|
137 |
|
134 |
|
138 |
|
|
|
||
159 |
|
163 |
|
160 |
|
164 |
|
161 |
|
165 |
|
162 |
|
|
|
|
166 |
|
|
163 |
|
167 |
|
164 |
|
168 |
|
165 |
|
169 |
|
|
|
||
295 |
|
299 |
|
296 |
|
300 |
|
297 |
|
301 |
|
|
302 |
|
|
|
303 |
|
|
298 |
|
304 |
|
299 |
|
305 |
|
300 |
|
306 |
|
301 |
|
307 |
|
302 |
|
308 |
|
303 |
|
309 |
|
304 |
|
|
|
|
310 |
|
|
|
311 |
|
|
|
312 |
|
|
|
313 |
|
|
305 |
|
314 |
|
306 |
|
315 |
|
307 |
|
316 |
|
|
|
||
1013 |
|
1022 |
|
1014 |
|
1023 |
|
1015 |
|
1024 |
|
1016 |
|
|
|
|
1025 |
|
|
1017 |
|
1026 |
|
1018 |
|
1027 |
|
1019 |
|
1028 |
|
|
|
||
1703 |
|
1712 |
|
1704 |
|
1713 |
|
1705 |
|
1714 |
|
1706 |
|
|
|
1707 |
|
|
|
|
1715 |
|
|
1708 |
|
1716 |
|
1709 |
|
1717 |
|
1710 |
|
1718 |
|
1711 |
|
|
|
|
1719 |
|
|
|
1720 |
|
|
|
1721 |
|
|
|
1722 |
|
|
|
1723 |
|
|
|
1724 |
|
|
|
1725 |
|
|
|
1726 |
|
|
|
1727 |
|
|
|
1728 |
|
|
|
1729 |
|
|
|
1730 |
|
|
1712 |
|
1731 |
|
|
1732 |
|
|
|
1733 |
|
|
|
1734 |
|
|
|
1735 |
|
|
|
1736 |
|
|
|
1737 |
|
|
|
1738 |
|
|
|
1739 |
|
|
|
1740 |
|
|
|
1741 |
|
|
|
1742 |
|
|
|
1743 |
|
|
|
1744 |
|
|
|
1745 |
|
|
|
1746 |
|
|
|
1747 |
|
|
|
1748 |
|
|
|
1749 |
|
|
|
1750 |
|
|
|
1751 |
|
|
|
1752 |
|
|
|
1753 |
|
|
|
1754 |
|
|
|
1755 |
|
|
1713 |
|
1756 |
|
1714 |
|
1757 |
|
1715 |
|
|
|
|
1758 |
|
|
|
1759 |
|
|
1716 |
|
1760 |
|
1717 |
|
|
|
|
1761 |
|
|
|
1762 |
|
|
1718 |
|
1763 |
|
1719 |
|
|
|
1720 |
|
|
|
1721 |
|
|
|
1722 |
|
|
|
1723 |
|
|
|
|
1764 |
|
|
|
1765 |
|
|
1724 |
|
1766 |
|
1725 |
|
1767 |
|
1726 |
|
1768 |
|
1727 |
|
1769 |
|
|
1770 |
|
|
1728 |
|
1771 |
|
1729 |
|
|
|
|
1772 |
|
|
1730 |
|
1773 |
|
|
1774 |
|
|
|
1775 |
|
|
|
1776 |
|
|
|
1777 |
|
|
|
1778 |
|
|
|
1779 |
|
|
1731 |
|
1780 |
|
1732 |
|
1781 |
|
1733 |
|
1782 |
|
|
|
||
1737 |
|
1786 |
|
1738 |
|
1787 |
|
1739 |
|
1788 |
|
|
1789 |
|
|
|
1790 |
|
|
|
1791 |
|
|
|
1792 |
|
|
|
1793 |
|
|
|
1794 |
|
|
|
1795 |
|
|
|
1796 |
|
|
|
1797 |
|
|
|
1798 |
|
|
|
1799 |
|
|
|
1800 |
|
|
|
1801 |
|
|
|
1802 |
|
|
|
1803 |
|
|
|
1804 |
|
|
|
1805 |
|
|
|
1806 |
|
|
|
1807 |
|
|
|
1808 |
|
|
|
1809 |
|
|
|
1810 |
|
|
|
1811 |
|
|
|
1812 |
|
|
|
1813 |
|
|
|
1814 |
|
|
|
1815 |
|
|
|
1816 |
|
|
|
1817 |
|
|
|
1818 |
|
|
|
1819 |
|
|
|
1820 |
|
|
|
1821 |
|
|
|
1822 |
|
|
|
1823 |
|
|
|
1824 |
|
|
|
1825 |
|
|
|
1826 |
|
|
|
1827 |
|
|
|
1828 |
|
|
|
1829 |
|
|
|
1830 |
|
|
|
1831 |
|
|
|
1832 |
|
|
|
1833 |
|
|
|
1834 |
|
|
|
1835 |
|
|
|
1836 |
|
|
1740 |
|
1837 |
|
1741 |
|
1838 |
|
1742 |
|
1839 |
|
1743 |
|
|
|
1744 |
|
1840 |
|
1745 |
|
1841 |
|
1746 |
|
1842 |
|
|
|
||
1748 |
|
1844 |
|
1749 |
|
1845 |
|
1750 |
|
1846 |
|
1751 |
|
|
|
1752 |
|
|
|
|
1847 |
|
|
1753 |
|
1848 |
|
1754 |
|
1849 |
|
1755 |
|
1850 |
|
1756 |
|
|
|
|
1851 |
|
|
1757 |
|
1852 |
|
1758 |
|
|
|
1759 |
|
|
|
1760 |
|
|
|
1761 |
|
|
|
1762 |
|
|
|
1763 |
|
|
|
1764 |
|
|
|
1765 |
|
|
|
|
1853 |
|
|
|
1854 |
|
|
|
1855 |
|
|
1766 |
|
1856 |
|
1767 |
|
1857 |
|
1768 |
|
1858 |
|
|
|
||
1877 |
|
1967 |
|
1878 |
|
1968 |
|
1879 |
|
1969 |
|
1880 |
|
|
|
1881 |
|
|
|
|
1970 |
|
|
1882 |
|
1971 |
|
1883 |
|
1972 |
|
1884 |
|
1973 |
|
|
|
||
1945 |
|
2034 |
|
1946 |
|
2035 |
|
1947 |
|
2036 |
|
1948 |
|
|
|
1949 |
|
|
|
1950 |
|
|
|
1951 |
|
|
|
1952 |
|
|
|
|
2037 |
|
|
|
2038 |
|
|
1953 |
|
2039 |
|
1954 |
|
2040 |
|
1955 |
|
2041 |
|
1956 |
|
|
|
1957 |
|
|
|
1958 |
|
|
|
1959 |
|
|
|
1960 |
|
|
|
1961 |
|
|
|
1962 |
|
|
|
1963 |
|
|
|
1964 |
|
|
|
1965 |
|
|
|
1966 |
|
|
|
1967 |
|
|
|
|
2042 |
|
|
|
2043 |
|
|
|
2044 |
|
|
|
2045 |
|
|
|
2046 |
|
|
|
2047 |
|
|
|
2048 |
|
|
|
2049 |
|
|
|
2050 |
|
|
|
2051 |
|
|
1968 |
|
2052 |
|
1969 |
|
2053 |
|
1970 |
|
|
|
1971 |
|
|
|
1972 |
|
|
|
1973 |
|
|
|
1974 |
|
|
|
1975 |
|
|
|
1976 |
|
|
|
1977 |
|
|
|
|
2054 |
|
|
|
2055 |
|
|
1978 |
|
2056 |
|
1979 |
|
2057 |
|
1980 |
|
2058 |
|
|
|
||
1983 |
|
2061 |
|
1984 |
|
2062 |
|
1985 |
|
2063 |
|
1986 |
|
|
|
1987 |
|
|
|
1988 |
|
|
|
1989 |
|
|
|
1990 |
|
|
|
|
2064 |
|
|
|
2065 |
|
|
1991 |
|
2066 |
|
1992 |
|
2067 |
|
1993 |
|
2068 |
|
1994 |
|
|
|
1995 |
|
|
|
1996 |
|
|
|
1997 |
|
|
|
|
2069 |
|
|
|
2070 |
|
|
|
2071 |
|
|
1998 |
|
2072 |
|
1999 |
|
|
|
2000 |
|
|
|
2001 |
|
|
|
2002 |
|
|
|
2003 |
|
|
|
|
2073 |
|
|
|
2074 |
|
|
2004 |
|
2075 |
|
2005 |
|
|
|
2006 |
|
|
|
2007 |
|
|
|
2008 |
|
|
|
2009 |
|
|
|
2010 |
|
|
|
2011 |
|
|
|
2012 |
|
|
|
2013 |
|
2076 |
|
2014 |
|
2077 |
|
|
2078 |
|
|
2015 |
|
2079 |
|
2016 |
|
2080 |
|
2017 |
|
|
|
2018 |
|
|
|
2019 |
|
|
|
2020 |
|
|
|
2021 |
|
|
|
2022 |
|
|
|
2023 |
|
|
|
|
2081 |
|
|
|
2082 |
|
|
|
2083 |
|
|
2024 |
|
2084 |
|
2025 |
|
2085 |
|
2026 |
|
|
|
2027 |
|
|
|
2028 |
|
|
|
2029 |
|
|
|
2030 |
|
|
|
2031 |
|
|
|
2032 |
|
|
|
2033 |
|
|
|
2034 |
|
|
|
|
2086 |
|
|
|
2087 |
|
|
|
2088 |
|
|
|
2089 |
|
|
|
2090 |
|
|
|
2091 |
|
|
|
2092 |
|
|
|
2093 |
|
|
|
2094 |
|
|
|
2095 |
|
|
|
2096 |
|
|
|
2097 |
|
|
|
2098 |
|
|
|
2099 |
|
|
2035 |
|
2100 |
|
2036 |
|
|
|
|
2101 |
|
|
2037 |
|
2102 |
|
2038 |
|
2103 |
|
2039 |
|
2104 |
|
2040 |
|
2105 |
|
2041 |
|
|
|
2042 |
|
|
|
2043 |
|
|
|
2044 |
|
|
|
|
2106 |
|
|
|
2107 |
|
|
|
2108 |
|
|
|
2109 |
|
|
|
2110 |
|
|
|
2111 |
|
|
|
2112 |
|
|
|
2113 |
|
|
2045 |
|
2114 |
|
2046 |
|
2115 |
|
2047 |
|
2116 |
|
|
|
||
2051 |
|
2120 |
|
2052 |
|
2121 |
|
2053 |
|
2122 |
|
2054 |
|
|
|
|
2123 |
|
|
2055 |
|
2124 |
|
2056 |
|
2125 |
|
2057 |
|
2126 |
|
2058 |
|
2127 |
|
2059 |
|
|
|
|
2128 |
|
|
2060 |
|
2129 |
|
2061 |
|
2130 |
|
2062 |
|
2131 |
|
2063 |
|
|
|
2064 |
|
|
|
2065 |
|
|
|
2066 |
|
|
|
|
2132 |
|
|
|
2133 |
|
|
|
2134 |
|
|
|
2135 |
|
|
2067 |
|
2136 |
|
2068 |
|
|
|
2069 |
|
|
|
|
2137 |
|
|
2070 |
|
2138 |
|
2071 |
|
2139 |
|
2072 |
|
|
|
2073 |
|
|
|
2074 |
|
|
|
2075 |
|
|
|
2076 |
|
|
|
2077 |
|
|
|
2078 |
|
|
|
|
2140 |
|
|
|
2141 |
|
|
|
2142 |
|
|
|
2143 |
|
|
2079 |
|
2144 |
|
2080 |
|
2145 |
|
2081 |
|
|
|
2082 |
|
|
|
2083 |
|
|
|
2084 |
|
|
|
2085 |
|
2146 |
|
2086 |
|
2147 |
|
2087 |
|
|
|
2088 |
|
|
|
2089 |
|
|
|
|
2148 |
|
|
|
2149 |
|
|
2090 |
|
2150 |
|
2091 |
|
|
|
2092 |
|
|
|
2093 |
|
|
|
|
2151 |
|
|
|
2152 |
|
|
|
2153 |
|
|
|
2154 |
|
|
|
2155 |
|
|
|
2156 |
|
|
|
2157 |
|
|
|
2158 |
|
|
|
2159 |
|
|
2094 |
|
2160 |
|
2095 |
|
2161 |
|
2096 |
|
2162 |
|
2097 |
|
2163 |
|
2098 |
|
2164 |
|
2099 |
|
2165 |
|
2100 |
|
|
|
2101 |
|
|
|
2102 |
|
|
|
|
2166 |
|
|
|
2167 |
|
|
|
2168 |
|
|
|
2169 |
|
|
|
2170 |
|
|
|
2171 |
|
|
|
2172 |
|
|
2103 |
|
2173 |
|
2104 |
|
|
|
2105 |
|
|
|
|
2174 |
|
|
2106 |
|
2175 |
|
2107 |
|
2176 |
|
2108 |
|
|
|
2109 |
|
|
|
2110 |
|
|
|
2111 |
|
2177 |
|
2112 |
|
|
|
2113 |
|
|
|
|
2178 |
|
|
|
2179 |
|
|
2114 |
|
2180 |
|
2115 |
|
|
|
2116 |
|
|
|
2117 |
|
|
|
2118 |
|
|
|
|
2181 |
|
|
2119 |
|
2182 |
|
2120 |
|
2183 |
|
2121 |
|
2184 |
|
|
|
||
2195 |
|
2258 |
|
2196 |
|
2259 |
|
2197 |
|
2260 |
|
|
2261 |
|
|
|
2262 |
|
|
|
2263 |
|
|
|
2264 |
|
|
|
2265 |
|
|
2198 |
|
2266 |
|
2199 |
|
|
|
2200 |
|
|
|
2201 |
|
|
|
2202 |
|
|
|
2203 |
|
|
|
2204 |
|
|
|
2205 |
|
|
|
|
2267 |
|
|
|
2268 |
|
|
|
2269 |
|
|
|
2270 |
|
|
|
2271 |
|
|
|
2272 |
|
|
|
2273 |
|
|
|
2274 |
|
|
|
2275 |
|
|
|
2276 |
|
|
|
2277 |
|
|
|
2278 |
|
|
|
2279 |
|
|
|
2280 |
|
|
|
2281 |
|
|
|
2282 |
|
|
|
2283 |
|
|
|
2284 |
|
|
|
2285 |
|
|
|
2286 |
|
|
|
2287 |
|
|
|
2288 |
|
|
|
2289 |
|
|
|
2290 |
|
|
|
2291 |
|
|
|
2292 |
|
|
|
2293 |
|
|
|
2294 |
|
|
|
2295 |
|
|
|
2296 |
|
|
|
2297 |
|
|
|
2298 |
|
|
|
2299 |
|
|
|
2300 |
|
|
|
2301 |
|
|
|
2302 |
|
|
2206 |
|
2303 |
|
2207 |
|
2304 |
|
2208 |
|
2305 |
|
2209 |
|
2306 |
|
2210 |
|
2307 |
|
2211 |
|
2308 |
|
|
2309 |
|
|
|
2310 |
|
|
|
2311 |
|
|
|
2312 |
|
|
|
2313 |
|
|
|
2314 |
|
|
|
2315 |
|
|
2212 |
|
2316 |
|
2213 |
|
2317 |
|
2214 |
|
2318 |
|
|
|
||
2218 |
|
2322 |
|
2219 |
|
2323 |
|
2220 |
|
2324 |
|
|
2325 |
|
|
2221 |
|
2326 |
|
2222 |
|
2327 |
|
|
2328 |
|
|
|
2329 |
|
|
|
2330 |
|
|
|
2331 |
|
|
|
2332 |
|
|
|
2333 |
|
|
|
2334 |
|
|
|
2335 |
|
|
|
2336 |
|
|
|
2337 |
|
|
2223 |
|
2338 |
|
2224 |
|
2339 |
|
2225 |
|
|
|
|
2340 |
|
|
2226 |
|
2341 |
|
2227 |
|
2342 |
|
2228 |
|
2343 |
|
2229 |
|
2344 |
|
2230 |
|
2345 |
|
2231 |
|
|
|
2232 |
|
|
|
2233 |
|
|
|
2234 |
|
|
|
2235 |
|
2346 |
|
|
2347 |
|
|
2236 |
|
2348 |
|
|
2349 |
|
|
2237 |
|
2350 |
|
2238 |
|
2351 |
|
2239 |
|
2352 |
|
|
|
||
2250 |
|
2363 |
|
2251 |
|
2364 |
|
2252 |
|
2365 |
|
2253 |
|
|
|
2254 |
|
|
|
2255 |
|
2366 |
|
|
2367 |
|
|
2256 |
|
2368 |
|
2257 |
|
2369 |
|
2258 |
|
2370 |
|
|
2371 |
|
|
2259 |
|
2372 |
|
2260 |
|
2373 |
|
2261 |
|
2374 |
|
2262 |
|
|
|
2263 |
|
|
|
|
2375 |
|
|
2264 |
|
2376 |
|
2265 |
|
2377 |
|
2266 |
|
2378 |
|
2267 |
|
|
|
2268 |
|
|
|
|
2379 |
|
|
|
2380 |
|
|
|
2381 |
|
|
2269 |
|
2382 |
|
2270 |
|
2383 |
|
2271 |
|
2384 |
|
|
|
||
2275 |
|
2388 |
|
2276 |
|
2389 |
|
2277 |
|
2390 |
|
2278 |
|
|
|
2279 |
|
|
|
2280 |
|
|
|
2281 |
|
|
|
2282 |
|
|
|
|
2391 |
|
|
|
2392 |
|
|
|
2393 |
|
|
|
2394 |
|
|
2283 |
|
2395 |
|
2284 |
|
2396 |
|
2285 |
|
2397 |
|
2286 |
|
|
|
|
2398 |
|
|
2287 |
|
2399 |
|
2288 |
|
2400 |
|
2289 |
|
2401 |
|
2290 |
|
2402 |
|
2291 |
|
|
|
2292 |
|
2403 |
|
2293 |
|
2404 |
|
2294 |
|
2405 |
|
|
|
||
2521 |
|
2632 |
|
2522 |
|
2633 |
|
2523 |
|
2634 |
|
|
2635 |
|
|
|
2636 |
|
|
|
2637 |
|
|
2524 |
|
2638 |
|
2525 |
|
2639 |
|
2526 |
|
2640 |
|