From 144b197cd0e56b4ed313bb3e1e70329c63533ed8 Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Mon, 19 Jul 2021 11:04:44 +0200 Subject: [PATCH] errors: use safe_str before escape to prevent crash on escape of bad chars --- rhodecode/apps/repository/views/repo_changelog.py | 6 +++--- rhodecode/apps/repository/views/repo_compare.py | 2 +- rhodecode/apps/repository/views/repo_files.py | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rhodecode/apps/repository/views/repo_changelog.py b/rhodecode/apps/repository/views/repo_changelog.py index da7c6f8e..87c04a78 100644 --- a/rhodecode/apps/repository/views/repo_changelog.py +++ b/rhodecode/apps/repository/views/repo_changelog.py @@ -72,7 +72,7 @@ class RepoChangelogView(RepoAppView): h.flash(msg, category='error') raise HTTPNotFound() except RepositoryError as e: - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') raise HTTPNotFound() def _graph(self, repo, commits, prev_data=None, next_data=None): @@ -238,14 +238,14 @@ class RepoChangelogView(RepoAppView): f_path=f_path, commit_id=commit_id) except EmptyRepositoryError as e: - h.flash(safe_str(h.escape(e)), category='warning') + h.flash(h.escape(safe_str(e)), category='warning') raise HTTPFound( h.route_path('repo_summary', repo_name=self.db_repo_name)) except HTTPFound: raise except (RepositoryError, CommitDoesNotExistError, Exception) as e: log.exception(safe_str(e)) - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') if commit_id: # from single commit page, we redirect to main commits diff --git a/rhodecode/apps/repository/views/repo_compare.py b/rhodecode/apps/repository/views/repo_compare.py index 4d322fe0..4af7521f 100644 --- a/rhodecode/apps/repository/views/repo_compare.py +++ b/rhodecode/apps/repository/views/repo_compare.py @@ -70,7 +70,7 @@ class RepoCompareView(RepoAppView): except RepositoryError as e: log.exception(safe_str(e)) - h.flash(safe_str(h.escape(e)), category='warning') + h.flash(h.escape(safe_str(e)), category='warning') if not partial: raise HTTPFound( h.route_path('repo_summary', repo_name=repo.repo_name)) diff --git a/rhodecode/apps/repository/views/repo_files.py b/rhodecode/apps/repository/views/repo_files.py index a2ae4e21..7dd4cdab 100644 --- a/rhodecode/apps/repository/views/repo_files.py +++ b/rhodecode/apps/repository/views/repo_files.py @@ -186,7 +186,7 @@ class RepoFilesView(RepoAppView): h.flash(msg, category='error') raise HTTPNotFound() except RepositoryError as e: - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') raise HTTPNotFound() def _get_filenode_or_redirect(self, commit_obj, path): @@ -206,7 +206,7 @@ class RepoFilesView(RepoAppView): raise HTTPNotFound() except RepositoryError as e: log.warning('Repository error while fetching filenode `%s`. Err:%s', path, e) - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') raise HTTPNotFound() return file_node @@ -733,7 +733,7 @@ class RepoFilesView(RepoAppView): c.commit.raw_id, f_path) except RepositoryError as e: - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') raise HTTPNotFound() if self.request.environ.get('HTTP_X_PJAX'): @@ -927,7 +927,7 @@ class RepoFilesView(RepoAppView): _d, _f = ScmModel().get_quick_filter_nodes(repo_name, _commit_id, _f_path) except (RepositoryError, CommitDoesNotExistError, Exception) as e: log.exception(safe_str(e)) - h.flash(safe_str(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') raise HTTPFound(h.route_path( 'repo_files', repo_name=self.db_repo_name, commit_id='tip', f_path='/')) @@ -1444,7 +1444,7 @@ class RepoFilesView(RepoAppView): 'contain .. in the path'), category='warning') raise HTTPFound(default_redirect_url) except (NodeError, NodeAlreadyExistsError) as e: - h.flash(_(h.escape(e)), category='error') + h.flash(h.escape(safe_str(e)), category='error') except Exception: log.exception('Error occurred during commit') h.flash(_('Error occurred during commit'), category='error')