diff options
author | Jay Berkenbilt <ejb@ql.org> | 2017-08-10 03:48:01 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2017-08-10 04:00:49 +0200 |
commit | ff6971fb1cba7ff88eeb0538d3d6cf5268add05f (patch) | |
tree | 88ea08d8b11b130ef6fd0157ad161f1f1a49dbd8 | |
parent | 49825e5cb67e589060de435f59203fa2f29b0476 (diff) | |
download | qpdf-ff6971fb1cba7ff88eeb0538d3d6cf5268add05f.tar.zst |
Call PointerHolder constructor properly (fixes #135)
Passed arguments to the constructor in the wrong order.
-rw-r--r-- | README.maintainer | 7 | ||||
-rw-r--r-- | qpdf/qpdf.cc | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/README.maintainer b/README.maintainer index 0a270e2a..209a5ebf 100644 --- a/README.maintainer +++ b/README.maintainer @@ -17,6 +17,13 @@ Release Reminders running a spelling checker over the source code to catch errors in variable names, strings, and comments. Use ispell -p ispell-words. + * Run tests with sanitize address enabled: + + ./configure CFLAGS="-fsanitize=address -g" \ + CXXFLAGS="-fsanitize=address -g" \ + LDFLAGS="-fsanitize=address" \ + --enable-werror --disable-shared + * Consider running tests with latest gcc and/or valgrind. To do this, replace, build with debugging and without shared libraries. In build, create z and move each executable into z. Then create a diff --git a/qpdf/qpdf.cc b/qpdf/qpdf.cc index a5724fed..86753945 100644 --- a/qpdf/qpdf.cc +++ b/qpdf/qpdf.cc @@ -2050,7 +2050,7 @@ int main(int argc, char* argv[]) // deleted by using PointerHolder objects to back the pointers in // argv. std::vector<PointerHolder<char> > new_argv; - new_argv.push_back(PointerHolder<char>(QUtil::copy_string(argv[0]), true)); + new_argv.push_back(PointerHolder<char>(true, QUtil::copy_string(argv[0]))); for (int i = 1; i < argc; ++i) { if ((strlen(argv[i]) > 1) && (argv[i][0] == '@')) @@ -2060,10 +2060,10 @@ int main(int argc, char* argv[]) else { new_argv.push_back( - PointerHolder<char>(QUtil::copy_string(argv[i]), true)); + PointerHolder<char>(true, QUtil::copy_string(argv[i]))); } } - PointerHolder<char*> argv_ph(new char*[1+new_argv.size()], true); + PointerHolder<char*> argv_ph(true, new char*[1+new_argv.size()]); argv = argv_ph.getPointer(); for (size_t i = 0; i < new_argv.size(); ++i) { |