From 0d5385ad2b7873746b91526e4b19c783584359c2 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Mon, 27 Jul 2015 09:44:25 +0200 Subject: [PATCH] xbps-checkvers: fixed an endless loop with "reverts" containing extra alphanumeric chars. --- NEWS | 4 ++++ bin/xbps-checkvers/main.c | 2 +- tests/xbps/xbps-checkvers/checkvers.sh | 31 ++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index f32d365a..678232ea 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,9 @@ xbps-0.48 (???): + * xbps-checkvers(1): fixed an endless loop while processing templates containing + extra alphanumeric characters in the `reverts' object. Added a new testcase + to verify its correctness. + xbps-0.47 (2015-07-18): * When executing pkg configuration, override the umask with sane defaults. diff --git a/bin/xbps-checkvers/main.c b/bin/xbps-checkvers/main.c index d74a157e..896053cc 100644 --- a/bin/xbps-checkvers/main.c +++ b/bin/xbps-checkvers/main.c @@ -533,7 +533,7 @@ check_reverts(const char *repover, const map_item_t reverts) * Check if it's the first character or the previous character is a * whitespace. */ - if (p > sreverts && !isspace(p[-1])) + if (p > sreverts && !isalpha(p[-1]) && !isspace(p[-1])) continue; p += strlen(repover); /* diff --git a/tests/xbps/xbps-checkvers/checkvers.sh b/tests/xbps/xbps-checkvers/checkvers.sh index 4b834e38..b6d3be2b 100755 --- a/tests/xbps/xbps-checkvers/checkvers.sh +++ b/tests/xbps/xbps-checkvers/checkvers.sh @@ -301,6 +301,36 @@ EOF atf_check_equal "$out" "pkgname: A repover: 1.1_1 srcpkgver: 1.0_1" } +atf_test_case reverts_alpha + +reverts_alpha_head() { + atf_set "descr" "xbps-checkvers(8): test with reverts containing an alphanumeric character" +} + +reverts_alpha_body() { + mkdir -p some_repo pkg_A void-packages/srcpkgs/fs-utils + touch pkg_A/file00 + cat > void-packages/srcpkgs/fs-utils/template <