]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
img: Explicitly detect format if needed
authorSimon McVittie <smcv@debian.org>
Wed, 28 Feb 2018 09:51:13 +0000 (09:51 +0000)
committerSimon McVittie <smcv@debian.org>
Wed, 28 Feb 2018 09:56:08 +0000 (09:56 +0000)
An empty coder name used to detect the format implicitly, but has been
interpreted as a literal part of the filename since ImageMagick 6.9.8-3.
In newer versions, there does not seem to be any way to indicate that
a filename containing ':' is to be taken literally without first
knowing the decoder to use.

Signed-off-by: Simon McVittie <smcv@debian.org>
IkiWiki/Plugin/img.pm

index 79cfba20fb48564849b41717907c7f860904fe02..b85824345ed6e1634cf6f43b08ac3887a56117d4 100644 (file)
@@ -125,7 +125,14 @@ sub preprocess (@) {
        }
        else {
                # allow ImageMagick to auto-detect (potentially dangerous)
        }
        else {
                # allow ImageMagick to auto-detect (potentially dangerous)
-               $format = '';
+               my $im = Image::Magick->new();
+               my $r = $im->Ping(file => $in);
+               if ($r) {
+                       $format = lc $r;
+               }
+               else {
+                       error sprintf(gettext("failed to determine format of %s"), $file);
+               }
        }
 
        error sprintf(gettext("%s image processing disabled in img_allowed_formats configuration"), $format ? $format : "\"$extension\"") unless allowed($format ? $format : "everything");
        }
 
        error sprintf(gettext("%s image processing disabled in img_allowed_formats configuration"), $format ? $format : "\"$extension\"") unless allowed($format ? $format : "everything");