File 62f7d288_port.patch of Package freeradius-server.14503
commit 62f7d2885ad02911f0ae71e7864d4805a489137b
Author: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
Date: Wed Jul 5 13:07:31 2017 -0400
FR-AD-003 - Pass correct statement length into sqlite3_prepare[_v2]
Index: freeradius-server-3.0.3/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
===================================================================
--- freeradius-server-3.0.3.orig/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
+++ freeradius-server-3.0.3/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
@@ -103,7 +103,7 @@ static int sql_loadfile(TALLOC_CTX *ctx,
{
ssize_t len;
char *buffer;
- char *p, *q, *s;
+ char *p, *q;
int cl;
FILE *f;
struct stat finfo;
@@ -191,19 +191,17 @@ static int sql_loadfile(TALLOC_CTX *ctx,
/*
* Statement delimiter is ;\n
*/
- s = p = buffer;
+ p = buffer;
while ((q = strchr(p, ';'))) {
- if (q[1] != '\n') {
+ if ((q[1] != '\n') && (q[1] != '\0')) {
p = q + 1;
continue;
}
- *q = '\0';
-
#ifdef HAVE_SQLITE3_PREPARE_V2
- (void) sqlite3_prepare_v2(db, s, len, &statement, &z_tail);
+ (void) sqlite3_prepare_v2(db, p, q - p, &statement, &z_tail);
#else
- (void) sqlite3_prepare(db, s, len, &>statement, &z_tail);
+ (void) sqlite3_prepare(db, p, q - p, &>statement, &z_tail);
#endif
if (sql_check_error(db)) {
talloc_free(buffer);
@@ -219,7 +217,7 @@ static int sql_loadfile(TALLOC_CTX *ctx,
return -1;
}
- p = s = q + 1;
+ p = q + 1;
}
talloc_free(buffer);