Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Do not assert if pattern is empty in query.
Vsevolod Stakhov committed 11 years ago
commit 576ad0d0b056cb600f3556574f13f578b8482944
parent e88bb48
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);