diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php index eb0510a5..7165013d 100644 --- a/adminer/sql.inc.php +++ b/adminer/sql.inc.php @@ -73,8 +73,9 @@ if (!$error && $_POST) { if ($found && $found != $delimiter) { // find matching quote or comment end while (preg_match('(' . ($found == '/*' ? '\\*/' : ($found == '[' ? ']' : (ereg('^-- |^#', $found) ? "\n" : preg_quote($found) . "|\\\\."))) . '|$)s', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { //! respect sql_mode NO_BACKSLASH_ESCAPES $s = $match[0][0]; - $offset = $match[0][1] + ($s ? strlen($s) : -strlen($found)); // strlen($found) is higher than length of longest pattern minus one + $offset = $match[0][1] + strlen($s); if (!$s && $fp && !feof($fp)) { + $offset -= strlen($found); // strlen($found) >= strlen("\\.") - 1 $query .= fread($fp, 1e5); } elseif ($s[0] != "\\") { break;