diff options
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/mdso_amain.c | 2 | ||||
-rw-r--r-- | src/driver/mdso_driver_ctx.c | 7 | ||||
-rw-r--r-- | src/driver/mdso_unit_ctx.c | 9 |
3 files changed, 13 insertions, 5 deletions
diff --git a/src/driver/mdso_amain.c b/src/driver/mdso_amain.c index c0d0824..25c1f7c 100644 --- a/src/driver/mdso_amain.c +++ b/src/driver/mdso_amain.c @@ -1,6 +1,6 @@ /****************************************************************/ /* mdso: midipix dso scavenger */ -/* Copyright (C) 2015--2017 Z. Gilboa */ +/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */ /* Released under GPLv2 and GPLv3; see COPYING.MDSO. */ /****************************************************************/ diff --git a/src/driver/mdso_driver_ctx.c b/src/driver/mdso_driver_ctx.c index 30d1ba7..bfa0d9e 100644 --- a/src/driver/mdso_driver_ctx.c +++ b/src/driver/mdso_driver_ctx.c @@ -1,6 +1,6 @@ /****************************************************************/ /* mdso: midipix dso scavenger */ -/* Copyright (C) 2015--2017 Z. Gilboa */ +/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */ /* Released under GPLv2 and GPLv3; see COPYING.MDSO. */ /****************************************************************/ @@ -240,6 +240,8 @@ int mdso_get_driver_ctx( entry->arg, optv,meta); + break; + case TAG_VERSION: cctx.drvflags |= MDSO_DRIVER_VERSION; break; @@ -376,6 +378,9 @@ static void mdso_free_driver_ctx_impl(struct mdso_driver_ctx_alloc * ictx) close(ictx->ctx.fddst); if (ictx->ctx.fdtmpin >= 0) + unlink(ictx->ctx.tmpname); + + if (ictx->ctx.fdtmpin >= 0) close(ictx->ctx.fdtmpin); if (ictx->ctx.asmbase) diff --git a/src/driver/mdso_unit_ctx.c b/src/driver/mdso_unit_ctx.c index d14beed..f21ccc4 100644 --- a/src/driver/mdso_unit_ctx.c +++ b/src/driver/mdso_unit_ctx.c @@ -1,6 +1,6 @@ /****************************************************************/ /* mdso: midipix dso scavenger */ -/* Copyright (C) 2015--2017 Z. Gilboa */ +/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */ /* Released under GPLv2 and GPLv3; see COPYING.MDSO. */ /****************************************************************/ @@ -42,7 +42,7 @@ static int mdso_stdin_to_tmp(const struct mdso_driver_ctx * dctx) ssize_t cnt; char * ch; char buf[4096]; - char template[] = "/tmp/mdso_stdin_to_tmp_XXXXXX"; + char tmpname[] = "/tmp/mdso_stdin_to_tmp_XXXXXX"; addr = (uintptr_t)dctx - offsetof(struct mdso_driver_ctx_impl,ctx); ictx = (struct mdso_driver_ctx_impl *)addr; @@ -50,14 +50,17 @@ static int mdso_stdin_to_tmp(const struct mdso_driver_ctx * dctx) if (ictx->fdtmpin >= 0) return dup(ictx->fdtmpin); - if ((fdtmp = mkstemp(template)) < 0) + if ((fdtmp = mkstemp(tmpname)) < 0) return -1; if ((ictx->fdtmpin = dup(fdtmp)) < 0) { close(fdtmp); + unlink(tmpname); return -1; } + strcpy(ictx->tmpname,tmpname); + for (;;) { ret = read(0,buf,sizeof(buf)-1); |