From c34e564327a5a510f605f1913f8f957a61fe70fc Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 7 Aug 2012 10:37:52 +0200 Subject: [PATCH] xbps-repo: more exact pkg extension check. --- bin/xbps-repo/clean.c | 6 ++++-- bin/xbps-repo/remove-obsoletes.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/xbps-repo/clean.c b/bin/xbps-repo/clean.c index 5d267b32..89c96990 100644 --- a/bin/xbps-repo/clean.c +++ b/bin/xbps-repo/clean.c @@ -40,7 +40,7 @@ cachedir_clean(struct xbps_handle *xhp) DIR *dirp; struct dirent *dp; const char *pkgver, *rsha256; - char *binpkg; + char *binpkg, *ext; int rv = 0; if ((dirp = opendir(xhp->cachedir)) == NULL) @@ -52,7 +52,9 @@ cachedir_clean(struct xbps_handle *xhp) continue; /* only process xbps binary packages, ignore something else */ - if (!strstr(dp->d_name, ".xbps")) { + if ((ext = strrchr(dp->d_name, '.')) == NULL) + continue; + if (strcmp(ext, ".xbps")) { printf("ignoring unknown file: %s\n", dp->d_name); continue; } diff --git a/bin/xbps-repo/remove-obsoletes.c b/bin/xbps-repo/remove-obsoletes.c index 6ab7e2cd..1c52f06c 100644 --- a/bin/xbps-repo/remove-obsoletes.c +++ b/bin/xbps-repo/remove-obsoletes.c @@ -44,7 +44,7 @@ repo_remove_obsoletes(struct xbps_handle *xhp, const char *repodir) DIR *dirp; struct dirent *dp; const char *pkgver, *arch; - char *plist; + char *plist, *ext; int rv = 0; if ((plist = xbps_pkg_index_plist(xhp, repodir)) == NULL) @@ -77,7 +77,9 @@ repo_remove_obsoletes(struct xbps_handle *xhp, const char *repodir) while ((dp = readdir(dirp))) { if (strcmp(dp->d_name, "..") == 0) continue; - if (!strstr(dp->d_name, ".xbps")) + if ((ext = strrchr(dp->d_name, '.')) == NULL) + continue; + if (strcmp(ext, ".xbps")) continue; pkgd = xbps_dictionary_metadata_plist_by_url(dp->d_name,