summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-01-07 18:45:59 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-01-08 22:14:48 +0000
commit76c7db35e2ddaa0c517128fae11cd5893099fffc (patch)
treed94875cbd4c35b0d9a5d8fadc0f6b848023a8016
parent6df06968cbcb92d2dc9796a137d36cdc873b827a (diff)
dgit: Enforce a syntax for nominal distros
These appear in various interchange output like tags. They should be sane. They're going to appear in Dgit: too where people will need to use them. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r--Debian/Dgit.pm2
-rwxr-xr-xdgit5
2 files changed, 6 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 314bd8c..5a7b59d 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -50,6 +50,7 @@ BEGIN {
git_get_ref git_for_each_ref
git_for_each_tag_referring is_fast_fwd
$package_re $component_re $deliberately_re
+ $distro_re
$branchprefix
initdebug enabledebug enabledebuglevel
printdebug debugcmd
@@ -65,6 +66,7 @@ our @EXPORT_OK;
our $package_re = '[0-9a-z][-+.0-9a-z]*';
our $component_re = '[0-9a-zA-Z][-+.0-9a-zA-Z]*';
our $deliberately_re = "(?:TEST-)?$package_re";
+our $distro_re = $component_re;
our $branchprefix = 'dgit';
# policy hook exit status bits
diff --git a/dgit b/dgit
index 54b0e6f..de7b4de 100755
--- a/dgit
+++ b/dgit
@@ -727,7 +727,10 @@ sub access_basedistro () {
sub access_nomdistro () {
my $base = access_basedistro();
- return cfg("dgit-distro.$base.nominal-distro",'RETURN-UNDEF') // $base;
+ my $r = cfg("dgit-distro.$base.nominal-distro",'RETURN-UNDEF') // $base;
+ $r =~ m/^$distro_re$/ or badcfg
+ "bad syntax for (nominal) distro \`$r' (does not match /^$distro_re$/)";
+ return $r;
}
sub access_quirk () {