aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2017-08-10 03:48:01 +0200
committerJay Berkenbilt <ejb@ql.org>2017-08-10 04:00:49 +0200
commitff6971fb1cba7ff88eeb0538d3d6cf5268add05f (patch)
tree88ea08d8b11b130ef6fd0157ad161f1f1a49dbd8
parent49825e5cb67e589060de435f59203fa2f29b0476 (diff)
downloadqpdf-ff6971fb1cba7ff88eeb0538d3d6cf5268add05f.tar.zst
Call PointerHolder constructor properly (fixes #135)
Passed arguments to the constructor in the wrong order.
-rw-r--r--README.maintainer7
-rw-r--r--qpdf/qpdf.cc6
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)
{