Skip to content

Commit 9a581d0

Browse files
author
Guy Bedford
authored
add missing cabi_free calls (#905)
1 parent c102521 commit 9a581d0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

runtime/fastly/host-api/host_api.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ Result<std::vector<HostString>> generic_get_header_names(auto handle) {
222222
if (!convert_result(
223223
header_names_get(handle, buf, HEADER_MAX_LEN, cursor, &next_cursor, &nwritten), &err)) {
224224
cabi_free(buf);
225+
cabi_free(strs);
225226
res.emplace_err(err);
226227
return res;
227228
}
@@ -803,6 +804,7 @@ Result<HostString> HttpBody::read(uint32_t chunk_size) const {
803804
if (!convert_result(
804805
fastly::body_read(this->handle, ret.ptr, static_cast<size_t>(chunk_size), &ret.len),
805806
&err)) {
807+
cabi_free(ret.ptr);
806808
res.emplace_err(err);
807809
} else {
808810
res.emplace(JS::UniqueChars(reinterpret_cast<char *>(ret.ptr)), ret.len);
@@ -1534,10 +1536,10 @@ Result<std::optional<HostBytes>> HttpResp::get_ip() const {
15341536

15351537
ret.ptr = static_cast<uint8_t *>(cabi_malloc(16, 1));
15361538
if (!convert_result(fastly::resp_ip_get(this->handle, ret.ptr, &ret.len), &err)) {
1539+
cabi_free(ret.ptr);
15371540
if (error_is_optional_none(err)) {
15381541
res.emplace(std::nullopt);
15391542
} else {
1540-
cabi_free(ret.ptr);
15411543
res.emplace_err(err);
15421544
}
15431545
} else {
@@ -1690,11 +1692,11 @@ Result<std::optional<HostString>> ConfigStore::get(std::string_view name) {
16901692
name_str.len, reinterpret_cast<char *>(ret.ptr),
16911693
CONFIG_STORE_ENTRY_MAX_LEN, &ret.len),
16921694
&err)) {
1695+
cabi_free(ret.ptr);
16931696
if (error_is_optional_none(err)) {
16941697
res.emplace(std::nullopt);
16951698
} else {
16961699
res.emplace_err(err);
1697-
cabi_free(ret.ptr);
16981700
}
16991701
} else {
17001702
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() {
23402342
}
23412343

23422344
if (!convert_result(status, &err)) {
2345+
cabi_free(ret.ptr);
23432346
res.emplace_err(err);
23442347
} else {
23452348
res.emplace(make_host_bytes(ret));
@@ -2762,6 +2765,7 @@ Result<HostString> DeviceDetection::lookup(std::string_view user_agent) {
27622765
}
27632766

27642767
if (!convert_result(status, &err)) {
2768+
cabi_free(ret.ptr);
27652769
res.emplace_err(err);
27662770
} else {
27672771
res.emplace(make_host_string(ret));

0 commit comments

Comments
 (0)