Hi,

Problem Description:
In situations there the image magick shared libraries are not found any
longer, e.g. because of an outdated ls.so.cache, Image::Magick::AUTOLOAD
causes an endless loop eating up all memory and CPU if Image::Magick is
require'd at runtime via an string eval block. Endless loop will be
triggered at exit of the program at latest when the END block calls the
XS UNLOAD() function which is in this case not defined.

Systems Affected:
At least Solaris and Linux with current stable kernels

Fix:
Check if Image::Magick::constant is defined in AUTOLOAD() function.
Patch against 6.4.4 attached.

Regards,
Michael Kröll

-- 
063A F25E B064 A98F A479  1690 78CD D023 5E2A 6688
http://zis.uibk.ac.at/.m/uibk.ac.at_pgp_pubkey.asc
--- Magick.pm.in-6.4.4  2008-10-15 17:02:48.220945000 +0200
+++ Magick.pm.in        2008-10-15 17:03:23.847648000 +0200
@@ -39,6 +39,7 @@
 
     my $constname;
     ($constname = $AUTOLOAD) =~ s/.*:://;
+    die "&${AUTOLOAD} not defined. It is likely that your ImageMagick library 
files could not be found!\n" if $constname eq 'constant';
     my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
        if ($! =~ /Invalid/) {
_______________________________________________
Magick-bugs mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-bugs

Reply via email to