]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2869] Checkpoint: fixed MySQL
authorFrancis Dupont <fdupont@isc.org>
Fri, 26 May 2023 00:56:00 +0000 (02:56 +0200)
committerFrancis Dupont <fdupont@isc.org>
Thu, 6 Jul 2023 20:11:33 +0000 (22:11 +0200)
src/lib/dhcpsrv/mysql_lease_mgr.cc

index 3a50a293f0a1473348b33d231cf4c007e4d0d921..0d5aba7e854314ff288f344fb5c9e7d94e685dd3 100644 (file)
@@ -4847,9 +4847,9 @@ MySqlLeaseMgr::byRelayId6size() const {
     MYSQL_BIND bind[1];
     memset(bind, 0, sizeof(bind));
 
-    int64_t result = 0;
+    int64_t count = 0;
     bind[0].buffer_type = MYSQL_TYPE_LONGLONG;
-    bind[0].buffer = reinterpret_cast<char*>(&result);
+    bind[0].buffer = reinterpret_cast<char*>(&count);
 
     int status = mysql_stmt_bind_result(ctx->conn_.statements_[stindex], &bind[0]);
     checkError(ctx, status, stindex, "unable to bind SELECT clause parameters");
@@ -4860,12 +4860,17 @@ MySqlLeaseMgr::byRelayId6size() const {
         checkError(ctx, status, stindex, "unable to execute");
     }
 
+    status = mysql_stmt_store_result(ctx->conn_.statements_[stindex]);
+    checkError(ctx, status, stindex, "unable to store result");
+
     // Fetch the result.
+    MySqlFreeResult fetch_release(ctx->conn_.statements_[stindex]);
+
     status = mysql_stmt_fetch(ctx->conn_.statements_[stindex]);
     if (status != 0) {
         checkError(ctx, status, stindex, "unable to fetch results");
     }
-    return(result);
+    return (static_cast<size_t>(count));
 }
 
 size_t
@@ -4880,9 +4885,9 @@ MySqlLeaseMgr::byRemoteId6size() const {
     MYSQL_BIND bind[1];
     memset(bind, 0, sizeof(bind));
 
-    int64_t result = 0;
+    int64_t count = 0;
     bind[0].buffer_type = MYSQL_TYPE_LONGLONG;
-    bind[0].buffer = reinterpret_cast<char*>(&result);
+    bind[0].buffer = reinterpret_cast<char*>(&count);
 
     int status = mysql_stmt_bind_result(ctx->conn_.statements_[stindex], &bind[0]);
     checkError(ctx, status, stindex, "unable to bind SELECT clause parameters");
@@ -4893,12 +4898,17 @@ MySqlLeaseMgr::byRemoteId6size() const {
         checkError(ctx, status, stindex, "unable to execute");
     }
 
+    status = mysql_stmt_store_result(ctx->conn_.statements_[stindex]);
+    checkError(ctx, status, stindex, "unable to store result");
+
     // Fetch the result.
+    MySqlFreeResult fetch_release(ctx->conn_.statements_[stindex]);
+
     status = mysql_stmt_fetch(ctx->conn_.statements_[stindex]);
     if (status != 0) {
         checkError(ctx, status, stindex, "unable to fetch results");
     }
-    return(result);
+    return (static_cast<size_t>(count));
 }
 
 }  // namespace dhcp