Permalink
Browse files

Respect original memory_limit

  • Loading branch information...
vrana committed Aug 24, 2011
1 parent 2348c4c commit 9d944c8fc152873f6093345a432d4cc7443a0b44
Showing with 17 additions and 3 deletions.
  1. +14 −0 adminer/include/editing.inc.php
  2. +1 −1 adminer/include/functions.inc.php
  3. +2 −2 adminer/sql.inc.php
@@ -366,3 +366,17 @@ function tar_file($filename, $contents) {
$return .= sprintf("%06o", $checksum) . "\0 ";
return $return . str_repeat("\0", 512 - strlen($return)) . $contents . str_repeat("\0", 511 - (strlen($contents) + 511) % 512);
}
+
+/** Get INI bytes value
+* @param string
+* @return int
+*/
+function ini_bytes($ini) {
+ $val = ini_get($ini);
+ switch (strtolower(substr($val, -1))) {
+ case 'g': $val *= 1024; // no break
+ case 'm': $val *= 1024; // no break
+ case 'k': $val *= 1024;
+ }
+ return $val;
+}
@@ -571,7 +571,7 @@ function get_file($key, $decompress = false) {
* @return string
*/
function upload_error($error) {
- $max_size = ($error == UPLOAD_ERR_INI_SIZE ? ini_get("upload_max_filesize") : null); // post_max_size is checked in index.php
+ $max_size = ($error == UPLOAD_ERR_INI_SIZE ? ini_get("upload_max_filesize") : 0); // post_max_size is checked in index.php
return ($error ? lang('Unable to upload a file.') . ($max_size ? " " . lang('Maximum allowed file size is %sB.', $max_size) : "") : lang('File does not exist.'));
}
View
@@ -25,12 +25,12 @@
: "compress.bzip2://adminer.sql.bz2"
)), "rb");
$query = ($fp ? fread($fp, 1e6) : false);
- } elseif ($_FILES && $_FILES["sql_file"]["error"] != 4) { // 4 - UPLOAD_ERR_NO_FILE
+ } elseif ($_FILES && $_FILES["sql_file"]["error"] != UPLOAD_ERR_NO_FILE) {
$query = get_file("sql_file", true);
}
if (is_string($query)) { // get_file() returns error as number, fread() as false
if (function_exists('memory_get_usage')) {
- @ini_set("memory_limit", max(ini_get("memory_limit"), 2 * strlen($query) + memory_get_usage() + 8e6)); // @ - may be disabled, 2 - substr and trim, 8e6 - other variables
+ @ini_set("memory_limit", max(ini_bytes("memory_limit"), 2 * strlen($query) + memory_get_usage() + 8e6)); // @ - may be disabled, 2 - substr and trim, 8e6 - other variables
}
if ($query != "" && strlen($query) < 1e6) { // don't add big queries
$q = $query . (ereg(';$', $query) ? "" : ";"); //! doesn't work with DELIMITER |

0 comments on commit 9d944c8

Please sign in to comment.