------------------------------------------------------------
revno: 2354
committer: poy <[email protected]>
branch nick: trunk
timestamp: Sun 2010-12-19 18:28:07 +0100
message:
  catch regex exceptions
modified:
  dcpp/ADLSearch.cpp


--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk

Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to 
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/ADLSearch.cpp'
--- dcpp/ADLSearch.cpp	2010-12-05 17:03:00 +0000
+++ dcpp/ADLSearch.cpp	2010-12-19 17:28:07 +0000
@@ -25,10 +25,11 @@
 #include "DCPlusPlus.h"
 
 #include "ADLSearch.h"
-#include "QueueManager.h"
+
 #include "ClientManager.h"
-
 #include "File.h"
+#include "LogManager.h"
+#include "QueueManager.h"
 #include "SimpleXML.h"
 
 namespace dcpp {
@@ -131,7 +132,11 @@
 	}
 
 	void operator()(boost::regex& r) const {
-		r.assign(s);
+		try {
+			r.assign(s);
+		} catch(const std::runtime_error&) {
+			LogManager::getInstance()->message(str(F_("Invalid ADL Search regular expression: %1%") % s));
+		}
 	}
 
 private:
@@ -196,7 +201,12 @@
 	}
 
 	bool operator()(boost::regex& r) const {
-		return boost::regex_search(s, r);
+		try {
+			return !r.empty() && boost::regex_search(s, r);
+		} catch(const std::runtime_error&) {
+			// most likely a stack overflow, ignore...
+			return false;
+		}
 	}
 
 private:

_______________________________________________
Mailing list: https://launchpad.net/~linuxdcpp-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~linuxdcpp-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to