summaryrefslogtreecommitdiffstats
path: root/bridges
diff options
context:
space:
mode:
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/shared/vtablefactory.cxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/bridges/source/cpp_uno/shared/vtablefactory.cxx b/bridges/source/cpp_uno/shared/vtablefactory.cxx
index bbeedcaad3c3..4789b0341ebd 100644
--- a/bridges/source/cpp_uno/shared/vtablefactory.cxx
+++ b/bridges/source/cpp_uno/shared/vtablefactory.cxx
@@ -243,18 +243,17 @@ bool VtableFactory::createBlock(Block &block, sal_Int32 slotCount) const
strDirectory += "/.execoooXXXXXX";
OString aTmpName = OUStringToOString(strDirectory, osl_getThreadTextEncoding());
- char *tmpfname = new char[aTmpName.getLength()+1];
- strncpy(tmpfname, aTmpName.getStr(), aTmpName.getLength()+1);
+ std::unique_ptr<char[]> tmpfname(new char[aTmpName.getLength()+1]);
+ strncpy(tmpfname.get(), aTmpName.getStr(), aTmpName.getLength()+1);
// coverity[secure_temp] - https://communities.coverity.com/thread/3179
- if ((block.fd = mkstemp(tmpfname)) == -1)
- fprintf(stderr, "mkstemp(\"%s\") failed: %s\n", tmpfname, strerror(errno));
+ if ((block.fd = mkstemp(tmpfname.get())) == -1)
+ fprintf(stderr, "mkstemp(\"%s\") failed: %s\n", tmpfname.get(), strerror(errno));
if (block.fd == -1)
{
- delete[] tmpfname;
break;
}
- unlink(tmpfname);
- delete[] tmpfname;
+ unlink(tmpfname.get());
+ tmpfname.reset();
#if defined(HAVE_POSIX_FALLOCATE)
int err = posix_fallocate(block.fd, 0, block.size);
#else