From e049bb8bd6bb3b8aacf371abde937d2270cfa451 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Mon, 14 Oct 2013 21:04:22 +1000 Subject: Ensure packages have a valid version Currently you can manually create and then install a package with a version not containing a pkgrel. The created local database entry is invalid as the directory name can not be split by _alpm_splitname due to the assumtion of hyphens separating name-pkgver-pkgrel. Ensure the package has a valid version when it is loaded. Fixes FS#35514. Signed-off-by: Allan McRae --- lib/libalpm/be_package.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/libalpm') diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index 62626212..526d9276 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -413,6 +413,10 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle, _alpm_log(handle, ALPM_LOG_ERROR, _("missing package version in %s\n"), pkgfile); goto pkg_invalid; } + if(strchr(newpkg->version, '-') == NULL) { + _alpm_log(handle, ALPM_LOG_ERROR, _("invalid package version in %s\n"), pkgfile); + goto pkg_invalid; + } config = 1; continue; } else if(strcmp(entry_name, ".INSTALL") == 0) { -- cgit v1.2.3-70-g09d2