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

cmcfarlen pushed a commit to branch 10.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit 67829a71988317098337661fe2242e86cb58004a
Author: Serris Lew <serrisn...@gmail.com>
AuthorDate: Tue Jun 4 14:05:51 2024 -0700

    Coverity 1523684: Resource leak (#11338)
    
    * Coverity 1523684: Resource leak
    
    * Use unique_ptr
    
    ---------
    
    Co-authored-by: Serris Lew <lser...@apple.com>
    (cherry picked from commit 42aa04d87007b57a48caec3d2f00c052aca95b86)
---
 src/iocore/aio/test_AIO.cc | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/iocore/aio/test_AIO.cc b/src/iocore/aio/test_AIO.cc
index 6c64d133bd..065407bd9e 100644
--- a/src/iocore/aio/test_AIO.cc
+++ b/src/iocore/aio/test_AIO.cc
@@ -90,21 +90,20 @@ int    seq_write_size         = 0;
 int    rand_read_size         = 0;
 
 struct AIO_Device : public Continuation {
-  char        *path;
-  int          fd;
-  int          id;
-  char        *buf;
-  ink_hrtime   time_start, time_end;
-  int          seq_reads;
-  int          seq_writes;
-  int          rand_reads;
-  int          hotset_idx;
-  int          mode;
-  AIOCallback *io;
-  AIO_Device(ProxyMutex *m) : Continuation(m)
+  char                        *path;
+  int                          fd;
+  int                          id;
+  char                        *buf;
+  ink_hrtime                   time_start, time_end;
+  int                          seq_reads;
+  int                          seq_writes;
+  int                          rand_reads;
+  int                          hotset_idx;
+  int                          mode;
+  std::unique_ptr<AIOCallback> io;
+  AIO_Device(ProxyMutex *m) : Continuation(m), io{new_AIOCallback()}
   {
     hotset_idx = 0;
-    io         = new_AIOCallback();
     time_start = 0;
     SET_HANDLER(&AIO_Device::do_hotset);
   }
@@ -259,7 +258,7 @@ AIO_Device::do_hotset(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
   io->aiocb.aio_buf    = buf;
   io->action           = this;
   io->thread           = mutex->thread_holding;
-  ink_assert(ink_aio_write(io) >= 0);
+  ink_assert(ink_aio_write(io.get()) >= 0);
   hotset_idx++;
   return 0;
 }
@@ -303,7 +302,7 @@ AIO_Device::do_fd(int /* event ATS_UNUSED */, Event * /* e 
ATS_UNUSED */)
     io->aiocb.aio_offset     = seq_read_point;
     io->aiocb.aio_nbytes     = seq_read_size;
     io->aiocb.aio_lio_opcode = LIO_READ;
-    ink_assert(ink_aio_read(io) >= 0);
+    ink_assert(ink_aio_read(io.get()) >= 0);
     seq_read_point += seq_read_size;
     if (seq_read_point > max_offset) {
       seq_read_point = MIN_OFFSET;
@@ -315,7 +314,7 @@ AIO_Device::do_fd(int /* event ATS_UNUSED */, Event * /* e 
ATS_UNUSED */)
     io->aiocb.aio_nbytes     = seq_write_size;
     io->aiocb.aio_lio_opcode = LIO_WRITE;
     do_touch_data(seq_write_size, (static_cast<int>(seq_write_point)) % 1024);
-    ink_assert(ink_aio_write(io) >= 0);
+    ink_assert(ink_aio_write(io.get()) >= 0);
     seq_write_point += seq_write_size;
     seq_write_point += write_skip;
     if (seq_write_point > max_offset) {
@@ -342,7 +341,7 @@ AIO_Device::do_fd(int /* event ATS_UNUSED */, Event * /* e 
ATS_UNUSED */)
     io->aiocb.aio_offset     = o;
     io->aiocb.aio_nbytes     = rand_read_size;
     io->aiocb.aio_lio_opcode = LIO_READ;
-    ink_assert(ink_aio_read(io) >= 0);
+    ink_assert(ink_aio_read(io.get()) >= 0);
     rand_reads++;
     break;
   }

Reply via email to