aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcassio <cassiopc@gmail.com>2013-09-14 09:43:20 +0000
committercassio <cassiopc@gmail.com>2013-09-14 09:43:20 +0000
commit00f79bafce35fb3a2ec6a5e1ae477fe008a55a4c (patch)
treee6767cf424a376e88e5f96f4fab2b6c378669b8b /src
parentc9568a4c9c2a3c96769582c5d7f7f23569a8921e (diff)
downloadboca-00f79bafce35fb3a2ec6a5e1ae477fe008a55a4c.tar.gz
boca-00f79bafce35fb3a2ec6a5e1ae477fe008a55a4c.zip
adapt autojudge to work with older problem template (aka give basename instead of full path)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/private/autojudging.php12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/private/autojudging.php b/src/private/autojudging.php
index df4fdc0..984ef9a 100755
--- a/src/private/autojudging.php
+++ b/src/private/autojudging.php
@@ -397,7 +397,7 @@ if($retval != 0) {
}
$ex = escapeshellcmd($script) ." ".
- escapeshellarg($dir . $ds . $basename) . " ".
+ escapeshellarg($basename) . " ".
escapeshellarg($dir . $ds . "input" . $ds . $file)." ".
escapeshellarg(trim($limits[$basename][$run["extension"]][0]))." ".
escapeshellarg(trim($limits[$basename][$run["extension"]][1]))." ".
@@ -411,6 +411,16 @@ if($retval != 0) {
}
mkdir($dir . $ds . 'tmp', 0777);
@chown($dir . $ds . 'tmp',"nobody");
+ if(is_readable($dir . $ds . $basename)) {
+ @copy($dir . $ds . $basename, $dir . $ds . 'tmp' . $ds . $basename);
+ @chown($dir . $ds . 'tmp' . $ds . $basename,"nobody");
+ @chmod($dir . $ds . 'tmp' . $ds . $basename,0755);
+ }
+ if(is_readable($dir . $ds . 'run.jar')) {
+ @copy($dir . $ds . 'run.jar', $dir . $ds . 'tmp' . $ds . 'run.jar');
+ @chown($dir . $ds . 'tmp' . $ds . 'run.jar',"nobody");
+ @chmod($dir . $ds . 'tmp' . $ds . 'run.jar',0755);
+ }
chdir($dir . $ds . 'tmp');
echo "Executing " . $ex . " at " . getcwd() . " for input " . $file . "\n";
if(system($ex, $localretval)===false) $localretval=-1;