coredump on invalid input to convert
Posted: 2013-06-06T03:12:47-07:00
Hi,
I have been testing the convert command and found out that the following inputs crash 'convert'. I have compiled from source ImageMagick-6.8.5-9.
xxx@localhost:~$ convert --version
Version: ImageMagick 6.8.5-9 2013-06-05 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib jpeg ps xml zlib
Commands:
convert img.jpg -frame +0x50! /tmp/img1.jpg
convert img.jpg -frame ++0x50! /tmp/img1.jpg
convert img.jpg -frame --0x50! /tmp/img1.jpg
convert img.jpg -splice +50x50< /tmp/img1.jpg
convert img.jpg -splice ++50x50< /tmp/img1.jpg
convert img.jpg -splice --50x50< /tmp/img1.jpg
convert img.jpg -splice +50 /tmp/img1.jpg
convert img.jpg -splice ++50 /tmp/img1.jpg
convert img.jpg -splice --50 /tmp/img1.jpg
convert img.jpg -frame +50x50! /tmp/img1.jpg
convert img.jpg -frame 50x+50! /tmp/img1.jpg
convert img.jpg -frame ++50x50! /tmp/img1.jpg
convert img.jpg -frame 50x++50! /tmp/img1.jpg
convert img.jpg -frame --50x50! /tmp/img1.jpg
convert img.jpg -frame 50x--50! /tmp/img1.jpg
convert img.jpg -splice +50 /tmp/img1.jpg
convert img.jpg -splice ++50 /tmp/img1.jpg
convert img.jpg -splice --50 /tmp/img1.jpg
convert img.jpg -splice +50@ /tmp/img1.jpg
convert img.jpg -splice ++50@ /tmp/img1.jpg
convert img.jpg -splice --50@ /tmp/img1.jpg
convert img.jpg -splice +0x50 /tmp/img1.jpg
convert img.jpg -splice ++0x50 /tmp/img1.jpg
convert img.jpg -splice --0x50 /tmp/img1.jpg
convert img.jpg -frame +0x50> /tmp/img1.jpg
convert img.jpg -frame +50% /tmp/img1.jpg
convert img.jpg -frame ++0x50> /tmp/img1.jpg
convert img.jpg -frame --0x50> /tmp/img1.jpg
convert img.jpg -frame ++50% /tmp/img1.jpg
convert img.jpg -frame --50% /tmp/img1.jpg
convert img.jpg -splice +50x50 /tmp/img1.jpg
convert img.jpg -splice ++50x50 /tmp/img1.jpg
convert img.jpg -splice --50x50 /tmp/img1.jpg
convert img.jpg -frame +50x50 /tmp/img1.jpg
convert img.jpg -frame 50x+50 /tmp/img1.jpg
convert img.jpg -frame +0%x50% /tmp/img1.jpg
convert img.jpg -frame +50x50> /tmp/img1.jpg
convert img.jpg -frame ++0%x50% /tmp/img1.jpg
convert img.jpg -frame 50x+50> /tmp/img1.jpg
convert img.jpg -frame --0%x50% /tmp/img1.jpg
convert img.jpg -frame ++50x50> /tmp/img1.jpg
convert img.jpg -frame 50x++50> /tmp/img1.jpg
convert img.jpg -frame --50x50> /tmp/img1.jpg
convert img.jpg -frame 50x--50> /tmp/img1.jpg
convert img.jpg -frame ++50x50 /tmp/img1.jpg
convert img.jpg -frame 50x++50 /tmp/img1.jpg
convert img.jpg -frame --50x50 /tmp/img1.jpg
convert img.jpg -frame 50x--50 /tmp/img1.jpg
convert img.jpg -splice +50% /tmp/img1.jpg
convert img.jpg -splice ++50% /tmp/img1.jpg
convert img.jpg -splice --50% /tmp/img1.jpg
convert img.jpg -splice +0x50^ /tmp/img1.jpg
convert img.jpg -splice ++0x50^ /tmp/img1.jpg
convert img.jpg -splice --0x50^ /tmp/img1.jpg
convert img.jpg -frame +50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x+50% /tmp/img1.jpg
convert img.jpg -frame ++50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x++50% /tmp/img1.jpg
convert img.jpg -frame --50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x--50% /tmp/img1.jpg
convert img.jpg -frame +0x50< /tmp/img1.jpg
convert img.jpg -frame ++0x50< /tmp/img1.jpg
convert img.jpg -frame --0x50< /tmp/img1.jpg
convert img.jpg -splice +50x50^ /tmp/img1.jpg
convert img.jpg -splice ++50x50^ /tmp/img1.jpg
convert img.jpg -splice --50x50^ /tmp/img1.jpg
convert img.jpg -splice +0x50> /tmp/img1.jpg
convert img.jpg -frame +50x50< /tmp/img1.jpg
convert img.jpg -frame 50x+50< /tmp/img1.jpg
convert img.jpg -frame ++50x50< /tmp/img1.jpg
convert img.jpg -frame 50x++50< /tmp/img1.jpg
convert img.jpg -frame --50x50< /tmp/img1.jpg
convert img.jpg -frame 50x--50< /tmp/img1.jpg
convert img.jpg -splice ++0x50> /tmp/img1.jpg
convert img.jpg -splice --0x50> /tmp/img1.jpg
convert img.jpg -frame +50 /tmp/img1.jpg
convert img.jpg -frame ++50 /tmp/img1.jpg
convert img.jpg -frame --50 /tmp/img1.jpg
convert img.jpg -splice +0x50! /tmp/img1.jpg
convert img.jpg -splice ++0x50! /tmp/img1.jpg
convert img.jpg -splice --0x50! /tmp/img1.jpg
convert img.jpg -frame +50 /tmp/img1.jpg
convert img.jpg -frame ++50 /tmp/img1.jpg
convert img.jpg -frame --50 /tmp/img1.jpg
convert img.jpg -frame +50@ /tmp/img1.jpg
convert img.jpg -splice +50x50! /tmp/img1.jpg
convert img.jpg -splice ++50x50! /tmp/img1.jpg
convert img.jpg -splice --50x50! /tmp/img1.jpg
convert img.jpg -frame +0x50 /tmp/img1.jpg
convert img.jpg -frame ++0x50 /tmp/img1.jpg
convert img.jpg -frame --0x50 /tmp/img1.jpg
convert img.jpg -splice +0%x50% /tmp/img1.jpg
convert img.jpg -splice ++0%x50% /tmp/img1.jpg
convert img.jpg -splice --0%x50% /tmp/img1.jpg
convert img.jpg -frame +0x50^ /tmp/img1.jpg
convert img.jpg -frame ++0x50^ /tmp/img1.jpg
convert img.jpg -frame --0x50^ /tmp/img1.jpg
convert img.jpg -splice +50x50> /tmp/img1.jpg
convert img.jpg -splice ++50x50> /tmp/img1.jpg
convert img.jpg -splice --50x50> /tmp/img1.jpg
convert img.jpg -frame +50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x+50^ /tmp/img1.jpg
convert img.jpg -frame ++50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x++50^ /tmp/img1.jpg
convert img.jpg -frame --50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x--50^ /tmp/img1.jpg
convert img.jpg -splice +50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x+50% /tmp/img1.jpg
convert img.jpg -splice ++50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x++50% /tmp/img1.jpg
convert img.jpg -splice --50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x--50% /tmp/img1.jpg
convert img.jpg -splice +0x50< /tmp/img1.jpg
convert img.jpg -splice ++0x50< /tmp/img1.jpg
convert img.jpg -splice --0x50< /tmp/img1.jpg
backtrace of convert img.jpg -frame +0x50! /tmp/img1.jpg
Core was generated by `convert img.jpg -frame +0x50! /tmp/img1.jpg'.
Program terminated with signal 6, Aborted.
#0 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f36c8e26b8b in __GI_abort () at abort.c:91
#2 0x00007f36c97d8d7b in MagickSignalHandler (signal_number=6)
at magick/magick.c:1151
#3 <signal handler called>
#4 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#5 0x00007f36c8e26b8b in __GI_abort () at abort.c:91
#6 0x00007f36c97d8d7b in MagickSignalHandler (signal_number=11)
at magick/magick.c:1151
#7 <signal handler called>
#8 SyncAuthenticPixelCacheNexus (image=<optimized out>,
nexus_info=<optimized out>, exception=exception@entry=0x2452990)
at magick/cache.c:4943
#9 0x00007f36c9716661 in SyncCacheViewAuthenticPixels (
cache_view=cache_view@entry=0x2480100, exception=exception@entry=0x2452990)
at magick/cache-view.c:1006
#10 0x00007f36c975c9d4 in FrameImage (image=<optimized out>,
frame_info=frame_info@entry=0x7fffee672b40,
---Type <return> to continue, or q <return> to quit---
exception=exception@entry=0x2452990) at magick/decorate.c:406
#11 0x00007f36c94540c7 in MogrifyImage (image_info=image_info@entry=0x2457060,
argc=argc@entry=3, argv=argv@entry=0x2451858,
image=image@entry=0x7fffee673d58, exception=exception@entry=0x2452990)
at wand/mogrify.c:1641
#12 0x00007f36c9457c17 in MogrifyImages (image_info=0x2457060,
post=post@entry=MagickTrue, argc=3, argv=0x2451858,
images=images@entry=0x7fffee673d58, exception=exception@entry=0x2452990)
at wand/mogrify.c:8484
#13 0x00007f36c93fde10 in ConvertImageCommand (image_info=0x2457060, argc=5,
argv=0x2451850, metadata=0x0, exception=<optimized out>)
at wand/convert.c:3104
#14 0x00007f36c944de3c in MagickCommandGenesis (
image_info=image_info@entry=0x2452b10,
command=0x4007e0 <ConvertImageCommand@plt>, argc=argc@entry=5,
argv=argv@entry=0x7fffee6751e8, metadata=metadata@entry=0x0,
exception=exception@entry=0x2452990) at wand/mogrify.c:166
#15 0x0000000000400857 in ConvertMain (argv=0x7fffee6751e8, argc=5)
at utilities/convert.c:81
#16 main (argc=5, argv=0x7fffee6751e8) at utilities/convert.c:92
Regards,
Alfred Farrugia
I have been testing the convert command and found out that the following inputs crash 'convert'. I have compiled from source ImageMagick-6.8.5-9.
xxx@localhost:~$ convert --version
Version: ImageMagick 6.8.5-9 2013-06-05 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib jpeg ps xml zlib
Commands:
convert img.jpg -frame +0x50! /tmp/img1.jpg
convert img.jpg -frame ++0x50! /tmp/img1.jpg
convert img.jpg -frame --0x50! /tmp/img1.jpg
convert img.jpg -splice +50x50< /tmp/img1.jpg
convert img.jpg -splice ++50x50< /tmp/img1.jpg
convert img.jpg -splice --50x50< /tmp/img1.jpg
convert img.jpg -splice +50 /tmp/img1.jpg
convert img.jpg -splice ++50 /tmp/img1.jpg
convert img.jpg -splice --50 /tmp/img1.jpg
convert img.jpg -frame +50x50! /tmp/img1.jpg
convert img.jpg -frame 50x+50! /tmp/img1.jpg
convert img.jpg -frame ++50x50! /tmp/img1.jpg
convert img.jpg -frame 50x++50! /tmp/img1.jpg
convert img.jpg -frame --50x50! /tmp/img1.jpg
convert img.jpg -frame 50x--50! /tmp/img1.jpg
convert img.jpg -splice +50 /tmp/img1.jpg
convert img.jpg -splice ++50 /tmp/img1.jpg
convert img.jpg -splice --50 /tmp/img1.jpg
convert img.jpg -splice +50@ /tmp/img1.jpg
convert img.jpg -splice ++50@ /tmp/img1.jpg
convert img.jpg -splice --50@ /tmp/img1.jpg
convert img.jpg -splice +0x50 /tmp/img1.jpg
convert img.jpg -splice ++0x50 /tmp/img1.jpg
convert img.jpg -splice --0x50 /tmp/img1.jpg
convert img.jpg -frame +0x50> /tmp/img1.jpg
convert img.jpg -frame +50% /tmp/img1.jpg
convert img.jpg -frame ++0x50> /tmp/img1.jpg
convert img.jpg -frame --0x50> /tmp/img1.jpg
convert img.jpg -frame ++50% /tmp/img1.jpg
convert img.jpg -frame --50% /tmp/img1.jpg
convert img.jpg -splice +50x50 /tmp/img1.jpg
convert img.jpg -splice ++50x50 /tmp/img1.jpg
convert img.jpg -splice --50x50 /tmp/img1.jpg
convert img.jpg -frame +50x50 /tmp/img1.jpg
convert img.jpg -frame 50x+50 /tmp/img1.jpg
convert img.jpg -frame +0%x50% /tmp/img1.jpg
convert img.jpg -frame +50x50> /tmp/img1.jpg
convert img.jpg -frame ++0%x50% /tmp/img1.jpg
convert img.jpg -frame 50x+50> /tmp/img1.jpg
convert img.jpg -frame --0%x50% /tmp/img1.jpg
convert img.jpg -frame ++50x50> /tmp/img1.jpg
convert img.jpg -frame 50x++50> /tmp/img1.jpg
convert img.jpg -frame --50x50> /tmp/img1.jpg
convert img.jpg -frame 50x--50> /tmp/img1.jpg
convert img.jpg -frame ++50x50 /tmp/img1.jpg
convert img.jpg -frame 50x++50 /tmp/img1.jpg
convert img.jpg -frame --50x50 /tmp/img1.jpg
convert img.jpg -frame 50x--50 /tmp/img1.jpg
convert img.jpg -splice +50% /tmp/img1.jpg
convert img.jpg -splice ++50% /tmp/img1.jpg
convert img.jpg -splice --50% /tmp/img1.jpg
convert img.jpg -splice +0x50^ /tmp/img1.jpg
convert img.jpg -splice ++0x50^ /tmp/img1.jpg
convert img.jpg -splice --0x50^ /tmp/img1.jpg
convert img.jpg -frame +50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x+50% /tmp/img1.jpg
convert img.jpg -frame ++50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x++50% /tmp/img1.jpg
convert img.jpg -frame --50%x50% /tmp/img1.jpg
convert img.jpg -frame 50%x--50% /tmp/img1.jpg
convert img.jpg -frame +0x50< /tmp/img1.jpg
convert img.jpg -frame ++0x50< /tmp/img1.jpg
convert img.jpg -frame --0x50< /tmp/img1.jpg
convert img.jpg -splice +50x50^ /tmp/img1.jpg
convert img.jpg -splice ++50x50^ /tmp/img1.jpg
convert img.jpg -splice --50x50^ /tmp/img1.jpg
convert img.jpg -splice +0x50> /tmp/img1.jpg
convert img.jpg -frame +50x50< /tmp/img1.jpg
convert img.jpg -frame 50x+50< /tmp/img1.jpg
convert img.jpg -frame ++50x50< /tmp/img1.jpg
convert img.jpg -frame 50x++50< /tmp/img1.jpg
convert img.jpg -frame --50x50< /tmp/img1.jpg
convert img.jpg -frame 50x--50< /tmp/img1.jpg
convert img.jpg -splice ++0x50> /tmp/img1.jpg
convert img.jpg -splice --0x50> /tmp/img1.jpg
convert img.jpg -frame +50 /tmp/img1.jpg
convert img.jpg -frame ++50 /tmp/img1.jpg
convert img.jpg -frame --50 /tmp/img1.jpg
convert img.jpg -splice +0x50! /tmp/img1.jpg
convert img.jpg -splice ++0x50! /tmp/img1.jpg
convert img.jpg -splice --0x50! /tmp/img1.jpg
convert img.jpg -frame +50 /tmp/img1.jpg
convert img.jpg -frame ++50 /tmp/img1.jpg
convert img.jpg -frame --50 /tmp/img1.jpg
convert img.jpg -frame +50@ /tmp/img1.jpg
convert img.jpg -splice +50x50! /tmp/img1.jpg
convert img.jpg -splice ++50x50! /tmp/img1.jpg
convert img.jpg -splice --50x50! /tmp/img1.jpg
convert img.jpg -frame +0x50 /tmp/img1.jpg
convert img.jpg -frame ++0x50 /tmp/img1.jpg
convert img.jpg -frame --0x50 /tmp/img1.jpg
convert img.jpg -splice +0%x50% /tmp/img1.jpg
convert img.jpg -splice ++0%x50% /tmp/img1.jpg
convert img.jpg -splice --0%x50% /tmp/img1.jpg
convert img.jpg -frame +0x50^ /tmp/img1.jpg
convert img.jpg -frame ++0x50^ /tmp/img1.jpg
convert img.jpg -frame --0x50^ /tmp/img1.jpg
convert img.jpg -splice +50x50> /tmp/img1.jpg
convert img.jpg -splice ++50x50> /tmp/img1.jpg
convert img.jpg -splice --50x50> /tmp/img1.jpg
convert img.jpg -frame +50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x+50^ /tmp/img1.jpg
convert img.jpg -frame ++50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x++50^ /tmp/img1.jpg
convert img.jpg -frame --50x50^ /tmp/img1.jpg
convert img.jpg -frame 50x--50^ /tmp/img1.jpg
convert img.jpg -splice +50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x+50% /tmp/img1.jpg
convert img.jpg -splice ++50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x++50% /tmp/img1.jpg
convert img.jpg -splice --50%x50% /tmp/img1.jpg
convert img.jpg -splice 50%x--50% /tmp/img1.jpg
convert img.jpg -splice +0x50< /tmp/img1.jpg
convert img.jpg -splice ++0x50< /tmp/img1.jpg
convert img.jpg -splice --0x50< /tmp/img1.jpg
backtrace of convert img.jpg -frame +0x50! /tmp/img1.jpg
Core was generated by `convert img.jpg -frame +0x50! /tmp/img1.jpg'.
Program terminated with signal 6, Aborted.
#0 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f36c8e26b8b in __GI_abort () at abort.c:91
#2 0x00007f36c97d8d7b in MagickSignalHandler (signal_number=6)
at magick/magick.c:1151
#3 <signal handler called>
#4 0x00007f36c8e23425 in __GI_raise (sig=<optimized out>)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#5 0x00007f36c8e26b8b in __GI_abort () at abort.c:91
#6 0x00007f36c97d8d7b in MagickSignalHandler (signal_number=11)
at magick/magick.c:1151
#7 <signal handler called>
#8 SyncAuthenticPixelCacheNexus (image=<optimized out>,
nexus_info=<optimized out>, exception=exception@entry=0x2452990)
at magick/cache.c:4943
#9 0x00007f36c9716661 in SyncCacheViewAuthenticPixels (
cache_view=cache_view@entry=0x2480100, exception=exception@entry=0x2452990)
at magick/cache-view.c:1006
#10 0x00007f36c975c9d4 in FrameImage (image=<optimized out>,
frame_info=frame_info@entry=0x7fffee672b40,
---Type <return> to continue, or q <return> to quit---
exception=exception@entry=0x2452990) at magick/decorate.c:406
#11 0x00007f36c94540c7 in MogrifyImage (image_info=image_info@entry=0x2457060,
argc=argc@entry=3, argv=argv@entry=0x2451858,
image=image@entry=0x7fffee673d58, exception=exception@entry=0x2452990)
at wand/mogrify.c:1641
#12 0x00007f36c9457c17 in MogrifyImages (image_info=0x2457060,
post=post@entry=MagickTrue, argc=3, argv=0x2451858,
images=images@entry=0x7fffee673d58, exception=exception@entry=0x2452990)
at wand/mogrify.c:8484
#13 0x00007f36c93fde10 in ConvertImageCommand (image_info=0x2457060, argc=5,
argv=0x2451850, metadata=0x0, exception=<optimized out>)
at wand/convert.c:3104
#14 0x00007f36c944de3c in MagickCommandGenesis (
image_info=image_info@entry=0x2452b10,
command=0x4007e0 <ConvertImageCommand@plt>, argc=argc@entry=5,
argv=argv@entry=0x7fffee6751e8, metadata=metadata@entry=0x0,
exception=exception@entry=0x2452990) at wand/mogrify.c:166
#15 0x0000000000400857 in ConvertMain (argv=0x7fffee6751e8, argc=5)
at utilities/convert.c:81
#16 main (argc=5, argv=0x7fffee6751e8) at utilities/convert.c:92
Regards,
Alfred Farrugia