diff --git a/src/psql_utils/include/psql_utils/to_bytea.hpp b/src/psql_utils/include/psql_utils/to_bytea.hpp
index 652801be8ee8d9c7299a6a56e5fe1049fc3373f1..d4d01ef44e4d041dd98532f91da028fdb1ac24aa 100644
--- a/src/psql_utils/include/psql_utils/to_bytea.hpp
+++ b/src/psql_utils/include/psql_utils/to_bytea.hpp
@@ -5,10 +5,12 @@
 #include <memory>
 
 namespace PsqlTools::PsqlUtils {
+    using bytea_ptr = std::unique_ptr< bytea, decltype(&std::free) >;
 
     template< typename _Data >
-    std::unique_ptr< bytea > toBytea( _Data* _data ) {
-      std::unique_ptr< bytea > result( ( bytea* )new uint8_t[ sizeof( _Data ) + VARHDRSZ ] );
+    bytea_ptr toBytea( _Data* _data ) {
+
+      bytea_ptr result( static_cast<bytea*>( std::malloc(sizeof(_Data) + VARHDRSZ) ), &std::free );
       SET_VARSIZE( result.get(), sizeof( _Data ) );
       std::memcpy( VARDATA_ANY( result.get() ), _data, sizeof( _Data ) );