Bug 2645

Summary: SEGFAULT при вызове функции imagecreatefromstring()
Product: Sisyphus Reporter: raVen <raven98>
Component: php-gd2Assignee: Alexey Gladkov <legion>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P4 CC: lakostis, legion, mike, rider
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
0002645-imagecreate_test.tar.gz
none
0002645-php-gd2-4.3.2-alt0.cvs20030405rvn1.src.rpm
none
0002645-logo_odbcphp1.jpg
none
0002645-imagecreate_test2.php none

Description raVen 2003-06-09 10:24:26 MSD
php-gd2, собранный с gd2-2.0.4, вызывает SEGFAULT при вызове функции imagecreatefromstring(). php-gd2, собранный с bundled версией gd2 минимальной правкой спека, не имеет этого бага.

То же самое касается php-gd1.
---

---
Тест прилагается в виде архива imagecreate_test.tar.gz.
Comment 1 raVen 2003-06-09 10:27:30 MSD
Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2.
Comment 2 raVen 2003-06-09 10:27:30 MSD
Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2.
Comment 3 Alexey Gladkov 2003-06-09 15:31:28 MSD
Вопрос: вы пробовали только на этом файле ?
Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами.
Comment 4 Alexey Gladkov 2003-06-09 15:31:28 MSD
Вопрос: вы пробовали только на этом файле ?
Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами.
Comment 5 raVen 2003-06-10 13:44:10 MSD
Попробовал logo_odbcphp1.jpg. Раньше в результате работы скрипта был ответ нулевой длины, а теперь _РАБОТАЕТ_!!! Предыдущий пост я делал немного уставший и невнимательный - сам написал кривой скрипт, где имя файла нужно указывать в трёх местах ;-( Когда же увидел свою ошибку и исправил - logo_odbcphp1.jpg сразу и бесповоротно заработал!

Mozilla спокойно показывает обе картинки, отданные апачем напрямую.

# rpm -qa|grep php 
php-4.3.2-alt0.cvs20030405
php-manual-en-4.3.0-alt1
php-common-4.3.2-alt0.cvs20030405
php-devel-4.3.2-alt0.cvs20030405
mod_php-4.3.2-alt0.cvs20030405
php-gd2-4.3.2-alt0.cvs20030405
php-mysql-4.3.2-alt0.cvs20030405

# rpm -qa|grep libgd2
libgd2-2.0.4-alt2

# diff -u httpd.conf.DISTRO httpd.conf
--- httpd.conf.DISTRO   2002-11-26 12:56:22 +0200
+++ httpd.conf  2003-03-20 09:22:40 +0200
@@ -1424,3 +1424,4 @@
 # For DynamicVhosts and VirtualHomePages, uncomment those lines:
 #Include conf/vhosts/DynamicVhosts.conf
 #Include conf/vhosts/VirtualHomePages.conf
+Include conf/addon-modules/mod_php4.conf

# diff -u php.ini.DISTRO php.ini      
--- php.ini.DISTRO      2003-04-07 16:56:33 +0300
+++ php.ini     2003-06-10 11:54:46 +0300
@@ -515,7 +515,7 @@
 ;PHP Extensions
 ;extension=curl.so
 ;extension=dba.so
-;extension=gd.so
+extension=gd.so
 ;extension=imap.so
 ;extension=interbase.so
 ;extension=java.so
@@ -524,7 +524,7 @@
 ;extension=mhash.so
 ;extension=openssl.so
 ;extension=pgsql.so
-;extension=mysql.so
+extension=mysql.so
 ;extension=midgard.so
 ;extension=fribidi.so
 ;extension=readline.so

edited on: 11-06 10:18
Comment 6 raVen 2003-06-10 13:44:10 MSD
Попробовал logo_odbcphp1.jpg. Раньше в результате работы скрипта был ответ нулевой длины, а теперь _РАБОТАЕТ_!!! Предыдущий пост я делал немного уставший и невнимательный - сам написал кривой скрипт, где имя файла нужно указывать в трёх местах ;-( Когда же увидел свою ошибку и исправил - logo_odbcphp1.jpg сразу и бесповоротно заработал!

Mozilla спокойно показывает обе картинки, отданные апачем напрямую.

# rpm -qa|grep php 
php-4.3.2-alt0.cvs20030405
php-manual-en-4.3.0-alt1
php-common-4.3.2-alt0.cvs20030405
php-devel-4.3.2-alt0.cvs20030405
mod_php-4.3.2-alt0.cvs20030405
php-gd2-4.3.2-alt0.cvs20030405
php-mysql-4.3.2-alt0.cvs20030405

# rpm -qa|grep libgd2
libgd2-2.0.4-alt2

# diff -u httpd.conf.DISTRO httpd.conf
--- httpd.conf.DISTRO   2002-11-26 12:56:22 +0200
+++ httpd.conf  2003-03-20 09:22:40 +0200
@@ -1424,3 +1424,4 @@
 # For DynamicVhosts and VirtualHomePages, uncomment those lines:
 #Include conf/vhosts/DynamicVhosts.conf
 #Include conf/vhosts/VirtualHomePages.conf
+Include conf/addon-modules/mod_php4.conf

# diff -u php.ini.DISTRO php.ini      
--- php.ini.DISTRO      2003-04-07 16:56:33 +0300
+++ php.ini     2003-06-10 11:54:46 +0300
@@ -515,7 +515,7 @@
 ;PHP Extensions
 ;extension=curl.so
 ;extension=dba.so
-;extension=gd.so
+extension=gd.so
 ;extension=imap.so
 ;extension=interbase.so
 ;extension=java.so
@@ -524,7 +524,7 @@
 ;extension=mhash.so
 ;extension=openssl.so
 ;extension=pgsql.so
-;extension=mysql.so
+extension=mysql.so
 ;extension=midgard.so
 ;extension=fribidi.so
 ;extension=readline.so

edited on: 11-06 10:18
Comment 7 Alexey Gladkov 2003-06-10 16:58:12 MSD
Я не могу повторить ваши ошибки :(... в этом случае я вам могу посоветовать 
1) попробовать использовать эту функцию с другими форматами gif, png и т.д. и посмотреть реакцию.

2) попробовать вывести эти файлы без использования функции imagecreatefromstring() а соответстующими imagecreatefromgif() и т.д.

Похоже проблема на вашей машине так как logo_odbcphp1.jpg 100% работает на 2х машинах(при таком же как у вас наборе пакетов). Возможно в imagecreatefromstring() есть проблема в определении типа строки, но у меня это проявилось _только_ на вашей картинке до ее преобразования и только на этой функции. В любом случае пакет работает с libgd2-2.0.4-alt2  и у меня нет оснований переходить на buildin версию этой библиотеки.
Comment 8 Alexey Gladkov 2003-06-10 16:58:12 MSD
Я не могу повторить ваши ошибки :(... в этом случае я вам могу посоветовать 
1) попробовать использовать эту функцию с другими форматами gif, png и т.д. и посмотреть реакцию.

2) попробовать вывести эти файлы без использования функции imagecreatefromstring() а соответстующими imagecreatefromgif() и т.д.

