diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/COPYING b/COPYING old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index fd2b293..109126d --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ is in a directory named src): ln ~/src/index.html public_html/index.html ln -s ~/src/dbcreate.sql public_html/dbcreate.sql ln -s ~/src/readme public_html/readme + ln -s ~/src/lib public_html/lib suexec and userdir options must be active within Apache. We cannot use symbolic links for the `createcontest` scripts since they are directly diff --git a/Touche-Installation-Instructions.doc b/Touche-Installation-Instructions.doc old mode 100644 new mode 100755 diff --git a/createcontest2.php b/createcontest2.php index cf8fb58..9b83929 100755 --- a/createcontest2.php +++ b/createcontest2.php @@ -1,4 +1,5 @@ \n"; echo "

Creating Database . . . "; - $mypwd = "pc2bgone"; + $mypwd = "password"; $cmd3 = "mysqladmin --password=$mypwd -u root create $db_name"; +echo "
[$cmd3]
"; system($cmd3, $result); $cmd3 = "mysql --password=$mypwd -u root $db_name < dbcreate.sql"; +echo "
[$cmd3]
"; system($cmd3, $result); $cmd4 = "cp -r develop/ ./"; $cmd4 .= $contest; echo "
[$cmd4]
"; system($cmd4, $result); $dbU = "contest_skeleton"; -$link = mysql_connect($dbhost, $dbU, $dbpw); +$link = mysqli_connect($dbhost, $dbU, $dbpw, $db_name); if (!$link) { print "Sorry. Database connect failed."; exit; } -$connect_good = mysql_select_db($db_name); -if (!$connect_good) { - print "Sorry. Database selection failed."; - exit; -} $base_dir = "/home/contest/$contest"; -$contest_info = mysql_query("INSERT INTO CONTEST_CONFIG (HOST, CONTEST_NAME, FREEZE_DELAY, CONTEST_END_DELAY, BASE_DIRECTORY, JUDGE_USER) VALUES ('$HOST', '$contest', '14400', '18000', '$base_dir', 'judge')"); +$contest_info = mysqli_query($link, "INSERT INTO CONTEST_CONFIG (HOST, CONTEST_NAME, FREEZE_DELAY, CONTEST_END_DELAY, BASE_DIRECTORY, JUDGE_USER) VALUES ('$HOST', '$contest', '14400', '18000', '$base_dir', 'judge')"); if (!$contest_info) { print "Sorry. Database request (INSERT) failed."; exit; @@ -239,7 +237,8 @@ $chk = fwrite($fhdl, $file); fclose($fhdl); #----------------------------------------------------------------- -echo "

To finish setting up the contest go to: Administration setup

"; +$username = get_current_user(); +echo "

To finish setting up the contest go to: Administration setup

