Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Do not assert if pattern is empty in query.
Vsevolod Stakhov committed 11 years ago
commit 576ad0d0b056cb600f3556574f13f578b8482944
parent e88bb4821517731bdd253740bf9bba6d2aa3e523
2 files changed +11 -4
modified libpkg/pkgdb_query.c
@@ -143,7 +143,9 @@ pkgdb_query(struct pkgdb *db, const char *pattern, match_t match)
	const char	*comp = NULL;

	assert(db != NULL);
-
	assert(match == MATCH_ALL || (pattern != NULL && pattern[0] != '\0'));
+

+
	if (match != MATCH_ALL && (pattern == NULL || pattern[0] == '\0'))
+
		return (NULL);

	comp = pkgdb_get_pattern_query(pattern, match);

@@ -174,8 +176,11 @@ pkgdb_query_which(struct pkgdb *db, const char *path, bool glob)
	sqlite3_stmt	*stmt;
	char	sql[BUFSIZ];

-

	assert(db != NULL);
+

+
	if (path == NULL)
+
		return (NULL);
+

	sqlite3_snprintf(sizeof(sql), sql,
			"SELECT p.id, p.origin, p.name, p.name || '~' || p.origin as uniqueid, "
			"p.version, p.comment, p.desc, "
modified libpkg/repo/binary/query.c
@@ -115,7 +115,8 @@ pkg_repo_binary_query(struct pkg_repo *repo, const char *pattern, match_t match)
		"cksum, manifestdigest, path AS repopath, '%s' AS dbname "
		"FROM packages";

-
	assert(match == MATCH_ALL || (pattern != NULL && pattern[0] != '\0'));
+
	if (match != MATCH_ALL && (pattern == NULL || pattern[0] == '\0'))
+
		return (NULL);

	sql = sbuf_new_auto();
	comp = pkgdb_get_pattern_query(pattern, match);
@@ -327,7 +328,8 @@ pkg_repo_binary_search(struct pkg_repo *repo, const char *pattern, match_t match
		"cksum, path AS repopath, '%1$s' AS dbname "
		"FROM packages ";

-
	assert(pattern != NULL && pattern[0] != '\0');
+
	if (pattern == NULL || pattern[0] == '\0')
+
		return (NULL);

	sql = sbuf_new_auto();
	sbuf_printf(sql, multireposql, repo->name);