From 3093aa7d0051cc8ab745864a28c562ac74ba04f8 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Thu, 3 Jan 2019 02:38:48 -0500 Subject: [PATCH] Fix 500s from invalid page args (#818) * Fix some 500s generated by invalid non-int page arguments --- CTFd/admin/submissions.py | 2 +- CTFd/admin/teams.py | 2 +- CTFd/admin/users.py | 2 +- CTFd/teams.py | 3 +-- CTFd/users.py | 3 +-- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/CTFd/admin/submissions.py b/CTFd/admin/submissions.py index a053b574..35f0ce68 100644 --- a/CTFd/admin/submissions.py +++ b/CTFd/admin/submissions.py @@ -13,7 +13,7 @@ def submissions_listing(submission_type): if submission_type: filters['type'] = submission_type - curr_page = abs(int(request.args.get('page', 1))) + curr_page = abs(int(request.args.get('page', 1, type=int))) results_per_page = 50 page_start = results_per_page * (curr_page - 1) page_end = results_per_page * (curr_page - 1) + results_per_page diff --git a/CTFd/admin/teams.py b/CTFd/admin/teams.py index ba50b8cb..0a57b508 100644 --- a/CTFd/admin/teams.py +++ b/CTFd/admin/teams.py @@ -10,7 +10,7 @@ from sqlalchemy.sql import not_ @admin.route('/admin/teams') @admins_only def teams_listing(): - page = request.args.get('page', 1) + page = abs(request.args.get('page', 1, type=int)) q = request.args.get('q') if q: field = request.args.get('field') diff --git a/CTFd/admin/users.py b/CTFd/admin/users.py index 46425b87..980ce209 100644 --- a/CTFd/admin/users.py +++ b/CTFd/admin/users.py @@ -12,7 +12,7 @@ from sqlalchemy.sql import not_ @admin.route('/admin/users') @admins_only def users_listing(): - page = request.args.get('page', 1) + page = abs(request.args.get('page', 1, type=int)) q = request.args.get('q') if q: field = request.args.get('field') diff --git a/CTFd/teams.py b/CTFd/teams.py index 16aca918..cdb0bf8b 100644 --- a/CTFd/teams.py +++ b/CTFd/teams.py @@ -18,8 +18,7 @@ teams = Blueprint('teams', __name__) @check_account_visibility @require_team_mode def listing(): - page = request.args.get('page', 1) - page = abs(int(page)) + page = abs(request.args.get('page', 1, type=int)) results_per_page = 50 page_start = results_per_page * (page - 1) page_end = results_per_page * (page - 1) + results_per_page diff --git a/CTFd/users.py b/CTFd/users.py index 47c7fbbf..c1038118 100644 --- a/CTFd/users.py +++ b/CTFd/users.py @@ -14,8 +14,7 @@ users = Blueprint('users', __name__) @users.route('/users') @check_account_visibility def listing(): - page = request.args.get('page', 1) - page = abs(int(page)) + page = abs(request.args.get('page', 1, type=int)) results_per_page = 50 page_start = results_per_page * (page - 1) page_end = results_per_page * (page - 1) + results_per_page