chiark / gitweb /
dgit: Regularise patch filenames, and defend against funny commit subjects
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 91172dad890a4e25442cc83e9fa832a426e64296..51975965deb49aad24c205848e0ca5170983185b 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -5274,6 +5274,7 @@ sub quiltify ($$$$) {
                die "contains unexpected slashes\n" if m{//} || m{/$};
                die "contains leading punctuation\n" if m{^\W} || m{/\W};
                die "contains bad character(s)\n" if m{[^-a-z0-9_.+=~/]}i;
                die "contains unexpected slashes\n" if m{//} || m{/$};
                die "contains leading punctuation\n" if m{^\W} || m{/\W};
                die "contains bad character(s)\n" if m{[^-a-z0-9_.+=~/]}i;
+               die "is series file\n" if m{$series_filename_re}o;
                die "too long" if length > 200;
            };
            return $_ unless $@;
                die "too long" if length > 200;
            };
            return $_ unless $@;
@@ -5312,6 +5313,7 @@ sub quiltify ($$$$) {
            $patchname =~ y/-a-z0-9_.+=~//cd;
            $patchname =~ s/^\W/x-$&/;
            $patchname = substr($patchname,0,40);
            $patchname =~ y/-a-z0-9_.+=~//cd;
            $patchname =~ s/^\W/x-$&/;
            $patchname = substr($patchname,0,40);
+           $patchname .= ".patch";
        }
        if (!defined $patchdir) {
            $patchdir = '';
        }
        if (!defined $patchdir) {
            $patchdir = '';