aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;