aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--lib/MGA/Advisories.pm11
2 files changed, 15 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 7d92c2f..3440810 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+Version 0.X
+
+- ensure .adv file ends with newline when publishing
+
Version 0.30
- try to fix publish-all
diff --git a/lib/MGA/Advisories.pm b/lib/MGA/Advisories.pm
index 2506c3c..3752250 100644
--- a/lib/MGA/Advisories.pm
+++ b/lib/MGA/Advisories.pm
@@ -9,6 +9,7 @@ use DateTime::Format::ISO8601;
use Email::Sender::Simple qw(try_to_sendmail);
use Email::Simple;
use Email::Simple::Creator;
+use Fcntl qw(SEEK_END);
use HTTP::Request;
use LWP::UserAgent;
use Parallel::ForkManager;
@@ -232,6 +233,16 @@ sub assign_id {
return;
}
+ # Appending the ID later assumes that the file ends in a newline
+ open(my $fha, "<", $advfile);
+ seek($fha, -1, SEEK_END);
+ my $c = <$fha>;
+ close($fha);
+ if ($c ne "\n") {
+ print STDERR "$advname missing newline at end of file\n";
+ return;
+ }
+
my $adv = LoadFile($advfile);
if ($adv->{ID}) {
print STDERR "$advname already has an ID assigned: $adv->{ID}\n";