Похоже проблема на вашей машине так как logo_odbcphp1.jpg 100% работает на 2х машинах(при таком же как у вас наборе пакетов). Возможно в imagecreatefromstring() есть проблема в определении типа строки, но у меня это проявилось _только_ на вашей картинке до ее преобразования и только на этой функции. В любом случае пакет работает с libgd2-2.0.4-alt2  и у меня нет оснований переходить на buildin версию этой библиотеки.
Comment 9 raVen 2003-06-11 14:37:53 MSD
Посмотрите фикс моего bugnote о попытке использования logo_odbcphp1.jpg!!!

Не похоже, чтобы проблема была на моей машине. logo_odbcphp1.jpg _работает_ на трёх машинах, каждая из которых имеет свою историю: домашняя - в девичестве ALJ1.1, ныне - ALM2.2 + security updates; рабочая - изначально ALM2.2beta, теперь - ALM2.2 + security updates; третью вчера специально поставил в VMware - чистый ALM2.2 + php-4.3.2-alt0.cvs20030405.

Так вот: ни на одной из трёх не работает logo_odbcphp.jpg! Эта картинка - не моя, я взял её совершенно случайно из результата поиска в google по словам php logo специально для теста.

Чем отличается logo_odbcphp1.jpg от logo_odbcphp.jpg? Похоже, что должно быть какое-то систематическое объяснение.

Обе картинки выводятся через imagecreatefromjpeg().
Comment 10 raVen 2003-06-11 14:37:53 MSD
Посмотрите фикс моего bugnote о попытке использования logo_odbcphp1.jpg!!!

