<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>29462</bug_id>
          
          <creation_ts>2013-10-13 00:58:29 +0400</creation_ts>
          <short_desc>Новую версию PECL GMagick</short_desc>
          <delta_ts>2014-02-27 03:07:34 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch p7</product>
          <component>php5-gmagick</component>
          <version>не указана</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Andrey Cherepanov">cas</assigned_to>
          
          
          <qa_contact name="qa-p7@altlinux.org">qa-p7</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>143132</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2013-10-13 00:58:29 +0400</bug_when>
    <thetext>На некотором php-коде (при установке CMS) Апач выпадает с ошибкой:

httpd2: magick/semaphore.c:531: LockSemaphoreInfo: Проверочное утверждение «semaphore_info != (SemaphoreInfo *) ((void *)0)» не выполнено.
[Sun Oct 13 00:40:12 2013] [error] child died with signal 6

Нашёл похожую багу:
https://bugzilla.redhat.com/show_bug.cgi?id=751376

На тесте
&lt;?php
$image = new Gmagick();
$svg = file_get_contents(&apos;image.svg&apos;);
$image-&gt;readImageBlob($svg);
$image-&gt;write(&apos;image.jpg&apos;);
echo get_class($image). PHP_EOL;
exit;

(на всякий, тестовый svg брал такой: http://soulibre.ru/images/1/1d/Red_copyright.svg)

получил SegFault:

#0  strlcpy (dst=&lt;optimized out&gt;, src=0x0, siz=&lt;optimized out&gt;) at strlcpy.c:41
#1  0x00007ffff04b8945 in MagickSetImageFilename () from /usr/lib64/libGraphicsMagickWand.so.2
#2  0x00007ffff06e11b2 in zim_gmagick_readimageblob () from /usr/lib64/php/5.3.27/extensions/gmagick.so
#3  0x00007fffeb3c0844 in ?? () from /usr/lib64/php/5.3.27/extensions/suhosin.so
#4  0x00007ffff7a305e6 in ?? () from /usr/lib64/libphp-5.3.27.so.0
#5  0x00007ffff79f08e3 in execute () from /usr/lib64/libphp-5.3.27.so.0
#6  0x00007fffeb3c197b in ?? () from /usr/lib64/php/5.3.27/extensions/suhosin.so
#7  0x00007ffff79cbb79 in zend_execute_scripts () from /usr/lib64/libphp-5.3.27.so.0

 # rpm -qf /usr/lib64/libGraphicsMagickWand.so.2.6.0
libGraphicsMagick-1.3.18-alt1
 # rpm -qf /usr/lib64/php/5.3.27/extensions/gmagick.so
php5-gmagick-5.3.27.20130711-alt0.M70P.1

Правда мне показалось, что это уже другая бага.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143133</commentid>
    <comment_count>1</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2013-10-13 01:03:04 +0400</bug_when>
    <thetext>В Сизифе
libGraphicsMagick-1.3.18-alt2
php5-gmagick-5.4.17.20130704-alt1
и бага не воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145451</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2014-02-23 02:46:02 +0400</bug_when>
    <thetext>Упростил тест:
#!/usr/bin/php
&lt;?php
$image = new Gmagick();
// 1x1 gif
$data = base64_decode(&apos;R0lGODlhAQABAIAAAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==&apos;);
$image-&gt;readImageBlob($data);


Program received signal SIGSEGV, Segmentation fault.
strlcpy (dst=&lt;optimized out&gt;, src=0x0, siz=siz@entry=2053) at strlcpy.c:41
41				if ((*d++ = *s++) == 0)
(gdb) bt
#0  strlcpy (dst=&lt;optimized out&gt;, src=0x0, siz=siz@entry=2053) at strlcpy.c:41
#1  0x00007ffff005feb5 in CopyMagickString (destination=&lt;optimized out&gt;, source=&lt;optimized out&gt;, length=length@entry=2053) at wand/magick_compat.c:76
#2  0x00007ffff006a945 in MagickSetImageFilename (wand=0x8bfc30, filename=&lt;optimized out&gt;) at wand/magick_wand.c:8012
#3  0x00007ffff02931b2 in zim_gmagick_readimageblob (ht=&lt;optimized out&gt;, return_value=0x895178, return_value_ptr=&lt;optimized out&gt;, this_ptr=0x8951c8, 
    return_value_used=&lt;optimized out&gt;) 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145452</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2014-02-23 03:06:24 +0400</bug_when>
    <thetext>У меня пакет 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 так сразу не могу, он сильно несовместим.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145453</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2014-02-23 03:23:27 +0400</bug_when>
    <thetext>(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, &quot;s|s!&quot;, &amp;image_string, &amp;image_string_len, &amp;filename, &amp;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-&gt;magick_wand, filename);
Я так понимаю, filename предполагается быть заполненным, но этого не случилось

Второй параметр функции не обязателен:
bool Imagick::readImageBlob ( string $image [, string $filename ] )
...
ZEND_BEGIN_ARG_INFO_EX(gmagick_readimageblob_args, 0, 0, 1)
&lt;------&gt;ZEND_ARG_INFO(0, imageContents)
&lt;------&gt;ZEND_ARG_INFO(0, filename)
ZEND_END_ARG_INFO()

http://www.php.net/manual/en/imagick.readimageblob.php

В общем, в новой версии php-gmagick добавлено:
&lt;------&gt;/* Even if filename is null we need to give a name here. Otherwise segfaults will happen */
&lt;------&gt;if (!filename)
&lt;------&gt;&lt;------&gt;filename = &quot;&quot;;

В качестве обходного варианта можно указывать пустую строку вторым параметром к readImageBlob.

Патч делать к php5-gmagick-5.3..?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145454</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2014-02-23 03:38:49 +0400</bug_when>
    <thetext>Переименовываю тогда:
У нас тут старая версия PECL GMagick, в которой ошибка в функции readImageBlob() и нет функции getImageBlob();
Чтобы проблемы ушли, надо обновить версию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145460</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2014-02-24 10:47:57 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Переименовываю тогда:
&gt; У нас тут старая версия PECL GMagick, в которой ошибка в функции
&gt; readImageBlob() и нет функции getImageBlob();
&gt; Чтобы проблемы ушли, надо обновить версию.
До какой версии? Последней 5.3.x из апстрима?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145482</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2014-02-25 13:51:48 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
...&gt; &gt; У нас тут старая версия PECL GMagick, в которой ошибка в функции
...
&gt; &gt; Чтобы проблемы ушли, надо обновить версию.
&gt; До какой версии? Последней 5.3.x из апстрима?
Достаточно до той, которая в Сизифе. Это правильный путь, в Сизифе она уже обкаталась, можно и в p7 перенести.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145498</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2014-02-26 17:20:56 +0400</bug_when>
    <thetext>php5-gmagick-5.3.27.20130711-alt0.M70P.2 -&gt; p7:

* Tue Feb 25 2014 Andrey Cherepanov &lt;cas@altlinux&gt; 5.3.27.20130711-alt0.M70P.2
- Backport new version to p7 (ALT #29462)

* Tue Feb 25 2014 cas &lt;cas@altlinux&gt; 5.3.27.20130711-alt0.M70P.2
- Rebuild with php5-5.3.27.20130711-alt0.M70P.2</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>