PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » PEAR » PEAR_Frontend_Gtk2 » Bug #9353

crash when selecting channel pear.php.net

Details

Submitted2006-11-16 14:46 UTC
Fromm dot quinton at gmail dot com
Assignedcweiske
StatusClosed
PackagePEAR_Frontend_Gtk2
PHP Version5.1.4
OSlinux - whitebox 3.0
Roadmaps(Not assigned)

Comments

[2006-11-16 14:46 UTC] m dot quinton at gmail dot com

Description:
------------
When trying to get package listing with Pear Gtk2 installer, there is a crash (error) during package reading (in the middle). Exact error is :

Fatal error: Cannot use string offset as an array in /local/user/usr/stow/php-5.1.4/lib/php/PEAR/Frontend/Gtk2/Packages.php on line 313

- there is no probleme at all with Gnope and pecl.php.net.
- this error also occures when preferred_state beta
and when clearing (rm -fr) pear cache.

lines context (line 313 is starred) :

foreach ($arRemotePackages as $strId => $dontuseit) {
if ($callback !== null) {
call_user_func_array($callback, array($nNumberPackages, ++$nCurrentPackageNumber));
}
$package = $arRemotePackages[$strId];
$inf = PEAR_Frontend_Gtk2_Packages::retrieveCacheFirst(
PEAR_Frontend_Gtk2_Packages::getInfoUrl($strBaseUrl, $package->getName()),
$config,
$rest,
$bWorkOffline,
$bUseCache
);
if (PEAR::isError($inf)) {
if (strpos(strtolower($inf->message), '404 not found') !== false) {
//FIXME: That is a hack because the error hasn't an error code yet.
//We continue because it's an 404 error, maybe the package isn't there yet.
//Happens if you installed new packages which haven't been uploaded to the server yet.
$package->setCategory($package->guessCategory($package->getName()));
continue;
}
throw new Exception($inf->getMessage());
}
*** here *** if ($inf['ca']['_content'] !== null) {
$package->setCategory( $inf['ca']['_content']);
}
$package->setSummary( $inf['s']);
$package->setDescription($inf['d']);
$package->setLatestVersion(
//FIXME: use preferred_state config option
PEAR_Frontend_Gtk2_Packages::retrieveCacheFirst(
PEAR_Frontend_Gtk2_Packages::getLatestVersionUrl($strBaseUrl, $package->getName()),
$config,
$rest,
$bWorkOffline,
$bUseCache
)
);
}

$package value when error occures :

PEAR_Frontend_Gtk2_Package Object
(
[bFullyLoaded:protected] =>
[strName:protected] => Math_Basex
[strChannel:protected] => pear.php.net
[strCategory:protected] =>
[strSummary:protected] =>
[strDescription:protected] =>
[strVersionLatest:protected] =>
[strVersionInstalled:protected] =>
)

my local configuration :

[mquinton@kari cache]$ pear config-show
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels auto_discover <not set>
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy http://sirius.stna.dgac.fr:8080/
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pear.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir /local/usr/stow/php-5.1.4/bin
PEAR documentation directory doc_dir /local/usr/stow/php-5.1.4/lib/php/doc
PHP extension directory ext_dir /local/usr/stow/php-5.1.4/lib/php/extensions/no-debug-non-zts-20050922
PEAR directory php_dir /local/usr/stow/php-5.1.4/lib/php
PEAR Installer cache directory cache_dir /tmp/pear/cache
PEAR data directory data_dir /local/usr/stow/php-5.1.4/lib/php/data
PEAR Installer download download_dir /tmp/pear/cache
directory
PHP CLI/CGI binary php_bin /local/usr/stow/php-5.1.4/bin/php
php.ini location php_ini <not set>
PEAR Installer temp directory temp_dir /tmp/pear/temp
PEAR test directory test_dir /local/usr/stow/php-5.1.4/lib/php/test
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state devel
Unix file mask umask 22
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin /usr/bin/gpg
Signature Key Directory sig_keydir /local/usr/stow/php-5.1.4/etc/pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename /repertoirespersonnels/user/mquinton/.pearrc
System Configuration File Filename /local/usr/stow/php-5.1.4/etc/pear.conf

[2006-11-16 14:57 UTC] m dot quinton at gmail dot com

this error is from internet proxy filtering. Requested package contains "sex" letters. So this url is filtered.

PEAR_Frontend_Gtk2_Packages::getInfoUrl() need extra controls.