"; ?> diff --git a/dbcreate.sql b/dbcreate.sql index aab382f..45e4829 100755 --- a/dbcreate.sql +++ b/dbcreate.sql @@ -183,8 +183,8 @@ DROP TABLE IF EXISTS CONTEST_CONFIG; CREATE TABLE CONTEST_CONFIG ( HOST char(30) NOT NULL default '', CONTEST_NAME char(30) NOT NULL default '', - CONTEST_DATE date NOT NULL, - START_TIME time NOT NULL, + CONTEST_DATE date NOT NULL default '2001-01-01', + START_TIME time NOT NULL default '12:00', FREEZE_DELAY int(11) NOT NULL default '0', CONTEST_END_DELAY int(11) NOT NULL default '0', BASE_DIRECTORY char(255) NOT NULL default '', diff --git a/develop/chroot_wrapper.c b/develop/chroot_wrapper.c old mode 100644 new mode 100755 diff --git a/develop/jail_scripts/c_jail.sh b/develop/jail_scripts/c_jail.sh new file mode 100755 index 0000000..845509d --- /dev/null +++ b/develop/jail_scripts/c_jail.sh @@ -0,0 +1,15 @@ +#!/bin/bash +if [ ! -d "c_jail" ]; then + mkdir c_jail +fi + +mkdir ./c_jail/usr +mkdir ./c_jail/usr/bin +mkdir ./c_jail/usr/lib +mkdir ./c_jail/bin +mkdir ./c_jail/lib64 +mkdir ./c_jail/lib +mkdir ./c_jail/lib/x86_64-linux-gnu +cp /bin/sh ./c_jail/bin/sh +cp /lib/x86_64-linux-gnu/libc.so.6 ./c_jail/lib/x86_64-linux-gnu/libc.so.6 +cp /lib64/ld-linux-x86-64.so.2 ./c_jail/lib64/ld-linux-x86-64.so.2 diff --git a/develop/jail_scripts/cpp_jail.sh b/develop/jail_scripts/cpp_jail.sh new file mode 100755 index 0000000..0c56598 --- /dev/null +++ b/develop/jail_scripts/cpp_jail.sh @@ -0,0 +1,19 @@ +#!/bin/bash +if [ ! -d "cpp_jail" ]; then + mkdir cpp_jail +fi + +mkdir ./cpp_jail/usr +mkdir ./cpp_jail/usr/bin +mkdir ./cpp_jail/usr/lib +mkdir ./cpp_jail/bin +mkdir ./cpp_jail/lib64 +mkdir ./cpp_jail/lib +mkdir ./cpp_jail/lib/x86_64-linux-gnu +cp /bin/sh ./cpp_jail/bin/sh +cp /lib/x86_64-linux-gnu/libc.so.6 ./cpp_jail/lib/x86_64-linux-gnu/libc.so.6 +cp /lib/x86_64-linux-gnu/libgcc_s.so.1 ./cpp_jail/lib/x86_64-linux-gnu/libgcc_s.so.1 +cp /lib/x86_64-linux-gnu/libm.so.6 ./cpp_jail/lib/x86_64-linux-gnu/libm.so.6 +cp /lib64/ld-linux-x86-64.so.2 ./cpp_jail/lib64/ld-linux-x86-64.so.2 +cp /usr/bin/sh ./cpp_jail/usr/bin/sh +cp /usr/lib/x86_64-linux-gnu ./cpp_jail/usr/lib/x86_64-linux-gnu diff --git a/develop/jail_scripts/java_jail.sh b/develop/jail_scripts/java_jail.sh new file mode 100755 index 0000000..0173d80 --- /dev/null +++ b/develop/jail_scripts/java_jail.sh @@ -0,0 +1,21 @@ +#!/bin/bash +if [ ! -d "java_jail" ]; then + mkdir java_jail +fi +mkdir ./java_jail/usr +mkdir ./java_jail/usr/bin +mkdir ./java_jail/usr/lib +mkdir ./java_jail/usr/lib/jvm +mkdir ./java_jail/bin +mkdir ./java_jail/lib64 +mkdir ./java_jail/lib +mkdir ./java_jail/lib/x86_64-linux-gnu +mkdir /usr/lib/jvm/java-6-openjdk-amd64 +mkdir ./java_jail/usr/lib/jvm/java-1.8.0-openjdk-amd64 +cp /bin/sh ./java_jail/bin/sh +cp /lib/x86_64-linux-gnu/libpthread.so.0 ./java_jail/lib/x86_64-linux-gnu/ +cp /lib/x86_64-linux-gnu/libdl.so.2 ./java_jail/lib/x86_64-linux-gnu/ +cp /lib/x86_64-linux-gnu/libc.so.6 ./java_jail/lib/x86_64-linux-gnu/ +cp /lib64/ld-linux-x86-64.so.2 ./java_jail/lib64 +cp /lib/x86_64-linux-gnu/libz.so.1 ./java_jail/lib/x86_64-linux-gnu/ +cp -r /usr/lib/jvm/java-1.8.0-openjdk-amd64/* ./java_jail/usr/lib/jvm/java-1.8.0-openjdk-amd64/ diff --git a/develop/old_chroot_wrapper.c b/develop/old_chroot_wrapper.c old mode 100644 new mode 100755 diff --git a/develop/start_contest.crontab b/develop/start_contest.crontab old mode 100644 new mode 100755 diff --git a/develop/stop_contest.crontab b/develop/stop_contest.crontab old mode 100644 new mode 100755 diff --git a/lib/create.inc b/lib/create.inc old mode 100644 new mode 100755 diff --git a/lib/session.inc b/lib/session.inc old mode 100644 new mode 100755 diff --git a/public_html/admin/email_body.txt b/public_html/admin/email_body.txt old mode 100644 new mode 100755 diff --git a/public_html/admin/lib/contest_info.inc b/public_html/admin/lib/contest_info.inc index 59ac8ee..906e0ed 100755 --- a/public_html/admin/lib/contest_info.inc +++ b/public_html/admin/lib/contest_info.inc @@ -10,14 +10,14 @@ # arch-tag: lib/contest_info.inc # -$contest_info = mysql_query("SELECT * FROM CONTEST_CONFIG"); +$contest_info = mysqli_query($link, "SELECT * FROM CONTEST_CONFIG"); if (!$contest_info) { print "Sorry. Database request (CONTEST_CONFIG) failed. Retrying..."; exit; } -$row = mysql_fetch_assoc($contest_info); - if (mysql_num_rows($contest_info) < 1) { +$row = mysqli_fetch_assoc($contest_info); + if (mysqli_num_rows($contest_info) < 1) { print "Sorry. No contest configuration information exists.
"; print "Please contact a system administrator."; #exit; diff --git a/public_html/admin/lib/data.inc b/public_html/admin/lib/data.inc index 219465d..57a039f 100755 --- a/public_html/admin/lib/data.inc +++ b/public_html/admin/lib/data.inc @@ -10,26 +10,21 @@ # arch-tag: lib/data.inc # -$link = mysql_connect($db_host, $db_user, $db_pass); +$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (!$link) { print "Sorry. Database connect failed. Retrying..."; exit; } -$connect_good = mysql_select_db($db_name); -if (!$connect_good) { - print "Sorry. Database selection failed. Retrying..."; - exit; -} -$contest_info = mysql_query("SELECT * FROM CONTEST_CONFIG"); +$contest_info = mysqli_query($link, "SELECT * FROM CONTEST_CONFIG"); if (!$contest_info) { print "Sorry. Database request (CONTEST_CONFIG) failed. Retrying..."; exit; } -$row = mysql_fetch_assoc($contest_info); -if (mysql_num_rows($contest_info) > 0) { +$row = mysqli_fetch_assoc($contest_info); +if (mysqli_num_rows($contest_info) > 0) { $contest_host = $row['HOST']; $contest_name = $row['CONTEST_NAME']; $contest_date = $row['CONTEST_DATE']; @@ -54,13 +49,13 @@ if (mysql_num_rows($contest_info) > 0) { $contest_end_ts = $contest_start_ts + $contest_end_time; -$teams_query = mysql_query("SELECT * FROM TEAMS"); +$teams_query = mysqli_query($link, "SELECT * FROM TEAMS"); if (!$teams_query) { print "Sorry. Database request (TEAMS) failed. Retrying..."; exit; } -$num_teams = mysql_num_rows($teams_query); -while ($row = mysql_fetch_assoc($teams_query)) { +$num_teams = mysqli_num_rows($teams_query); +while ($row = mysqli_fetch_assoc($teams_query)) { $team_id = $row['TEAM_ID']; $team_user = $row['USERNAME']; $teams[$team_id]['user'] = $team_user; @@ -102,12 +97,12 @@ while ($row = mysql_fetch_assoc($teams_query)) { $sql = "SELECT ct.TEAM_ID, c.CATEGORY_NAME"; $sql .= " FROM CATEGORY_TEAM ct, CATEGORIES c"; $sql .= " WHERE ct.CATEGORY_ID = c.CATEGORY_ID"; -$categories_query = mysql_query($sql); +$categories_query = mysqli_query($link, $sql); if (!$categories_query) { print "Sorry. Database request (CATEGORIES) failed. Retrying..."; exit; } -while ($row = mysql_fetch_assoc($categories_query)) { +while ($row = mysqli_fetch_assoc($categories_query)) { $cat_name = $row['CATEGORY_NAME']; if ($cat_name) { $categories[$cat_name]['name'] = $cat_name; @@ -121,26 +116,26 @@ while ($row = mysql_fetch_assoc($categories_query)) { } $problem_url = "problems"; -$problems_query = mysql_query("SELECT * FROM PROBLEMS"); +$problems_query = mysqli_query($link, "SELECT * FROM PROBLEMS"); if (!$problems_query) { print "Sorry. Database request (PROBLEMS) failed. Retrying..."; exit; } -$num_problems = mysql_num_rows($problems_query); -while ($row = mysql_fetch_assoc($problems_query)) { +$num_problems = mysqli_num_rows($problems_query); +while ($row = mysqli_fetch_assoc($problems_query)) { $problem_id = $row['PROBLEM_ID']; $problems[$problem_id]['id'] = $row['PROBLEM_ID']; $problems[$problem_id]['name'] = $row['PROBLEM_NAME']; $problems[$problem_id]['loc'] = $row['PROBLEM_LOC']; } -$responses_query = mysql_query("SELECT * FROM RESPONSES"); +$responses_query = mysqli_query($link, "SELECT * FROM RESPONSES"); if (!$responses_query) { print "Sorry. Database request (RESPONSES) failed. Retrying..."; exit; } -while ($row = mysql_fetch_assoc($responses_query)) { +while ($row = mysqli_fetch_assoc($responses_query)) { $response_id = $row['RESPONSE_ID']; $responses[$response_id]['response'] = $row['RESPONSE']; $responses[$response_id]['color'] = $row['RESPONSE_COLOR']; diff --git a/public_html/admin/lib/header.inc b/public_html/admin/lib/header.inc index 99e73a9..5a60331 100755 --- a/public_html/admin/lib/header.inc +++ b/public_html/admin/lib/header.inc @@ -9,22 +9,17 @@ # arch-tag: admin/lib/header.inc # -$link = mysql_connect($db_host, $db_user, $db_pass); +$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (!$link) { print "Sorry. Database connect failed. Retrying..."; exit; } -$connect_good = mysql_select_db($db_name); -if (!$connect_good) { - print "Sorry. Database selection failed. Retrying..."; - exit; -} include_once ("../lib/config.inc"); # include_once ("../lib/data.inc"); include_once ("lib/session.inc"); - $result = mysql_query("SELECT * FROM CONTEST_CONFIG"); - if (mysql_num_rows($result) > 0) { + $result = mysqli_query($link, "SELECT * FROM CONTEST_CONFIG"); + if (mysqli_num_rows($result) > 0) { include_once ("lib/contest_info.inc"); } ?> @@ -68,13 +63,13 @@ if (!$connect_good) { Please contact an "; echo "administrator."; } - $contest_stuff = mysql_fetch_assoc($sel_sql); + $contest_stuff = mysqli_fetch_assoc($sel_sql); if ($contest_stuff['heads'] > 0) { ?> Headers   $path"; $command .= "Team$team_id.tar.gz"; @@ -308,27 +303,22 @@ End of POST section *******************************************************/ include("lib/header.inc"); - $link = mysql_connect($db_host, $db_user, $db_pass); + $link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if(!$link){ print "Sorry. Database connect failed. Check your internet connection."; exit; } - $connect_good = mysql_select_db($db_name); - if (!$connect_good) { - print "Sorry. Couldn't select the database name $db_name. Exiting..."; - exit; - } - $sql = mysql_query("SELECT * FROM CONTEST_CONFIG"); + $sql = mysqli_query($link, "SELECT * FROM CONTEST_CONFIG"); if (!$sql) { print "Could not tell if a contest has been created. bailing out."; exit; #die or break } - if (mysql_num_rows($sql) > 0) { + if (mysqli_num_rows($sql) > 0) { //a contest is already set up! $contest=true; - $row = mysql_fetch_assoc($sql); + $row = mysqli_fetch_assoc($sql); echo "
\n"; # Print out any errors @@ -416,7 +406,7 @@ echo " "; echo " "; - if(!mysql_num_rows( mysql_query("SHOW TABLES LIKE 'JUDGED_SUBMISSIONS_COPY'"))){ + if(!mysqli_num_rows( mysqli_query($link, "SHOW TABLES LIKE 'JUDGED_SUBMISSIONS_COPY'"))){ echo "
\n"; echo " "; echo " recalculate responses"; diff --git a/public_html/admin/rejudge.php b/public_html/admin/rejudge.php index 1b93f02..ba8b954 100755 --- a/public_html/admin/rejudge.php +++ b/public_html/admin/rejudge.php @@ -22,26 +22,26 @@ #populate copy tables $sql = "INSERT INTO AUTO_RESPONSES_COPY "; $sql .= "SELECT * FROM AUTO_RESPONSES"; - $insert_result = mysql_query($sql); + $insert_result = mysqli_query($link, $sql); if(!$insert_result) { sql_error($sql); } $sql = "INSERT INTO JUDGED_SUBMISSIONS_COPY "; $sql .= "SELECT * FROM JUDGED_SUBMISSIONS"; - $insert_result = mysql_query($sql); + $insert_result = mysqli_query($link, $sql); if(!$insert_result) { sql_error($sql); } $sql = "DELETE FROM JUDGED_SUBMISSIONS"; - $delete_result = mysql_query($sql); + $delete_result = mysqli_query($link, $sql); if(!$delete_result){ sql_error($sql); } $sql = "DELETE FROM AUTO_RESPONSES"; - $delete_result = mysql_query($sql); + $delete_result = mysqli_query($link, $sql); if(!$delete_result){ sql_error($sql); } @@ -87,7 +87,7 @@ $sql .= "`ATTEMPT`, `SOURCE_FILE`) "; $sql .= "SELECT TEAM_ID, PROBLEM_ID, TS, ATTEMPT, SOURCE_FILE "; $sql .= "FROM JUDGED_SUBMISSIONS_COPY"; - $insert_result = mysql_query($sql); + $insert_result = mysqli_query($link, $sql); if(!$insert_result) { sql_error($sql); } @@ -110,7 +110,7 @@ system("mysql --password=pc2bgone -u root $db_name < undo.sql", $result); $sql = "DELETE FROM JUDGED_SUBMISSIONS"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } @@ -118,21 +118,21 @@ $sql = "INSERT INTO JUDGED_SUBMISSIONS SELECT * FROM JUDGED_SUBMISSIONS_COPY"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } $sql = "DROP TABLE `JUDGED_SUBMISSIONS_COPY`"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } $sql = "DELETE FROM AUTO_RESPONSES"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } @@ -140,14 +140,14 @@ $sql = "INSERT INTO AUTO_RESPONSES SELECT * FROM AUTO_RESPONSES_COPY"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } $sql = "DROP TABLE `AUTO_RESPONSES_COPY`"; echo "$sql;
"; -// $sql_result = mysql_query($sql); +// $sql_result = mysqli_query($link, $sql); // if(!$insert_result) { // sql_error($sql); // } diff --git a/public_html/admin/rejudge.sql b/public_html/admin/rejudge.sql old mode 100644 new mode 100755 diff --git a/public_html/admin/review.php b/public_html/admin/review.php index 637fe62..dd8f949 100755 --- a/public_html/admin/review.php +++ b/public_html/admin/review.php @@ -20,7 +20,7 @@ $sql .= "SET RESPONSE_ID = $_POST[result], JUDGED = 1 "; $sql .= "WHERE JUDGED_ID = $_POST[judged_id] "; - $result = mysql_query($sql); + $result = mysqli_query($link, $sql); if(!$result) { sql_error($sql); } @@ -44,12 +44,12 @@ $sql = "SELECT * "; $sql .= "FROM CONTEST_CONFIG "; -$sql_result = mysql_query($sql); +$sql_result = mysqli_query($link, $sql); if(!$sql_result){ sql_error($sql); } -$row = mysql_fetch_assoc($sql_result); +$row = mysqli_fetch_assoc($sql_result); $start_ts = $row['START_TS']; @@ -57,7 +57,7 @@ $sql = "SELECT * "; $sql .= "FROM PROBLEMS"; -$sql_result = mysql_query($sql); +$sql_result = mysqli_query($link, $sql); if (!$sql_result){ sql_error($sql); } @@ -66,7 +66,7 @@ if(!$_GET){ echo "All "; echo "| " . $row['PROBLEM_NAME'] . " "; - while ($row = mysql_fetch_assoc($sql_result)){ + while ($row = mysqli_fetch_assoc($sql_result)){ echo "| " . $row['PROBLEM_NAME'] . " "; } $problem_name = "ALL"; @@ -82,7 +82,7 @@ echo "| " . $row['PROBLEM_NAME'] . " "; } - while ($row = mysql_fetch_assoc($sql_result)){ + while ($row = mysqli_fetch_assoc($sql_result)){ if ($row['PROBLEM_NAME'] == $problem_name){ echo "| $problem_name "; $problem_id = $row['PROBLEM_ID']; @@ -95,7 +95,7 @@ echo "
"; $sql = "SELECT TEAM_NAME FROM TEAMS ORDER BY TEAM_NAME"; -$sql_result = mysql_query($sql); +$sql_result = mysqli_query($link, $sql); if(!$sql_result){ sql_error($sql); } @@ -109,7 +109,7 @@ else echo "\n"; -while($row = mysql_fetch_assoc($sql_result)){ +while($row = mysqli_fetch_assoc($sql_result)){ echo "