]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix ASAN error in DoH (passing NULL to memmove())
authorArtem Boldariev <artem@boldariev.com>
Mon, 14 Jun 2021 20:25:03 +0000 (23:25 +0300)
committerArtem Boldariev <artem@boldariev.com>
Wed, 16 Jun 2021 14:46:10 +0000 (17:46 +0300)
The warning was produced by an ASAN build:

runtime error: null pointer passed as argument 2, which is declared to
never be null

This commit fixes it by checking if nghttp2_session_mem_send() has
actually returned anything.

lib/isc/netmgr/http.c

index c04cb9e9d1ba5177d541ee1a3766b9803280e779..f22f537d4ec9a2cd5acca989f167eb5b6812528a 100644 (file)
@@ -1025,6 +1025,13 @@ http_send_outgoing(isc_nm_http_session_t *session, isc_nmhandle_t *httphandle,
                        nghttp2_session_mem_send(session->ngsession, &data);
                const size_t new_total = total + pending;
 
+               /* Sometimes nghttp2_session_mem_send() does not return any
+                * data to send even though nghttp2_session_want_write()
+                * returns success. */
+               if (pending == 0 || data == NULL) {
+                       break;
+               }
+
                /* reallocate buffer if required */
                if (new_total > sizeof(tmp_data)) {
                        uint8_t *old_prepared_data = prepared_data;