aggregate: Fix aggregation of posts without a title
When an aggregated post lacked a title, the code first prepended the $feed->{dir} to it, and only then checked if it had zero length. So, that check could never succeed and it was possible to end up with $page="dir/", and writing to that would of course fail. (Same problem could also occur when the whole title got sanitized away by the wiki_file_regexp.) Fixed by simply checking earlier if $page is empty. Based on a patch by Alexandre Oliva which got lost in a maze of email folders all alike for over two years despite him mentioning it to me at least once in person.master
parent
9332b8115d
commit
0ec2c55ac0
|
@ -7,6 +7,10 @@ ikiwiki (3.20180312) UNRELEASED; urgency=medium
|
||||||
[ Simon McVittie ]
|
[ Simon McVittie ]
|
||||||
* Hide popup template content from documentation (Closes: #898836)
|
* Hide popup template content from documentation (Closes: #898836)
|
||||||
|
|
||||||
|
[ Joey Hess ]
|
||||||
|
* aggregate: Fix aggregation of posts without a title.
|
||||||
|
Thanks, Alexandre Oliva
|
||||||
|
|
||||||
-- Simon McVittie <smcv@debian.org> Wed, 16 May 2018 13:09:27 +0100
|
-- Simon McVittie <smcv@debian.org> Wed, 16 May 2018 13:09:27 +0100
|
||||||
|
|
||||||
ikiwiki (3.20180311) upstream; urgency=medium
|
ikiwiki (3.20180311) upstream; urgency=medium
|
||||||
|
|
|
@ -621,11 +621,11 @@ sub add_page (@) {
|
||||||
# escape slashes and periods in title so it doesn't specify
|
# escape slashes and periods in title so it doesn't specify
|
||||||
# directory name or trigger ".." disallowing code.
|
# directory name or trigger ".." disallowing code.
|
||||||
$page=~s!([/.])!"__".ord($1)."__"!eg;
|
$page=~s!([/.])!"__".ord($1)."__"!eg;
|
||||||
$page=$feed->{dir}."/".$page;
|
|
||||||
($page)=$page=~/$config{wiki_file_regexp}/;
|
|
||||||
if (! defined $page || ! length $page) {
|
if (! defined $page || ! length $page) {
|
||||||
$page=$feed->{dir}."/item";
|
$page=$feed->{dir}."/item";
|
||||||
}
|
}
|
||||||
|
$page=$feed->{dir}."/".$page;
|
||||||
|
($page)=$page=~/$config{wiki_file_regexp}/;
|
||||||
my $c="";
|
my $c="";
|
||||||
while (exists $IkiWiki::pagecase{lc $page.$c} ||
|
while (exists $IkiWiki::pagecase{lc $page.$c} ||
|
||||||
-e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) ||
|
-e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) ||
|
||||||
|
|
Loading…
Reference in New Issue