Не похоже, чтобы проблема была на моей машине. logo_odbcphp1.jpg _работает_ на трёх машинах, каждая из которых имеет свою историю: домашняя - в девичестве ALJ1.1, ныне - ALM2.2 + security updates; рабочая - изначально ALM2.2beta, теперь - ALM2.2 + security updates; третью вчера специально поставил в VMware - чистый ALM2.2 + php-4.3.2-alt0.cvs20030405.

Так вот: ни на одной из трёх не работает logo_odbcphp.jpg! Эта картинка - не моя, я взял её совершенно случайно из результата поиска в google по словам php logo специально для теста.

Чем отличается logo_odbcphp1.jpg от logo_odbcphp.jpg? Похоже, что должно быть какое-то систематическое объяснение.

Обе картинки выводятся через imagecreatefromjpeg().
Comment 11 Alexey Gladkov 2003-06-11 15:11:31 MSD
Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня складывается впечатление что imagecreatefromstring() не верно определяет тип картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg содержится что-то из-за чего определение типа непроходит ... 
logo_odbcphp1.jpg получена путем простой операции в gimp (индексирование-&gt;RGB и сохронение в jpg) получилась почти та же картинка. Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально ... так что скорее всего дело именно в logo_odbcphp.jpg.
Comment 12 Alexey Gladkov 2003-06-11 15:11:31 MSD
Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня складывается впечатление что imagecreatefromstring() не верно определяет тип картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg содержится что-то из-за чего определение типа непроходит ... 
logo_odbcphp1.jpg получена путем простой операции в gimp (индексирование-&gt;RGB и сохронение в jpg) получилась почти та же картинка. Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально ... так что скорее всего дело именно в logo_odbcphp.jpg.
Comment 13 raVen 2003-06-12 14:47:20 MSD
1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки делаются самой gd.
Comment 14 raVen 2003-06-12 14:47:20 MSD
1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки делаются самой gd.
Comment 15 Alexey Gladkov 2003-06-13 17:36:58 MSD
Ошибка есть будем фиксить (<a href="http://bugs.php.net/24174">http://bugs.php.net/24174</a>)...

edited on: 13-06 17:37
Comment 16 Alexey Gladkov 2003-06-13 17:36:58 MSD
Ошибка есть будем фиксить (<a href="http://bugs.php.net/24174">http://bugs.php.net/24174</a>)...

edited on: 13-06 17:37
Comment 17 Alexey Gladkov 2003-06-17 14:31:51 MSD
Поскольку разработчики модуля php-gd фактически отказались от поддержки оригинальной версии библиотеки libgd и перешли на свою версию, поставляемую вместе с модулем, в следующих сборках будет использоваться именно она. 
В связи с таким переходом поддержки формата gif больше не будет (возможно будут отсутствовать еще некоторые возможности). 
Модуль php-gd1 больше собираться не будет по тем же причинам.
Comment 18 Alexey Gladkov 2003-06-17 14:31:51 MSD
Поскольку разработчики модуля php-gd фактически отказались от поддержки оригинальной версии библиотеки libgd и перешли на свою версию, поставляемую вместе с модулем, в следующих сборках будет использоваться именно она. 
В связи с таким переходом поддержки формата gif больше не будет (возможно будут отсутствовать еще некоторые возможности). 
Модуль php-gd1 больше собираться не будет по тем же причинам.
Comment 19 Konstantin A Lepikhov (L.A. Kostis) 2005-10-25 00:15:20 MSD
Теперь оно утекает при использовании ImagePNG. Если использовать ImageJPEG, то
все работает. Гадкое и нехорошее exntension, особенно после чтения bugs.php.net ;(
Comment 20 Konstantin A Lepikhov (L.A. Kostis) 2005-10-25 00:23:05 MSD
список пакетов, с которыми утекает:

# rpm -qa|egrep "php\-gd2|libgd|xorg"
xorg-x11-locales-6.8.99.901-alt1
php-gd2-4.4.1-alt0.cvs20050729
libgdbm-1.8.3-alt3
libxorgconfig-6.8.99.901-alt1
xorg-x11-libs-6.8.99.901-alt1
libgd2-2.0.33-alt2
Comment 21 Mikhail Gusarov 2008-06-13 13:00:39 MSD

    
Comment 22 Anton Farygin 2010-02-07 12:28:12 MSK
невозможно исправить - пакета php-gd2 уже нет, php4 в Sisyphus не поддерживается.