From 021db6f226191e536a84ba6a76590bf5743d5d62 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 22 Jan 2022 17:51:47 -0500 Subject: QPDFJob: convert password to shared pointer --- include/qpdf/QPDFJob.hh | 3 +-- libqpdf/QPDFJob.cc | 2 +- libqpdf/QPDFJob_argv.cc | 6 ++---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/include/qpdf/QPDFJob.hh b/include/qpdf/QPDFJob.hh index 03035957..86ee470c 100644 --- a/include/qpdf/QPDFJob.hh +++ b/include/qpdf/QPDFJob.hh @@ -199,8 +199,7 @@ class QPDFJob enum remove_unref_e { re_auto, re_yes, re_no }; - char const* password; - std::shared_ptr password_alloc; + std::shared_ptr password; bool linearize; bool decrypt; int split_pages; diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index c6eb128e..e7ea3dad 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -452,7 +452,7 @@ QPDFJob::run() std::shared_ptr pdf_ph; try { - pdf_ph = processFile(o.infilename, o.password); + pdf_ph = processFile(o.infilename, o.password.get()); } catch (QPDFExc& e) { diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc index 715446d3..44185e9a 100644 --- a/libqpdf/QPDFJob_argv.cc +++ b/libqpdf/QPDFJob_argv.cc @@ -178,7 +178,7 @@ ArgParser::argShowCrypto() void ArgParser::argPassword(char* parameter) { - o.password = parameter; + o.password = QUtil::make_shared_cstr(parameter); } void @@ -197,9 +197,7 @@ ArgParser::argPasswordFile(char* parameter) } if (lines.size() >= 1) { - // Make sure the memory for this stays in scope. - o.password_alloc = QUtil::make_shared_cstr(lines.front()); - o.password = o.password_alloc.get(); + o.password = QUtil::make_shared_cstr(lines.front()); if (lines.size() > 1) { -- cgit v1.2.3-54-g00ecf