[prev in list] [next in list] [prev in thread] [next in thread]
List: netfilter-devel
Subject: [ulogd2 PATCH v4 20/32] output: SQLITE3: improve formatting of insert statement
From: Jeremy Sowden <jeremy () azazel ! net>
Date: 2021-11-30 10:55:48
Message-ID: 20211130105600.3103609-21-jeremy () azazel ! net
[Download RAW message or body]
`sqlite3_createstmt` contains a variable `stmt_pos` which points to the
end of the SQL already written, where the next chunk should be appended.
Currently, this is assigned after every write:
sprintf(stmt_pos, ...);
stmt_pos = priv->stmt + strlen(priv->stmt);
However, since `sprintf` returns the number of bytes written, increment
`stmt_pos` by the return-value of `sprintf` in order to avoid the
repeated `strlen` calls.
Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
output/sqlite3/ulogd_output_SQLITE3.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/output/sqlite3/ulogd_output_SQLITE3.c b/output/sqlite3/ulogd_output_SQLITE3.c
index 41aeeec27854..da1c09f08047 100644
--- a/output/sqlite3/ulogd_output_SQLITE3.c
+++ b/output/sqlite3/ulogd_output_SQLITE3.c
@@ -226,9 +226,9 @@ sqlite3_createstmt(struct ulogd_pluginstance *pi)
ulogd_log(ULOGD_ERROR, "SQLITE3: out of memory\n");
return -1;
}
+ stmt_pos = priv->stmt;
- sprintf(priv->stmt, "insert into %s (", table_ce(pi));
- stmt_pos = priv->stmt + strlen(priv->stmt);
+ stmt_pos += sprintf(stmt_pos, "insert into %s (", table_ce(pi));
tailq_for_each(f, priv->fields, link) {
strncpy(buf, f->name, ULOGD_MAX_KEYLEN);
@@ -236,19 +236,17 @@ sqlite3_createstmt(struct ulogd_pluginstance *pi)
while ((underscore = strchr(buf, '.')))
*underscore = '_';
- sprintf(stmt_pos, "%s,", buf);
- stmt_pos = priv->stmt + strlen(priv->stmt);
+ stmt_pos += sprintf(stmt_pos, "%s,", buf);
cols++;
}
*(stmt_pos - 1) = ')';
- sprintf(stmt_pos, " values (");
- stmt_pos = priv->stmt + strlen(priv->stmt);
+ stmt_pos += sprintf(stmt_pos, " values (");
for (i = 0; i < cols - 1; i++) {
- sprintf(stmt_pos,"?,");
+ strcpy(stmt_pos, "?,");
stmt_pos += 2;
}
--
2.33.0
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic