#25174 [Opn->Asn]: Wrong handling of readlink() in OS/Guess.php

From: Date: Sun, 24 Aug 2003 11:41:23 +0000
Subject: #25174 [Opn->Asn]: Wrong handling of readlink() in OS/Guess.php
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-20452@lists.php.net to get a copy of this message
ID: 25174 Updated by: arnaud@php.net Reported By: mk362 at mch dot osram dot de -Status: Open +Status: Assigned Bug Type: PEAR related Operating System: SuSE Linux 8.2 and 7.3 PHP Version: 4.3.1 -Assigned To: +Assigned To: cellog Previous Comments: ------------------------------------------------------------------------ [2003-08-20 06:55:18] mk362 at mch dot osram dot de Description: ------------ Hi, during upgrade of PEAR I noticed the following on my SuSE Linux 7.3: --- Release Warnings ================ w w downloading PEAR-1.2.tgz ... ...done: 83,109 bytes Warning: readlink() [http://www.php.net/function.readlink]: Invalid argument in Guess.php on line 181 upgrade-all ok: PEAR 1.2 --- This didn't happen in SuSE 8.2, but I think just because the program didn't come to that point. Looking into the code revealed that there is a readlink() call without error checking in line 181: --- if (ereg('^libc-([.*])\.so$', basename(readlink('/lib/libc.so.6')), --- and in case libc.so.6 is a regular file this will return FALSE instead of a string for basename() for both versions of my Linux. I guess one should implement proper error checking here. Possibly this was never tested anyway, because most systems might already circumvent the problem by getting $major and $minor a step earlier via the call of "/usr/bin/cpp". Marko Reproduce code: --------------- <?php error_reporting(0); require_once('OS/Guess.php'); if(readlink('/lib/libc.so.6') == FALSE) echo "Readlink call on /lib/libc.so.6 failed\n"; ?> Actual result: -------------- Content-type: text/html X-Powered-By: PHP/4.3.1 Readlink call on /lib/libc.so.6 failed ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25174&edit=1

« previous php.pear.dev (#20452) next »