]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/support_multiple_perl_libraries.mdwn
Exclude working directory from library path (CVE-2016-1238)
[git.ikiwiki.info.git] / doc / todo / support_multiple_perl_libraries.mdwn
index b71780f989b252dec222cfc3939564ffad37282f..579e35749399c376da64a5f55f671801a80d9615 100644 (file)
@@ -18,5 +18,39 @@ I think the change is a one-liner, but I put this here for discussion before att
 >
 > [[Louis|spalax]]
 
 >
 > [[Louis|spalax]]
 
+>> Modifying `getconfig` is not a valid solution, because IkiWiki.pm is also imported by
+>> [[ikiwiki-transition]], [[ikiwiki-calendar]], the regression tests, etc.
+>>
+>> The way I would personally do it is to have a new non-exported function `getlibdirs`
+>> or something, have it do something like this:
+>>
+>>     if (! ref $config{libdir}) {
+>>             if (length $config{libdir}) {
+>>                     $config{libdir} = [$config{libdir}];
+>>             } else {
+>>                     $config{libdir} = [];
+>>             }
+>>     }
+>>     return @{$config{libdir}};
+>>
+>> and replace all uses of $config{libdir} with it.
+>>
+>> --[[smcv]]
+>>>
+>>> I implemented it (see branch ``paternal/libdirs``). I used [[smcv]]'s idea, but
+>>> avoiding side effects. I edited documentation as well. As usual, as neither
+>>> English nor Perl are my first languages (damn! I would be so much more
+>>> efficient in Python) feel free to improve my [[!taglink patch]].
+>>> [[!template  id=gitbranch branch=spalax/paternal/libdirs browse="https://github.com/paternal/ikiwiki/tree/paternal/libdirs" author="[[Louis|spalax]]"]]
+
+>>>> While reviewing and applying your patch I decided the new
+>>>> "sometimes a list, sometimes not" behaviour of `libdir` was
+>>>> too confusing in documentation, so I made it work like underlaydir(s)
+>>>> instead: ikiwiki will now search each item of `$config{libdirs}`, then
+>>>> `$config{libdir}`. [[done]] --[[smcv]]
+
+>>>>> Good. I cannot see any justification apart from historical reasons, but I
+>>>>> agree with your choice.
+>>>>> -- [[Louis|spalax]]
 
 [[!taglink wishlist]]
 
 [[!taglink wishlist]]