@@ -222,6 +222,7 @@ Result<std::vector<HostString>> generic_get_header_names(auto handle) {
222
222
if (!convert_result (
223
223
header_names_get (handle, buf, HEADER_MAX_LEN, cursor, &next_cursor, &nwritten), &err)) {
224
224
cabi_free (buf);
225
+ cabi_free (strs);
225
226
res.emplace_err (err);
226
227
return res;
227
228
}
@@ -803,6 +804,7 @@ Result<HostString> HttpBody::read(uint32_t chunk_size) const {
803
804
if (!convert_result (
804
805
fastly::body_read (this ->handle , ret.ptr , static_cast <size_t >(chunk_size), &ret.len ),
805
806
&err)) {
807
+ cabi_free (ret.ptr );
806
808
res.emplace_err (err);
807
809
} else {
808
810
res.emplace (JS::UniqueChars (reinterpret_cast <char *>(ret.ptr )), ret.len );
@@ -1534,10 +1536,10 @@ Result<std::optional<HostBytes>> HttpResp::get_ip() const {
1534
1536
1535
1537
ret.ptr = static_cast <uint8_t *>(cabi_malloc (16 , 1 ));
1536
1538
if (!convert_result (fastly::resp_ip_get (this ->handle , ret.ptr , &ret.len ), &err)) {
1539
+ cabi_free (ret.ptr );
1537
1540
if (error_is_optional_none (err)) {
1538
1541
res.emplace (std::nullopt);
1539
1542
} else {
1540
- cabi_free (ret.ptr );
1541
1543
res.emplace_err (err);
1542
1544
}
1543
1545
} else {
@@ -1690,11 +1692,11 @@ Result<std::optional<HostString>> ConfigStore::get(std::string_view name) {
1690
1692
name_str.len , reinterpret_cast <char *>(ret.ptr ),
1691
1693
CONFIG_STORE_ENTRY_MAX_LEN, &ret.len ),
1692
1694
&err)) {
1695
+ cabi_free (ret.ptr );
1693
1696
if (error_is_optional_none (err)) {
1694
1697
res.emplace (std::nullopt);
1695
1698
} else {
1696
1699
res.emplace_err (err);
1697
- cabi_free (ret.ptr );
1698
1700
}
1699
1701
} else {
1700
1702
ret.ptr = static_cast <uint8_t *>(cabi_realloc (ret.ptr , CONFIG_STORE_ENTRY_MAX_LEN, 1 , ret.len ));
@@ -2340,6 +2342,7 @@ Result<HostBytes> CacheHandle::get_user_metadata() {
2340
2342
}
2341
2343
2342
2344
if (!convert_result (status, &err)) {
2345
+ cabi_free (ret.ptr );
2343
2346
res.emplace_err (err);
2344
2347
} else {
2345
2348
res.emplace (make_host_bytes (ret));
@@ -2762,6 +2765,7 @@ Result<HostString> DeviceDetection::lookup(std::string_view user_agent) {
2762
2765
}
2763
2766
2764
2767
if (!convert_result (status, &err)) {
2768
+ cabi_free (ret.ptr );
2765
2769
res.emplace_err (err);
2766
2770
} else {
2767
2771
res.emplace (make_host_string (ret));
0 commit comments