From 09f7084aa1c81d5a43567f743f88d26aac99123b Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Thu, 14 Apr 2022 20:21:24 -0700 Subject: [PATCH] pywb 2.6.7 (#710) * rewrite: add missing wordbreak to eval regex to avoid false positives, eg. '_eval' from being rewritten! * dependencies: bump gevent to 21.12.0 * inputrequest: remove unnecessary print * bump version to 2.6.7, update CHANGES for 2.6.7 --- CHANGES.rst | 6 ++++++ pywb/rewrite/regex_rewriters.py | 4 +++- pywb/rewrite/test/test_regex_rewriters.py | 6 ++++++ pywb/version.py | 2 +- pywb/warcserver/inputrequest.py | 1 - requirements.txt | 2 +- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 686734d7..7e6ca677 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +pywb 2.6.7 changelist +~~~~~~~~~~~~~~~~~~~~~ + +* dependency: bump gevent to latest (21.12.0) +* rewrite: fix eval rewriting where '._eval' was accidentally being rewritten + pywb 2.6.6 changelist ~~~~~~~~~~~~~~~~~~~~~ diff --git a/pywb/rewrite/regex_rewriters.py b/pywb/rewrite/regex_rewriters.py index 333b2ca4..b3b0a17a 100644 --- a/pywb/rewrite/regex_rewriters.py +++ b/pywb/rewrite/regex_rewriters.py @@ -84,6 +84,8 @@ if (!self.__WB_pmw) {{ self.__WB_pmw = function(obj) {{ this.__WB_source = obj; check_loc = '((self.__WB_check_loc && self.__WB_check_loc(location, arguments)) || {}).href = ' + eval_str = 'WB_wombat_runEval(function _____evalIsEvil(_______eval_arg$$) { return eval(_______eval_arg$$); }.bind(this)).eval' + self.local_objs = [ 'window', 'self', @@ -102,7 +104,7 @@ if (!self.__WB_pmw) {{ self.__WB_pmw = function(obj) {{ this.__WB_source = obj; rules = [ # rewriting 'eval(...)' - invocation - (r'(?>> _test_js_obj_proxy('x = obj.eval(a)') 'x = obj.eval(a)' +>>> _test_js_obj_proxy('x = obj._eval(a)') +'x = obj._eval(a)' + +>>> _test_js_obj_proxy('x = obj.$eval(a)') +'x = obj.$eval(a)' + #================================================================= # XML Rewriting diff --git a/pywb/version.py b/pywb/version.py index 8c5301d7..8dd43443 100644 --- a/pywb/version.py +++ b/pywb/version.py @@ -1,4 +1,4 @@ -__version__ = '2.6.6' +__version__ = '2.6.7' if __name__ == '__main__': print(__version__) diff --git a/pywb/warcserver/inputrequest.py b/pywb/warcserver/inputrequest.py index b941ba61..c3dae659 100644 --- a/pywb/warcserver/inputrequest.py +++ b/pywb/warcserver/inputrequest.py @@ -277,7 +277,6 @@ class MethodQueryCanonicalizer(object): try: query = self.json_parse(query) except Exception as e: - print(e) query = '' elif mime.startswith('text/plain'): diff --git a/requirements.txt b/requirements.txt index b4737574..a83b82a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ brotlipy pyyaml werkzeug webencodings -gevent==20.9.0 +gevent==21.12.0 webassets==0.12.1 portalocker wsgiprox>=1.5.1