[ecflow] 08/50: Add patches
Alastair McKinstry
mckinstry at moszumanska.debian.org
Wed Sep 20 15:30:42 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch debian/master
in repository ecflow.
commit fba032b0443ddd25fbaf02da6a696524bc5dad30
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Mon Jan 23 15:44:46 2017 +0000
Add patches
---
debian/patches/auto_ptr.patch | 289 +++++++++++++++++++++++++++++++++++
debian/patches/format-security.patch | 13 ++
debian/patches/series | 2 +
3 files changed, 304 insertions(+)
diff --git a/debian/patches/auto_ptr.patch b/debian/patches/auto_ptr.patch
new file mode 100644
index 0000000..4538339
--- /dev/null
+++ b/debian/patches/auto_ptr.patch
@@ -0,0 +1,289 @@
+Index: ecflow-4.5.0/ANode/src/ExprDuplicate.cpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/ExprDuplicate.cpp
++++ ecflow-4.5.0/ANode/src/ExprDuplicate.cpp
+@@ -45,13 +45,13 @@ ExprDuplicate::~ExprDuplicate()
+ duplicate_expr.clear();
+ }
+
+-std::auto_ptr<AstTop> ExprDuplicate::find(const std::string& expr)
++std::unique_ptr<AstTop> ExprDuplicate::find(const std::string& expr)
+ {
+ my_map::const_iterator it = duplicate_expr.find(expr);
+ if (it != duplicate_expr.end()) {
+- return std::auto_ptr<AstTop>((*it).second->clone());
++ return std::unique_ptr<AstTop>((*it).second->clone());
+ }
+- return std::auto_ptr<AstTop>();
++ return std::unique_ptr<AstTop>();
+ }
+
+ void ExprDuplicate::add(const std::string& expr,AstTop* ast)
+Index: ecflow-4.5.0/ANode/src/ExprDuplicate.hpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/ExprDuplicate.hpp
++++ ecflow-4.5.0/ANode/src/ExprDuplicate.hpp
+@@ -24,7 +24,7 @@
+ // =========================================================================
+
+ #include <string>
+-#include <memory> // for auto_ptr
++#include <memory> // for unique_ptr
+ #include <boost/noncopyable.hpp>
+ class AstTop;
+
+@@ -35,7 +35,7 @@ public:
+ ~ExprDuplicate();
+
+ // Find the expr in the map, if found returns a CLONED ast, else NULL
+- static std::auto_ptr<AstTop> find(const std::string& expr);
++ static std::unique_ptr<AstTop> find(const std::string& expr);
+
+ // Add the expr to the map, the ast is cloned.
+ static void add(const std::string& expr,AstTop*);
+Index: ecflow-4.5.0/ANode/src/NodeChange.cpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/NodeChange.cpp
++++ ecflow-4.5.0/ANode/src/NodeChange.cpp
+@@ -101,7 +101,7 @@ void Node::changeTrigger(const std::stri
+ {
+ PartExpression part(expression);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+ std::stringstream ss;
+ ss << "Node::changeTrigger: Failed to parse expression '" << expression << "'. " << parseErrorMsg;
+@@ -123,7 +123,7 @@ void Node::changeComplete(const std::str
+ {
+ PartExpression part(expression);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+ std::stringstream ss;
+ ss << "Node::changeComplete: Failed to parse expression '" << expression << "'. " << parseErrorMsg;
+Index: ecflow-4.5.0/ANode/src/Expression.cpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/Expression.cpp
++++ ecflow-4.5.0/ANode/src/Expression.cpp
+@@ -65,7 +65,7 @@ std::ostream& PartExpression::print(std:
+ return os;
+ }
+
+-std::auto_ptr<AstTop> PartExpression::parseExpressions(std::string& errorMsg) const
++std::unique_ptr<AstTop> PartExpression::parseExpressions(std::string& errorMsg) const
+ {
+ //#ifdef DEBUG
+ // cout << "PartExpression::parseExpressions '" << exp_ << "'\n";
+@@ -75,7 +75,7 @@ std::auto_ptr<AstTop> PartExpression::pa
+ if (expressionParser.doParse( errorMsg)) {
+
+ // returns new allocated memory, if no errors
+- std::auto_ptr<AstTop> ast = expressionParser.ast();
++ std::unique_ptr<AstTop> ast = expressionParser.ast();
+
+ if (errorMsg.empty()) LOG_ASSERT(ast.get(),"");
+ else LOG_ASSERT(!ast.get(), "");
+@@ -83,7 +83,7 @@ std::auto_ptr<AstTop> PartExpression::pa
+ return ast;
+ }
+ }
+- return std::auto_ptr<AstTop>();
++ return std::unique_ptr<AstTop>();
+ }
+
+ //===========================================================================
+@@ -156,7 +156,7 @@ void Expression::createAST( Node* node,
+ size_t theSize = vec_.size();
+ for(size_t i = 0; i < theSize; i++) {
+ std::string localErrorMsg;
+- std::auto_ptr<AstTop> ast = vec_[i].parseExpressions( localErrorMsg );
++ std::unique_ptr<AstTop> ast = vec_[i].parseExpressions( localErrorMsg );
+ if ( ast.get() ) {
+
+ // We can have multiple trigger/complete expression, combine to a single AST tree
+@@ -183,7 +183,7 @@ void Expression::createAST( Node* node,
+
+ // Since we have transferred over root2 it must be set to NULL for top2,
+ // to avoid its child destruction
+- ast->addChild(NULL); // since its an auto_ptr, no need for explicit delete
++ ast->addChild(NULL); // since its an unique_ptr, no need for explicit delete
+ }
+ }
+ else {
+Index: ecflow-4.5.0/ANode/src/ExprParser.hpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/ExprParser.hpp
++++ ecflow-4.5.0/ANode/src/ExprParser.hpp
+@@ -17,7 +17,7 @@
+ //============================================================================
+
+ #include <string>
+-#include <memory> // for auto_ptr
++#include <memory> // for unique_ptr
+ #include <boost/noncopyable.hpp>
+ #include "ExprAst.hpp"
+
+@@ -33,13 +33,13 @@ public:
+ bool doParse(std::string& errorMsg);
+
+ /// return the Abstract syntax tree, and release memory
+- std::auto_ptr<AstTop> ast() { return ast_;}
++ std::unique_ptr<AstTop> ast() { return ast_;}
+
+ /// return the Abstract syntax tree, without release memory
+ AstTop* getAst() const { return ast_.get();}
+
+ private:
+- std::auto_ptr<AstTop> ast_;
++ std::unique_ptr<AstTop> ast_;
+ std::string expr_;
+ };
+
+@@ -54,11 +54,11 @@ public:
+ bool doParse();
+
+ /// return the Abstract syntax tree, and release memory
+- std::auto_ptr<AstTop> ast() { return ast_;}
++ std::unique_ptr<AstTop> ast() { return ast_;}
+
+ private:
+ const std::string& expr_;
+- std::auto_ptr<AstTop> ast_;
++ std::unique_ptr<AstTop> ast_;
+ };
+
+ #endif
+Index: ecflow-4.5.0/Base/src/cts/AlterCmd.cpp
+===================================================================
+--- ecflow-4.5.0.orig/Base/src/cts/AlterCmd.cpp
++++ ecflow-4.5.0/Base/src/cts/AlterCmd.cpp
+@@ -915,7 +915,7 @@ void AlterCmd::createChange( Cmd_ptr& cm
+ // Parse the expression
+ PartExpression exp(name);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+ ss << "AlterCmd: change trigger: Failed to parse expression '" << name << "'. " << parseErrorMsg << "\n";
+ ss << dump_args(options,paths) << "\n";
+@@ -939,7 +939,7 @@ void AlterCmd::createChange( Cmd_ptr& cm
+ // Parse the expression
+ PartExpression exp(name);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+ ss << "AlterCmd: change complete: Failed to parse expression '" << name << "'. " << parseErrorMsg << "\n";
+ ss << dump_args(options,paths) << "\n";
+Index: ecflow-4.5.0/view/src/host.cc
+===================================================================
+--- ecflow-4.5.0.orig/view/src/host.cc
++++ ecflow-4.5.0/view/src/host.cc
+@@ -578,7 +578,7 @@ void host::dir( node& n, const char* pat
+ {
+ gui::message("%s: fetching file list", this->name());
+ std::string content;
+- std::auto_ptr<ecf_dir> dir(new ecf_dir());
++ std::unique_ptr<ecf_dir> dir(new ecf_dir());
+ std::string job = n.variable("ECF_JOB");
+ // if (use_ecf_out_cmd(n, path, dir.get(), content)) { l.scan(dir.get()); } else
+ std::cout << n.full_name() << "\n" << path << "\n";
+@@ -587,7 +587,7 @@ void host::dir( node& n, const char* pat
+ } else if (loghost_ != ecf_node::none()) {
+ logsvr log_server(loghost_, logport_);
+ if (log_server.ok()) {
+- std::auto_ptr<ecf_dir> rdir(log_server.getdir(path));
++ std::unique_ptr<ecf_dir> rdir(log_server.getdir(path));
+ if (rdir.get()) {
+ l.scan(rdir.get());
+ }
+@@ -623,7 +623,7 @@ void host::dir( node& n, const char* pat
+ c++;
+ }
+
+- std::auto_ptr<ecf_dir> ldir (ecf_file_dir(dirname, basename, true));
++ std::unique_ptr<ecf_dir> ldir (ecf_file_dir(dirname, basename, true));
+ if (ldir.get()) {
+ l.scan(ldir.get());
+ }
+Index: ecflow-4.5.0/Base/src/cts/TaskCmds.cpp
+===================================================================
+--- ecflow-4.5.0.orig/Base/src/cts/TaskCmds.cpp
++++ ecflow-4.5.0/Base/src/cts/TaskCmds.cpp
+@@ -410,7 +410,7 @@ CtsWaitCmd::CtsWaitCmd(const std::string
+ // Parse expression to make sure its valid
+ PartExpression exp(expression);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+
+ assert( !parseErrorMsg.empty() );
+@@ -441,7 +441,7 @@ STC_Cmd_ptr CtsWaitCmd::doHandleRequest(
+ // Parse the expression
+ PartExpression exp(expression_);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = exp.parseExpressions( parseErrorMsg );
+ if (!ast.get()) {
+ // should NOT really, since client did check
+ std::stringstream ss; ss << "CtsWaitCmd: Failed to parse expression '" << expression_ << "'. " << parseErrorMsg;
+Index: ecflow-4.5.0/ANode/src/Expression.hpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/src/Expression.hpp
++++ ecflow-4.5.0/ANode/src/Expression.hpp
+@@ -17,7 +17,7 @@
+ //============================================================================
+
+ #include <ostream>
+-#include <memory> // for auto_ptr
++#include <memory> // for unique_ptr
+
+ #include <boost/serialization/serialization.hpp>
+ #include <boost/serialization/vector.hpp> // no need to include <vector>
+@@ -56,7 +56,7 @@ public:
+ bool operator!=(const PartExpression& rhs) const { return !operator==(rhs); }
+
+ /// Parse the expression and create the abstract syntax tree
+- std::auto_ptr<AstTop> parseExpressions(std::string& errorMsg) const;
++ std::unique_ptr<AstTop> parseExpressions(std::string& errorMsg) const;
+
+ private:
+ std::string exp_;
+@@ -135,10 +135,10 @@ private:
+ // They are created on demand. reasons:
+ // 1/ Help with AIX serialisation
+ // 2/ Help to reduce network traffic
+- mutable std::auto_ptr< AstTop > theCombinedAst_; // *not* persisted, demand created
++ mutable std::unique_ptr< AstTop > theCombinedAst_; // *not* persisted, demand created
+
+ private:
+- // prevent assignment since we have an auto_ptr
++ // prevent assignment since we have an unique_ptr
+ Expression& operator=(Expression const& f);
+
+ private:
+Index: ecflow-4.5.0/ANode/test/TestExprParser.cpp
+===================================================================
+--- ecflow-4.5.0.orig/ANode/test/TestExprParser.cpp
++++ ecflow-4.5.0/ANode/test/TestExprParser.cpp
+@@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE( test_expression_pa
+
+ PartExpression part(vec[i]);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
+ BOOST_REQUIRE_MESSAGE(ast.get(),"Failed to parse\n" << vec[i] << " " << parseErrorMsg);
+
+
+@@ -117,7 +117,7 @@ BOOST_AUTO_TEST_CASE( test_expression_pa
+
+ PartExpression part(vec[i]);
+ string parseErrorMsg;
+- std::auto_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
++ std::unique_ptr<AstTop> ast = part.parseExpressions( parseErrorMsg );
+ BOOST_REQUIRE_MESSAGE(ast.get(),"Failed to parse " << vec[i] << " " << parseErrorMsg);
+
+ std::stringstream s2;
diff --git a/debian/patches/format-security.patch b/debian/patches/format-security.patch
new file mode 100644
index 0000000..7678a51
--- /dev/null
+++ b/debian/patches/format-security.patch
@@ -0,0 +1,13 @@
+Index: ecflow-4.5.0/view/src/time.cc
+===================================================================
+--- ecflow-4.5.0.orig/view/src/time.cc
++++ ecflow-4.5.0/view/src/time.cc
+@@ -132,7 +132,7 @@ char* time_node::string(char* s)
+ return s;
+ }
+ #endif
+- if (owner_) { sprintf(s, owner_->toString().c_str()); return s; }
++ if (owner_) { sprintf(s, "%s", owner_->toString().c_str()); return s; }
+ return s;
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a716dd4
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+format-security.patch
+auto_ptr.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ecflow.git
More information about the debian-science-commits
mailing list