diff options
author | 2022-06-27 05:33:27 -0700 | |
---|---|---|
committer | 2022-06-27 05:33:27 -0700 | |
commit | cf4ec2b109f8465fe244cd7a1d1dece51fe57359 (patch) | |
tree | df075d7b4c90e00c45452144ba74469502d14af3 /src/bun.js/bindings/bindings.cpp | |
parent | 628cbc8eb347edbafdacacaa7ff90b41ca104526 (diff) | |
download | bun-cf4ec2b109f8465fe244cd7a1d1dece51fe57359.tar.gz bun-cf4ec2b109f8465fe244cd7a1d1dece51fe57359.tar.zst bun-cf4ec2b109f8465fe244cd7a1d1dece51fe57359.zip |
Handle when there are no headers to send
Diffstat (limited to 'src/bun.js/bindings/bindings.cpp')
-rw-r--r-- | src/bun.js/bindings/bindings.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 69d836754..a7a8e8327 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -215,17 +215,20 @@ typedef struct PicoHTTPHeaders { WebCore::FetchHeaders* WebCore__FetchHeaders__createFromPicoHeaders_(JSC__JSGlobalObject* arg0, const void* arg1) { PicoHTTPHeaders pico_headers = *reinterpret_cast<const PicoHTTPHeaders*>(arg1); - Vector<KeyValuePair<String, String>> pairs; - pairs.reserveCapacity(pico_headers.len); - for (size_t i = 0; i < pico_headers.len; i++) { - WTF::String name = WTF::String(pico_headers.ptr[i].name, pico_headers.ptr[i].name_len); - WTF::String value = WTF::String(pico_headers.ptr[i].value, pico_headers.ptr[i].value_len); - pairs.uncheckedAppend(KeyValuePair<String, String>(name, value)); + RefPtr<WebCore::FetchHeaders> headers = adoptRef(*new WebCore::FetchHeaders({ WebCore::FetchHeaders::Guard::None, {} })); + + if (pico_headers.len > 0) { + Vector<KeyValuePair<String, String>> pairs; + pairs.reserveCapacity(pico_headers.len); + for (size_t i = 0; i < pico_headers.len; i++) { + WTF::String name = WTF::String(pico_headers.ptr[i].name, pico_headers.ptr[i].name_len); + WTF::String value = WTF::String(pico_headers.ptr[i].value, pico_headers.ptr[i].value_len); + pairs.uncheckedAppend(KeyValuePair<String, String>(name, value)); + } + headers->fill(WebCore::FetchHeaders::Init(WTFMove(pairs))); + pairs.releaseBuffer(); } - RefPtr<WebCore::FetchHeaders> headers = adoptRef(*new WebCore::FetchHeaders({ WebCore::FetchHeaders::Guard::None, {} })); - headers->fill(WebCore::FetchHeaders::Init(WTFMove(pairs))); - pairs.releaseBuffer(); return headers.leakRef(); } WebCore::FetchHeaders* WebCore__FetchHeaders__createFromUWS(JSC__JSGlobalObject* arg0, void* arg1) |