]> err.no Git - dpkg/commitdiff
Check for illegal architecture strings in dpkg-gencontrol and
authorFrank Lichtenheld <djpig@debian.org>
Wed, 18 Jan 2006 13:17:16 +0000 (13:17 +0000)
committerFrank Lichtenheld <djpig@debian.org>
Wed, 18 Jan 2006 13:17:16 +0000 (13:17 +0000)
dpkg-source. dpkg-gencontrol will only issue a warning while
dpkg-source will error out. Closes: #96920

ChangeLog
debian/changelog
scripts/dpkg-gencontrol.pl
scripts/dpkg-source.pl

index 1ace30f60664b5c521d7b73dc5ef809c40a1b513..b2317e0fc9258c1ae3fc5836b377036905688fc2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        directory mode 0700 to not allow anyone exploiting races
        between the extraction and the chown.
 
+       * scripts/dpkg-gencontrol.pl: Warn about illegal architecture
+       strings. This will warn e.g. about comma-separated architecture
+       lists.
+       * scripts/dpkg-source.pl: Also check architecture strings and
+       error out if we find illegal ones.
+
 2005-08-27  Frank Lichtenheld  <djpig@debian.org>
 
        * scripts/dpkg-gencontrol: Bail out with an error if parsedep
index 58725081f67b476a394a5d120b22ba3df0432f08..af7bd97c7d44556139b50e4d0417969d0590adaf 100644 (file)
@@ -17,6 +17,9 @@ dpkg (1.13.12~) unstable; urgency=low
   * Let dpkg-source ensure (as good as possible) that all
     build source packages can also be unpacked.
     Closes: #6820, #7014
+  * Check for illegal architecture strings in dpkg-gencontrol and
+    dpkg-source. dpkg-gencontrol will only issue a warning while
+    dpkg-source will error out. Closes: #96920
 
  --
 
index e3debe49313258182daafd196d8e1d183e72b8f4..b2f8c0f351b035aef43474a96c41e3ac460b2a03 100755 (executable)
@@ -139,6 +139,11 @@ for $_ (keys %fi) {
                 $f{$_}= $arch;
             } else {
                 @archlist= split(/\s+/,$v);
+               my @invalid_archs = grep m/[^\w-]/, @archlist;
+               &warn("`".join("' `", @invalid_archs)."' are not legal ".
+                     "architecture strings.") if @invalid_archs > 1;
+               &warn("`@invalid_archs' is not a legal ".
+                     "architecture string.") if @invalid_archs == 1;
                 grep($arch eq $_, @archlist) ||
                     &error("current build architecture $arch does not".
                            " appear in package's list (@archlist)");
index 5b1d92134bc2bd64f364011ea1adab72b834813a..edbbd8eb99f481b0823f0c5eafecb421a66b8a40 100755 (executable)
@@ -195,6 +195,8 @@ if ($opmode eq 'build') {
                        @sourcearch= ('any');
                    } else {
                         for $a (split(/\s+/,$v)) {
+                           &error("`$a' is not a legal architecture string")
+                               unless $a =~ /^[\w-]$/;
                             &error("architecture $a only allowed on its own".
                                    " (list for package $p is `$a')")
                                    if grep($a eq $_, 'any','all');