You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2023/06/12 21:26:45 UTC

[arrow-adbc] branch main updated: fix(c/driver/postgresql): Fix ASAN detected leaks (#768)

This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 9d1e3ea4 fix(c/driver/postgresql): Fix ASAN detected leaks (#768)
9d1e3ea4 is described below

commit 9d1e3ea44c18b7c277d0d5478d8ca85868530a57
Author: William Ayd <wi...@icloud.com>
AuthorDate: Mon Jun 12 14:26:40 2023 -0700

    fix(c/driver/postgresql): Fix ASAN detected leaks (#768)
---
 c/driver/postgresql/postgresql_test.cc | 3 +++
 c/driver/postgresql/statement.cc       | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/c/driver/postgresql/postgresql_test.cc b/c/driver/postgresql/postgresql_test.cc
index 163f61f1..18ecaedf 100644
--- a/c/driver/postgresql/postgresql_test.cc
+++ b/c/driver/postgresql/postgresql_test.cc
@@ -286,6 +286,7 @@ TEST_F(PostgresConnectionTest, GetObjectsGetAllFindsPrimaryKey) {
     ASSERT_NO_FATAL_FAILURE(reader.Next());
     ASSERT_EQ(reader.array->release, nullptr);
   }
+  ASSERT_THAT(AdbcStatementRelease(&statement, &error), IsOkStatus(&error));
 
   adbc_validation::StreamReader reader;
   ASSERT_THAT(
@@ -433,6 +434,7 @@ TEST_F(PostgresConnectionTest, GetObjectsGetAllFindsForeignKey) {
     ASSERT_NO_FATAL_FAILURE(reader.Next());
     ASSERT_EQ(reader.array->release, nullptr);
   }
+  ASSERT_THAT(AdbcStatementRelease(&statement, &error), IsOkStatus(&error));
 
   ASSERT_THAT(AdbcStatementNew(&connection, &statement, &error), IsOkStatus(&error));
   {
@@ -451,6 +453,7 @@ TEST_F(PostgresConnectionTest, GetObjectsGetAllFindsForeignKey) {
     ASSERT_NO_FATAL_FAILURE(reader.Next());
     ASSERT_EQ(reader.array->release, nullptr);
   }
+  ASSERT_THAT(AdbcStatementRelease(&statement, &error), IsOkStatus(&error));
 
   adbc_validation::StreamReader reader;
   ASSERT_THAT(
diff --git a/c/driver/postgresql/statement.cc b/c/driver/postgresql/statement.cc
index b91d2fe5..87431304 100644
--- a/c/driver/postgresql/statement.cc
+++ b/c/driver/postgresql/statement.cc
@@ -442,6 +442,8 @@ int TupleReader::GetNext(struct ArrowArray* out) {
 }
 
 void TupleReader::Release() {
+  StringBuilderReset(&error_builder_);
+
   if (result_) {
     PQclear(result_);
     result_ = nullptr;