Bug 2645 - SEGFAULT при вызове функции imagecreatefromstring()
: SEGFAULT при вызове функции imagecreatefromstring()
Status: CLOSED WONTFIX
: Sisyphus
(All bugs in Sisyphus/php-gd2)
: unstable
: all Linux
: P4 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2003-06-09 10:24 by
Modified: 2010-02-07 12:28 (History)


Attachments
0002645-imagecreate_test.tar.gz (8.47 KB, application/x-tar)
2003-06-09 10:24, raVen
no flags Details
0002645-php-gd2-4.3.2-alt0.cvs20030405rvn1.src.rpm (7.00 KB, application/x-rpm)
2003-06-09 10:27, raVen
no flags Details
0002645-logo_odbcphp1.jpg (6.58 KB, image/jpeg)
2003-06-09 15:32, raVen
no flags Details
0002645-imagecreate_test2.php (1016 bytes, application/octet-stream)
2003-06-12 14:48, raVen
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


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

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

---
Тест прилагается в виде архива imagecreate_test.tar.gz.
------- Comment #1 From 2003-06-09 10:27:30 -------
Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2.
------- Comment #2 From 2003-06-09 10:27:30 -------
Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2.
------- Comment #3 From 2003-06-09 15:31:28 -------
Вопрос: вы пробовали только на этом файле ?
Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами.
------- Comment #4 From 2003-06-09 15:31:28 -------
Вопрос: вы пробовали только на этом файле ?
Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами.
------- Comment #5 From 2003-06-10 13:44:10 -------
Попробовал 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 From 2003-06-10 13:44:10 -------
Попробовал 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 From 2003-06-10 16:58:12 -------
Я не могу повторить ваши ошибки :(... в этом случае я вам могу посоветовать 
1) попробовать использовать эту функцию с другими форматами gif, png и т.д. и
посмотреть реакцию.

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

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

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

Похоже проблема на вашей машине так как logo_odbcphp1.jpg 100% работает на 2х
машинах(при таком же как у вас наборе пакетов). Возможно в
imagecreatefromstring() есть проблема в определении типа строки, но у меня это
проявилось _только_ на вашей картинке до ее преобразования и только на этой
функции. В любом случае пакет работает с libgd2-2.0.4-alt2  и у меня нет
оснований переходить на buildin версию этой библиотеки.
------- Comment #9 From 2003-06-11 14:37:53 -------
Посмотрите фикс моего 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 From 2003-06-11 14:37:53 -------
Посмотрите фикс моего 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 From 2003-06-11 15:11:31 -------
Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее
всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня
складывается впечатление что imagecreatefromstring() не верно определяет тип
картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить
тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg
содержится что-то из-за чего определение типа непроходит ... 
logo_odbcphp1.jpg получена путем простой операции в gimp
(индексирование->RGB и сохронение в jpg) получилась почти та же картинка.
Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально
... так что скорее всего дело именно в logo_odbcphp.jpg.
------- Comment #12 From 2003-06-11 15:11:31 -------
Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее
всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня
складывается впечатление что imagecreatefromstring() не верно определяет тип
картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить
тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg
содержится что-то из-за чего определение типа непроходит ... 
logo_odbcphp1.jpg получена путем простой операции в gimp
(индексирование->RGB и сохронение в jpg) получилась почти та же картинка.
Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально
... так что скорее всего дело именно в logo_odbcphp.jpg.
------- Comment #13 From 2003-06-12 14:47:20 -------
1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки
и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не
работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки
делаются самой gd.
------- Comment #14 From 2003-06-12 14:47:20 -------
1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки
и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не
работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки
делаются самой gd.
------- Comment #15 From 2003-06-13 17:36:58 -------
Ошибка есть будем фиксить (<a
href="http://bugs.php.net/24174">http://bugs.php.net/24174</a>)...

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

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

# 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 From 2008-06-13 13:00:39 -------
*** This bug has been confirmed by popular vote. ***
------- Comment #22 From 2010-02-07 12:28:12 -------
невозможно исправить - пакета php-gd2 уже нет, php4 в Sisyphus не
поддерживается.