X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Ffindpkg.c;h=865f407b4f8dc638060c636e3df70da3c7c8003d;hb=ddeb616cccad9c19467be36be9415cbb82a836ce;hp=a8d8ff49f791b7010be411f537a2e171b26f8380;hpb=fc72c51a467305eb7b8f1154465ae63c22477f5c;p=zpackage diff --git a/lib/findpkg.c b/lib/findpkg.c index a8d8ff4..865f407 100644 --- a/lib/findpkg.c +++ b/lib/findpkg.c @@ -1,3 +1,5 @@ +#define _POSIX_C_SOURCE 200809L + #include #include #include @@ -28,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; } @@ -42,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; } @@ -81,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 = zpm_strdup((char *)sqlite3_errmsg(zpm->db)); + zpm->errmsg = strdup((const char *)sqlite3_errmsg(zpm->db)); } char *zpm_findpkg(struct zpm *zpm, char *pkgstr) { @@ -149,7 +157,7 @@ char *zpm_findpkg(struct zpm *zpm, char *pkgstr) { switch (sqlite3_step(stmt)) { case SQLITE_ROW: - zpm->pkgid = zpm_strdup((char *)sqlite3_column_text(stmt, 0)); + zpm->pkgid = strdup((const char *)sqlite3_column_text(stmt, 0)); break; case SQLITE_DONE: /* not found */