X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Ffindpkg.c;h=865f407b4f8dc638060c636e3df70da3c7c8003d;hb=ddeb616cccad9c19467be36be9415cbb82a836ce;hp=732f1bb193d3762494886030afa425242c7a494d;hpb=133935bbb2205cd16e114534acb5a2a5885c7f96;p=zpackage diff --git a/lib/findpkg.c b/lib/findpkg.c index 732f1bb..865f407 100644 --- a/lib/findpkg.c +++ b/lib/findpkg.c @@ -30,6 +30,9 @@ int zpm_parse_package(char *pstr, char *name, char *ver, int *rel) { /* everything up to the first '-' is in the name */ while (*pstr) { + if (*pstr == '\'' || !isgraph(*pstr)) { + return 0; + } if (*pstr == '-' && isdigit(*(pstr+1))) { break; } @@ -44,6 +47,9 @@ int zpm_parse_package(char *pstr, char *name, char *ver, int *rel) { pstr++; } while (*pstr && *pstr != '-') { + if (*pstr == '\'' || !isgraph(*pstr)) { + return 0; + } if (ver) { *ver++ = *pstr; } @@ -83,7 +89,7 @@ struct zpm_package *zpm_package_alloc(struct zpm *zpm) { void zpm_sqlite_error(struct zpm *zpm) { zpm->error = 1; if (zpm->errmsg) free(zpm->errmsg); - zpm->errmsg = strdup(sqlite3_errmsg(zpm->db)); + zpm->errmsg = strdup((const char *)sqlite3_errmsg(zpm->db)); } char *zpm_findpkg(struct zpm *zpm, char *pkgstr) { @@ -151,7 +157,7 @@ char *zpm_findpkg(struct zpm *zpm, char *pkgstr) { switch (sqlite3_step(stmt)) { case SQLITE_ROW: - zpm->pkgid = strdup(sqlite3_column_text(stmt, 0)); + zpm->pkgid = strdup((const char *)sqlite3_column_text(stmt, 0)); break; case SQLITE_DONE: /* not found */