Escape the host/username/password arguments to mysqldump. Fixes #1984.

This commit is contained in:
Bharat Mediratta
2013-01-31 16:29:09 -05:00
parent 107735ffc4
commit ea54a88ec8
+6 -3
View File
@@ -88,14 +88,17 @@ class Packager_Controller extends Controller {
$dbconfig = Kohana::config('database.default');
$conn = $dbconfig["connection"];
$pass = $conn["pass"] ? "-p{$conn['pass']}" : "";
$sql_file = DOCROOT . "installer/install.sql";
if (!is_writable($sql_file)) {
print "$sql_file is not writeable";
return;
}
$command = "mysqldump --compact --skip-extended-insert --add-drop-table -h{$conn['host']} " .
"-u{$conn['user']} $pass {$conn['database']} > $sql_file";
$command = sprintf(
"mysqldump --compact --skip-extended-insert --add-drop-table %s %s %s %s > $sql_file",
escapeshellarg("-h{$conn['host']}"),
escapeshellarg("-u{$conn['user']}"),
$conn['pass'] ? escapeshellarg("-p{$conn['pass']}") : "",
escapeshellarg($conn['database']));
exec($command, $output, $status);
if ($status) {
print "<pre>";