]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#851,!24-p] Avoid referencing out of bounds vector element in MySQL conn.
authorMarcin Siodelski <marcin@isc.org>
Thu, 22 Aug 2019 08:29:27 +0000 (10:29 +0200)
committerMarcin Siodelski <marcin@isc.org>
Thu, 22 Aug 2019 08:29:27 +0000 (10:29 +0200)
src/lib/mysql/mysql_connection.h

index 750bd595490b2e4c4b4f1c02c4b05725605da2ad..929fbc16e56db15c69aa97d7c75d3ed83fda3ddf 100644 (file)
@@ -359,7 +359,8 @@ public:
         int status = 0;
         if (!in_bind_vec.empty()) {
             // Bind parameters to the prepared statement.
-            status = mysql_stmt_bind_param(statements_[index], &in_bind_vec[0]);
+            status = mysql_stmt_bind_param(statements_[index],
+                                           in_bind_vec.empty() ? 0 : &in_bind_vec[0]);
             checkError(status, index, "unable to bind parameters for select");
         }
 
@@ -432,7 +433,8 @@ public:
         }
 
         // Bind the parameters to the statement
-        int status = mysql_stmt_bind_param(statements_[index], &in_bind_vec[0]);
+        int status = mysql_stmt_bind_param(statements_[index],
+                                           in_bind_vec.empty() ? 0 : &in_bind_vec[0]);
         checkError(status, index, "unable to bind parameters");
 
         // Execute the statement
@@ -474,7 +476,8 @@ public:
         }
 
         // Bind the parameters to the statement
-        int status = mysql_stmt_bind_param(statements_[index], &in_bind_vec[0]);
+        int status = mysql_stmt_bind_param(statements_[index],
+                                           in_bind_vec.empty() ? 0 : &in_bind_vec[0]);
         checkError(status, index, "unable to bind parameters");
 
         // Execute the statement