From 616c871002ccde65865b2fa4d5f587d0e83efdc815c1799a9f9e9bed1462d9da Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Sat, 10 Jan 2026 00:32:04 -0500 Subject: [PATCH] Ownership for more... --- dpi/file.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/dpi/file.cc b/dpi/file.cc index e4f7b3d..191e158 100644 --- a/dpi/file.cc +++ b/dpi/file.cc @@ -98,7 +98,7 @@ struct ClientInfo { std::optional< std::string > filename; int file_fd; off_t file_sz; - DilloDir *d_dir; + std::unique_ptr< DilloDir > d_dir; FileState state; int err_code; int flags; @@ -408,7 +408,7 @@ static void File_send_dir(ClientInfo *client) { int n; char *d_cmd, *Hdirname, *HUdirname; - DilloDir *Ddir = client->d_dir; + DilloDir *Ddir = client->d_dir.get(); if (client->state == st_start) { /* Send DPI command */ @@ -608,7 +608,6 @@ static int File_prepare_send_dir(ClientInfo *client, const char *DirName, const std::string_view orig_url) { std::string ds_dirname; - DilloDir *Ddir; /* Let's make sure this directory url has a trailing slash */ ds_dirname = DirName; @@ -616,11 +615,11 @@ static int File_prepare_send_dir(ClientInfo *client, ds_dirname+= "/"; /* Let's get a structure ready for transfer */ - Ddir = File_dillodir_new(ds_dirname.c_str()).release(); + auto Ddir = File_dillodir_new(ds_dirname.c_str()); if (Ddir) { /* looks ok, set things accordingly */ client->orig_url = orig_url; - client->d_dir = Ddir; + client->d_dir = std::move( Ddir ); client->state = st_start; client->flags &= ~FILE_READ; client->flags |= FILE_WRITE; @@ -916,7 +915,6 @@ ClientInfo::~ClientInfo() a_Dpip_dsh_close(sh); a_Dpip_dsh_free(sh); File_close(file_fd); - delete d_dir; } /*