PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

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.