Patchwork [1/3] sqlite: resolve compiler warnings

login
register
mail settings
Submitter Jan Engelhardt
Date June 5, 2012, 8:41 a.m.
Message ID <1338885663-30131-2-git-send-email-jengelh@inai.de>
Download mbox | patch
Permalink /patch/163048/
State Accepted
Headers show

Comments

Jan Engelhardt - June 5, 2012, 8:41 a.m.
In file included from /usr/include/string.h:642:0,
                 from ulogd_output_SQLITE3.c:34:
In function 'strncat',
    inlined from 'db_count_cols' at ulogd_output_SQLITE3.c:306:9,
    inlined from 'sqlite3_init_db' at ulogd_output_SQLITE3.c:328:11:
/usr/include/bits/string3.h:152:3: warning: call to __builtin___strncat_chk might overflow destination buffer [enabled by default]

I: Statement might be overflowing a buffer in strncat. Common mistake:
   BAD: strncat(buffer,charptr,sizeof(buffer)) is wrong, it takes the left over size as 3rd argument
   GOOD: strncat(buffer,charptr,sizeof(buffer)-strlen(buffer)-1)
E: ulogd2 bufferoverflowstrncat ulogd_output_SQLITE3.c:328:11

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
---
 output/sqlite3/ulogd_output_SQLITE3.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Patch

diff --git a/output/sqlite3/ulogd_output_SQLITE3.c b/output/sqlite3/ulogd_output_SQLITE3.c
index 3cd2106..dffdda3 100644
--- a/output/sqlite3/ulogd_output_SQLITE3.c
+++ b/output/sqlite3/ulogd_output_SQLITE3.c
@@ -303,7 +303,7 @@  db_count_cols(struct ulogd_pluginstance *pi, sqlite3_stmt **stmt)
 	struct sqlite3_priv *priv = (void *)pi->private;
 	char query[SELECT_ALL_LEN + CONFIG_VAL_STRING_LEN] = SELECT_ALL_STR;
 
-	strncat(query, table_ce(pi), LINE_LEN);
+	strncat(query, table_ce(pi), sizeof(query) - strlen(query) - 1);
 
 	if (sqlite3_prepare(priv->dbh, query, -1, stmt, 0) != SQLITE_OK)
 		return -1;