diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-02 10:18:25 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-02 10:18:25 +0200 |
commit | 1d5d4d47a0d38dc09302f0430008ddc8ad221add (patch) | |
tree | 09a42770e5ee68aa412a0211fa39ff5cf3be6388 /odb/mysql/statement.cxx | |
parent | 9eb1da8464db999d520b8739282cbe2b28da0432 (diff) |
Prevent potential image overwrite in MySQL query result
Diffstat (limited to 'odb/mysql/statement.cxx')
-rw-r--r-- | odb/mysql/statement.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/odb/mysql/statement.cxx b/odb/mysql/statement.cxx index 4cd6f35..d4e4943 100644 --- a/odb/mysql/statement.cxx +++ b/odb/mysql/statement.cxx @@ -146,7 +146,7 @@ namespace odb } select_statement::result select_statement:: - fetch () + fetch (bool next) { if (result_version_ != result_.version) { @@ -163,6 +163,12 @@ namespace odb result_version_ = result_.version; } + if (!next && rows_ != 0) + { + assert (cached_); + mysql_stmt_data_seek (stmt_, static_cast<my_ulonglong> (rows_ - 1)); + } + int r (mysql_stmt_fetch (stmt_)); switch (r) |