From 54d8f0858825e9ae4c8fdf54b7c2019edee05237 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 29 Dec 2004 19:32:55 +0000 Subject: [PATCH] * Reject patches larger than the full archives they produce. --- scripts/generate-patches.pl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scripts/generate-patches.pl b/scripts/generate-patches.pl index 7d957839bb..b20360fc6e 100755 --- a/scripts/generate-patches.pl +++ b/scripts/generate-patches.pl @@ -191,13 +191,19 @@ foreach my $p (keys %dstOutPaths) { my $narHash = `nix-hash --flat $tmpdir/B` or die; chomp $narHash; - my $narBz2Hash = `nix-hash --flat $tmpdir/DIFF` or die; - chomp $narBz2Hash; + my $narDiffHash = `nix-hash --flat $tmpdir/DIFF` or die; + chomp $narDiffHash; - my $narBz2Size = (stat "$tmpdir/DIFF")[7]; + my $narDiffSize = (stat "$tmpdir/DIFF")[7]; + my $dstNarBz2Size = (stat $dstNarBz2)[7]; + + if ($narDiffSize >= $dstNarBz2Size) { + print " rejecting; patch bigger than full archive\n"; + next; + } my $finalName = - "$narBz2Hash-$name-$closestVersion-to-$version.nar-diff"; + "$narDiffHash-$name-$closestVersion-to-$version.nar-diff"; if (-e "$patchesDir/$finalName") { print " not copying, already exists\n"; @@ -212,8 +218,8 @@ foreach my $p (keys %dstOutPaths) { # Add the patch to the manifest. addPatch \%dstPatches, $p, - { url => "$patchesURL/$finalName", hash => $narBz2Hash - , size => $narBz2Size + { url => "$patchesURL/$finalName", hash => $narDiffHash + , size => $narDiffSize , basePath => $closest, baseHash => $baseHash , narHash => $narHash, patchType => "nar-bsdiff" };