From 6652eb7ffb6dafb877344845ca24e938a50e4bfb Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 13 Sep 2010 11:43:09 +0200 Subject: Handle buffer growth in cached result --- odb/mysql/statement.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'odb/mysql/statement.cxx') diff --git a/odb/mysql/statement.cxx b/odb/mysql/statement.cxx index df1ce03..3e0deb8 100644 --- a/odb/mysql/statement.cxx +++ b/odb/mysql/statement.cxx @@ -126,6 +126,17 @@ namespace odb query_statement::result query_statement:: fetch () { + // If the result was cached the image can grow between calls + // to fetch() as a result of other statements execution. + // + if (cached_ && image_version_ != image_.version) + { + if (mysql_stmt_bind_result (stmt_, image_.bind)) + throw database_exception (stmt_); + + image_version_ = image_.version; + } + int r (mysql_stmt_fetch (stmt_)); switch (r) -- cgit v1.1