[svn] commit: r2494 - /trunk/src/lib/datasrc/sqlite3_datasrc.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Jul 12 22:18:32 UTC 2010
Author: jinmei
Date: Mon Jul 12 22:18:31 2010
New Revision: 2494
Log:
Trac #288, fixing "use after destroy" bugs
Modified:
trunk/src/lib/datasrc/sqlite3_datasrc.cc
Modified: trunk/src/lib/datasrc/sqlite3_datasrc.cc
==============================================================================
--- trunk/src/lib/datasrc/sqlite3_datasrc.cc (original)
+++ trunk/src/lib/datasrc/sqlite3_datasrc.cc Mon Jul 12 22:18:31 2010
@@ -263,15 +263,16 @@
isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (query)");
}
- const string s_name = name.toText();
- rc = sqlite3_bind_text(query, 2, s_name.c_str(), -1, SQLITE_STATIC);
- if (rc != SQLITE_OK) {
- isc_throw(Sqlite3Error, "Could not bind name " << s_name <<
+ const string name_text = name.toText();
+ rc = sqlite3_bind_text(query, 2, name_text.c_str(), -1, SQLITE_STATIC);
+ if (rc != SQLITE_OK) {
+ isc_throw(Sqlite3Error, "Could not bind name " << name_text <<
" to SQL statement (query)");
}
+ const string rdtype_text = rdtype.toText();
if (query == dbparameters->q_record_) {
- rc = sqlite3_bind_text(query, 3, rdtype.toText().c_str(), -1,
+ rc = sqlite3_bind_text(query, 3, rdtype_text.c_str(), -1,
SQLITE_STATIC);
if (rc != SQLITE_OK) {
isc_throw(Sqlite3Error, "Could not bind RR type " <<
@@ -300,8 +301,9 @@
" to SQL statement (qcount)");
}
- rc = sqlite3_bind_text(dbparameters->q_count_, 2,
- name.reverse().toText().c_str(), -1, SQLITE_STATIC);
+ const string revname_text = name.reverse().toText();
+ rc = sqlite3_bind_text(dbparameters->q_count_, 2, revname_text.c_str(),
+ -1, SQLITE_STATIC);
if (rc != SQLITE_OK) {
isc_throw(Sqlite3Error, "Could not bind name " << name.reverse() <<
" to SQL statement (qcount)");
@@ -376,8 +378,9 @@
isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (qprevious)");
}
+ const string revname_text = qname.reverse().toText();
rc = sqlite3_bind_text(dbparameters->q_previous_, 2,
- qname.reverse().toText().c_str(), -1, SQLITE_STATIC);
+ revname_text.c_str(), -1, SQLITE_STATIC);
if (rc != SQLITE_OK) {
isc_throw(Sqlite3Error, "Could not bind name " << qname <<
" to SQL statement (qprevious)");
More information about the bind10-changes
mailing list