Skip to content

Commit

Permalink
Parse 'a\';' on webserver file separation
Browse files Browse the repository at this point in the history
  • Loading branch information
vrana committed Aug 4, 2011
1 parent 323f4ab commit f0d0bdb
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
6 changes: 3 additions & 3 deletions adminer/sql.inc.php
Expand Up @@ -63,19 +63,19 @@
} else {
preg_match('(' . preg_quote($delimiter) . "|$parse)", $query, $match, PREG_OFFSET_CAPTURE, $offset); // should always match
$found = $match[0][0];
$offset = $match[0][1] + strlen($found);
if (!$found && $fp && !feof($fp)) {
$query .= fread($fp, 1e5);
} else {
$offset = $match[0][1] + strlen($found);
if (!$found && rtrim($query) == "") {
break;
}
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] + strlen($s);
$offset = $match[0][1] + ($s ? strlen($s) : -strlen($found)); // strlen($found) is higher than length of longest pattern minus one
if (!$s && $fp && !feof($fp)) {
$query .= fread($fp, 1e6);
$query .= fread($fp, 1e5);
} elseif ($s[0] != "\\") {
break;
}
Expand Down
1 change: 1 addition & 0 deletions changes.txt
@@ -1,5 +1,6 @@
Adminer 3.3.2-dev:
Display error with non-existent row in edit
Fix minor parser bug in SQL command with webserver file
Don't scroll with AJAX select order and alter move column
Fast number of rows with big tables (PostgreSQL)
Sort databases and schemas (PostgreSQL)
Expand Down

0 comments on commit f0d0bdb

Please sign in to comment.