Summary: | SEGFAULT при вызове функции imagecreatefromstring() | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | raVen <raven98> | ||||||||||
Component: | php-gd2 | Assignee: | 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
raVen
2003-06-09 10:24:26 MSD
Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2. Прилагаю src.rpm php-gd2, собирающегося с bundled версией gd2. Вопрос: вы пробовали только на этом файле ? Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами. Вопрос: вы пробовали только на этом файле ? Попробуйте logo_odbcphp1.jpg У меня с ним и с другими jpeg файлами все работает, также работает с другими форматами. Попробовал 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 Попробовал 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 Я не могу повторить ваши ошибки :(... в этом случае я вам могу посоветовать 1) попробовать использовать эту функцию с другими форматами gif, png и т.д. и посмотреть реакцию. 2) попробовать вывести эти файлы без использования функции imagecreatefromstring() а соответстующими imagecreatefromgif() и т.д. Похоже проблема на вашей машине так как logo_odbcphp1.jpg 100% работает на 2х машинах(при таком же как у вас наборе пакетов). Возможно в imagecreatefromstring() есть проблема в определении типа строки, но у меня это проявилось _только_ на вашей картинке до ее преобразования и только на этой функции. В любом случае пакет работает с libgd2-2.0.4-alt2 и у меня нет оснований переходить на buildin версию этой библиотеки. Я не могу повторить ваши ошибки :(... в этом случае я вам могу посоветовать 1) попробовать использовать эту функцию с другими форматами gif, png и т.д. и посмотреть реакцию. 2) попробовать вывести эти файлы без использования функции imagecreatefromstring() а соответстующими imagecreatefromgif() и т.д. Похоже проблема на вашей машине так как logo_odbcphp1.jpg 100% работает на 2х машинах(при таком же как у вас наборе пакетов). Возможно в imagecreatefromstring() есть проблема в определении типа строки, но у меня это проявилось _только_ на вашей картинке до ее преобразования и только на этой функции. В любом случае пакет работает с libgd2-2.0.4-alt2 и у меня нет оснований переходить на buildin версию этой библиотеки. Посмотрите фикс моего 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(). Посмотрите фикс моего 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(). Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня складывается впечатление что imagecreatefromstring() не верно определяет тип картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg содержится что-то из-за чего определение типа непроходит ... logo_odbcphp1.jpg получена путем простой операции в gimp (индексирование->RGB и сохронение в jpg) получилась почти та же картинка. Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально ... так что скорее всего дело именно в logo_odbcphp.jpg. Если выводится logo_odbcphp1.jpg, а logo_odbcphp.jpg нет значит проблема скорее всего в самой картинке. Я не разбирал модуль php-gd, но взглянув на код у меня складывается впечатление что imagecreatefromstring() не верно определяет тип картинки... раз imagecreatefromjpeg() ее показывает(она не пытается определить тип), значит gd работает правильно... вообщем я думаю что в logo_odbcphp.jpg содержится что-то из-за чего определение типа непроходит ... logo_odbcphp1.jpg получена путем простой операции в gimp (индексирование->RGB и сохронение в jpg) получилась почти та же картинка. Вместе с ней я пробовал еще несколько jpg файлов и они отображались нормально ... так что скорее всего дело именно в logo_odbcphp.jpg. 1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки делаются самой gd. 1) logo_odbcphp.jpg - выводится с bundled версией gd2; 2) у меня есть картинки и кроме этой, датированные 2000-м годом, работающие с bundled версией gd2 и не работающие с общесистемной; 3) новый тест: imagecreate_test2.php, где картинки делаются самой gd. Ошибка есть будем фиксить (<a href="http://bugs.php.net/24174">http://bugs.php.net/24174</a>)... edited on: 13-06 17:37 Ошибка есть будем фиксить (<a href="http://bugs.php.net/24174">http://bugs.php.net/24174</a>)... edited on: 13-06 17:37 Поскольку разработчики модуля php-gd фактически отказались от поддержки оригинальной версии библиотеки libgd и перешли на свою версию, поставляемую вместе с модулем, в следующих сборках будет использоваться именно она. В связи с таким переходом поддержки формата gif больше не будет (возможно будут отсутствовать еще некоторые возможности). Модуль php-gd1 больше собираться не будет по тем же причинам. Поскольку разработчики модуля php-gd фактически отказались от поддержки оригинальной версии библиотеки libgd и перешли на свою версию, поставляемую вместе с модулем, в следующих сборках будет использоваться именно она. В связи с таким переходом поддержки формата gif больше не будет (возможно будут отсутствовать еще некоторые возможности). Модуль php-gd1 больше собираться не будет по тем же причинам. Теперь оно утекает при использовании ImagePNG. Если использовать ImageJPEG, то все работает. Гадкое и нехорошее exntension, особенно после чтения bugs.php.net ;( список пакетов, с которыми утекает: # 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 невозможно исправить - пакета php-gd2 уже нет, php4 в Sisyphus не поддерживается. |