[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