[secure-mode] Check to see if URIs are enabled.

Check to see if URIs are enabled or not before continuing on with the
file uri checks.
pull/318/head
Suresh Sundriyal 8 years ago
parent 1e6878164f
commit a13047a9ed

@ -95,6 +95,12 @@ AC_DEFUN([LNAV_WITH_SQLITE3],
)
)
AC_CHECK_FUNC(sqlite3_compileoption_used,
AC_DEFINE([HAVE_SQLITE3_COMPILEOPTION_USED], [],
[Have sqlite3_compileoption_used function]
)
)
AC_SUBST(HAVE_SQLITE3_VALUE_SUBTYPE)
AS_VAR_SET(CFLAGS, $saved_CFLAGS)

@ -728,13 +728,18 @@ int sqlite_authorizer(void *pUserData, int action_code, const char *detail1,
if (!fileName.empty()) {
/* In-memory databases are fine.
*/
if (fileName.compare(":memory:") == 0 || (
sqlite3_libversion_number() >= 3008000 &&
(fileName.find("file::memory:") == 0 ||
if (fileName.compare(":memory:") == 0) {
return SQLITE_OK;
}
#ifdef HAVE_SQLITE3_COMPILEOPTION_USED
if (sqlite3_compileoption_used("SQLITE_USE_URI") && (
fileName.find("file::memory:") == 0 || (
(sqlite3_libversion_number() >= 3008000) && (
fileName.find("?mode=memory") != string::npos ||
fileName.find("&mode=memory") != string::npos))) {
fileName.find("&mode=memory") != string::npos)))) {
return SQLITE_OK;
}
#endif
return SQLITE_DENY;
}
}

Loading…
Cancel
Save