Recent changes (master)

Jens Axboe <[email protected]> Tue, 10 Mar 2026 06:00:01 -0600
Newsgroups org.kernel.vger.fio
Message-ID <[email protected]>
The following changes since commit 5d15185ae6f0c46822c0e360c5bd75042269a5eb:

  t/zbd: avoid test case 71 failure with write_zone_remainder option (2026-03-03 19:11:54 -0500)

are available in the Git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to fa23c09bfefb2b9c960d179ad67d356fbc29179f:

  Merge branch 'push-lnvrzuqpnylp' of https://github.com/msuozzo/fio (2026-03-09 20:02:12 -0600)

----------------------------------------------------------------
Jens Axboe (1):
      Merge branch 'push-lnvrzuqpnylp' of https://github.com/msuozzo/fio

Matthew Suozzo (1):
      options: fix heap-use-after-free in ioengine_so_path

 options.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

---

Diff of recent changes:

diff --git a/options.c b/options.c
index 8d9e3054..a4cd1a77 100644
--- a/options.c
+++ b/options.c
@@ -1924,7 +1924,9 @@ static int str_ioengine_external_cb(void *data, const char *str)
 		return 1;
 	}
 
-	td->o.ioengine_so_path = p;
+	if (td->o.ioengine_so_path)
+		free(td->o.ioengine_so_path);
+	td->o.ioengine_so_path = strdup(p);
 	return 0;
 }
 
@@ -6121,6 +6123,9 @@ void fio_options_mem_dupe(struct thread_data *td)
 {
 	options_mem_dupe(fio_options, &td->o);
 
+	if (td->o.ioengine_so_path)
+		td->o.ioengine_so_path = strdup(td->o.ioengine_so_path);
+
 	if (td->eo && td->io_ops) {
 		void *oldeo = td->eo;
 
@@ -6230,6 +6235,11 @@ void del_opt_posval(const char *optname, const char *ival)
 void fio_options_free(struct thread_data *td)
 {
 	options_free(fio_options, &td->o);
+	if (td->o.ioengine_so_path) {
+		free(td->o.ioengine_so_path);
+		td->o.ioengine_so_path = NULL;
+	}
+
 	if (td->eo && td->io_ops && td->io_ops->options) {
 		options_free(td->io_ops->options, td->eo);
 		free(td->eo);