Summary: | Новую версию PECL GMagick | ||
---|---|---|---|
Product: | Branch p7 | Reporter: | Vitaly Lipatov <lav> |
Component: | php5-gmagick | Assignee: | Andrey Cherepanov <cas> |
Status: | CLOSED FIXED | QA Contact: | qa-p7 <qa-p7> |
Severity: | normal | ||
Priority: | P3 | ||
Version: | не указана | ||
Hardware: | all | ||
OS: | Linux |
Description
Vitaly Lipatov
2013-10-13 00:58:29 MSK
В Сизифе libGraphicsMagick-1.3.18-alt2 php5-gmagick-5.4.17.20130704-alt1 и бага не воспроизводится. Упростил тест: #!/usr/bin/php <?php $image = new Gmagick(); // 1x1 gif $data = base64_decode('R0lGODlhAQABAIAAAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); $image->readImageBlob($data); Program received signal SIGSEGV, Segmentation fault. strlcpy (dst=<optimized out>, src=0x0, siz=siz@entry=2053) at strlcpy.c:41 41 if ((*d++ = *s++) == 0) (gdb) bt #0 strlcpy (dst=<optimized out>, src=0x0, siz=siz@entry=2053) at strlcpy.c:41 #1 0x00007ffff005feb5 in CopyMagickString (destination=<optimized out>, source=<optimized out>, length=length@entry=2053) at wand/magick_compat.c:76 #2 0x00007ffff006a945 in MagickSetImageFilename (wand=0x8bfc30, filename=<optimized out>) at wand/magick_wand.c:8012 #3 0x00007ffff02931b2 in zim_gmagick_readimageblob (ht=<optimized out>, return_value=0x895178, return_value_ptr=<optimized out>, this_ptr=0x8951c8, return_value_used=<optimized out>) at /usr/src/debug/php5-gmagick-5.3.27.20130711/gmagick_methods.c:3082 #4 0x00007fffec553844 in ?? () from /usr/lib64/php/5.3.27/extensions/suhosin.so У меня пакет php5-gmagick-5.3.27.20130711-alt0.M70P.1 Удивляюсь, но я не смог такого тэга сборки в http://git.altlinux.org/gears/p/php5-gmagick.git?p=php5-gmagick.git;a=shortlog;h=refs/heads/p7 Поэтому не представляю, что предпринять. Перейти на php 5.4 так сразу не могу, он сильно несовместим. (gdb) l /usr/src/debug/php5-gmagick-5.3.27.20130711/gmagick_methods.c:3070 3065 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!", &image_string, &image_string_len, &filename, &filename_len) == FAILURE) { 3066 return; 3067 } ... 3081 /* Even if filename is null we need to give a name here. Otherwise segfaults will happen */ 3082 MagickSetImageFilename(intern->magick_wand, filename); Я так понимаю, filename предполагается быть заполненным, но этого не случилось Второй параметр функции не обязателен: bool Imagick::readImageBlob ( string $image [, string $filename ] ) ... ZEND_BEGIN_ARG_INFO_EX(gmagick_readimageblob_args, 0, 0, 1) <------>ZEND_ARG_INFO(0, imageContents) <------>ZEND_ARG_INFO(0, filename) ZEND_END_ARG_INFO() http://www.php.net/manual/en/imagick.readimageblob.php В общем, в новой версии php-gmagick добавлено: <------>/* Even if filename is null we need to give a name here. Otherwise segfaults will happen */ <------>if (!filename) <------><------>filename = ""; В качестве обходного варианта можно указывать пустую строку вторым параметром к readImageBlob. Патч делать к php5-gmagick-5.3..? Переименовываю тогда: У нас тут старая версия PECL GMagick, в которой ошибка в функции readImageBlob() и нет функции getImageBlob(); Чтобы проблемы ушли, надо обновить версию. (В ответ на комментарий №5)
> Переименовываю тогда:
> У нас тут старая версия PECL GMagick, в которой ошибка в функции
> readImageBlob() и нет функции getImageBlob();
> Чтобы проблемы ушли, надо обновить версию.
До какой версии? Последней 5.3.x из апстрима?
(В ответ на комментарий №6) ...> > У нас тут старая версия PECL GMagick, в которой ошибка в функции ... > > Чтобы проблемы ушли, надо обновить версию. > До какой версии? Последней 5.3.x из апстрима? Достаточно до той, которая в Сизифе. Это правильный путь, в Сизифе она уже обкаталась, можно и в p7 перенести. php5-gmagick-5.3.27.20130711-alt0.M70P.2 -> p7: * Tue Feb 25 2014 Andrey Cherepanov <cas@altlinux> 5.3.27.20130711-alt0.M70P.2 - Backport new version to p7 (ALT #29462) * Tue Feb 25 2014 cas <cas@altlinux> 5.3.27.20130711-alt0.M70P.2 - Rebuild with php5-5.3.27.20130711-alt0.M70P.2 |