[dpkg] 57/187: dpkg-maintscript-helper: Make conffile commands more robust

Reiner Herrmann reiner at reiner-h.de
Sun Nov 6 12:46:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

deki-guest pushed a commit to branch master
in repository dpkg.

commit cb0a2b1ef2781ca3d79a9aeca20c3eb30db08d1c
Author: David Kalnischkies <david at kalnischkies.de>
Date:   Sun Aug 7 18:42:36 2016 +0200

    dpkg-maintscript-helper: Make conffile commands more robust
    
    Check that conffile pathname arguments are absolute paths. Verify
    version number to be valid.
    
    [guillem at debian.org:
     - reword error messages.
     - add a comment explaining the --compare-versions usage.
     - use 0 instead of 1-1 as dummy version number. ]
    
    Signed-off-by: Guillem Jover <guillem at debian.org>
---
 debian/changelog                   |  3 +++
 scripts/dpkg-maintscript-helper.sh | 12 ++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index ac7d4fd..a87402f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,9 @@
 dpkg (1.18.11) UNRELEASED; urgency=medium
 
   [ Guillem Jover ]
+  * Make dpkg-maintscript-helper conffile commands more robust. Check that
+    conffile pathname arguments are absolute paths and verify version number
+    to be valid. Thanks to David Kalnischkies <david at kalnischkies.de>.
   * Packaging:
     - Add liblocale-gettext-perl to libdpkg-perl Recommends.
     - Wrap and document dependency relationships.
diff --git a/scripts/dpkg-maintscript-helper.sh b/scripts/dpkg-maintscript-helper.sh
index f0e69db..f20d826 100755
--- a/scripts/dpkg-maintscript-helper.sh
+++ b/scripts/dpkg-maintscript-helper.sh
@@ -46,6 +46,11 @@ rm_conffile() {
 	[ -n "$1" ] || error "maintainer script parameters are missing"
 	[ -n "$DPKG_MAINTSCRIPT_NAME" ] || \
 		error "environment variable DPKG_MAINTSCRIPT_NAME is required"
+	[ "${CONFFILE}" != "${CONFFILE#/}" ] || \
+		error "conffile '$CONFFILE' is not an absolute path"
+	# Use --compare-versions to validate the version number.
+	[ -z "$(dpkg --compare-versions -- "$LASTVERSION" eq '0' 2>&1)" ] || \
+		error "version '$LASTVERSION' is not valid"
 
 	debug "Executing $0 rm_conffile in $DPKG_MAINTSCRIPT_NAME" \
 	      "of $DPKG_MAINTSCRIPT_PACKAGE"
@@ -153,6 +158,13 @@ mv_conffile() {
 	[ -n "$1" ] || error "maintainer script parameters are missing"
 	[ -n "$DPKG_MAINTSCRIPT_NAME" ] || \
 		error "environment variable DPKG_MAINTSCRIPT_NAME is required"
+	[ "${OLDCONFFILE}" != "${OLDCONFFILE#/}" ] || \
+		error "old-conffile '$OLDCONFFILE' is not an absolute path"
+	[ "${NEWCONFFILE}" != "${NEWCONFFILE#/}" ] || \
+		error "new-conffile '$NEWCONFFILE' is not an absolute path"
+	# Use --compare-versions to validate the version number.
+	[ -z "$(dpkg --compare-versions -- "$LASTVERSION" eq '0' 2>&1)" ] || \
+		error "version '$LASTVERSION' is not valid"
 
 	debug "Executing $0 mv_conffile in $DPKG_MAINTSCRIPT_NAME" \
 	      "of $DPKG_MAINTSCRIPT_PACKAGE"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git



More information about the Reproducible-commits mailing list