Re: #19885 [NEW]: @dl() causes script to exit

From: Date: Sun, 13 Oct 2002 10:46:49 +0000
Subject: Re: #19885 [NEW]: @dl() causes script to exit
Groups: php.dev 
Request: Send a blank email to php-dev+get-89410@lists.php.net to get a copy of this message
A possible fix would be to change all occurences of E_ERROR to E_WARNING in the dl() code. That way you can always do recovery of this failure. A patch is attached which I will commit if nobody objects (with a good reason :). Derick On 13 Oct 2002 nick@macaw.demon.co.uk wrote: > From: nick@macaw.demon.co.uk > Operating system: NT4 > PHP version: 4.2.1 > PHP Bug Type: Scripting Engine problem > Bug description: @dl() causes script to exit > > Ok, so dl() doesn't yet work on windows and that's fine, but it should > still be possible to call dl() on that platform and have no ill effects > when suppressed with @. However, whilst the resultant error message is > suppressed, script execution terminates. Suppression of other errors from > dl() on Unix works as expected. > > Sniper: the following script will reproduce the problem. > > <? @dl('bug'); echo 'gub'; ?> > > -- > Edit bug report at http://bugs.php.net/?id=19885&edit=1 > -- > Try a CVS snapshot: > http://bugs.php.net/fix.php?id=19885&r=trysnapshot > Fixed in CVS: > http://bugs.php.net/fix.php?id=19885&r=fixedcvs > Fixed in release: µ/3ú©$>†)Ìl˜ÖC > http://bugs.php.net/fix.php?id=19885&r=alreadyfixed > Need backtrace: > http://bugs.php.net/fix.php?id=19885&r=needtrace > Try newer version: > http://bugs.php.net/fix.php?id=19885&r=oldversion > Not developer issue: > http://bugs.php.net/fix.php?id=19885&r=support > Expected behavior: > http://bugs.php.net/fix.php?id=19885&r=notwrong > Not enough info: > http://bugs.php.net/fix.php?id=19885&r=notenoughinfo > Submitted twice: > http://bugs.php.net/fix.php?id=19885&r=submittedtwice > register_globals: > http://bugs.php.net/fix.php?id=19885&r=globals > PHP 3 support discontinued: > http://bugs.php.net/fix.php?id=19885&r=php3 > Daylight Savings: > http://bugs.php.net/fix.php?id=19885&r=dst > IIS Stability: > http://bugs.php.net/fix.php?id=19885&r=isapi > -- --------------------------------------------------------------------------- Derick Rethans http://derickrethans.nl/ JDI Media Solutions http://www.jdimedia.nl/ ---------------------------------------------------------------------------

Index: ext/standard/dl.c =================================================================== RCS file: /repository/php4/ext/standard/dl.c,v retrieving revision 1.73 diff -u -r1.73 dl.c --- ext/standard/dl.c 5 Sep 2002 21:12:55 -0000 1.73 +++ ext/standard/dl.c 13 Oct 2002 10:36:51 -0000 @@ -66,7 +66,8 @@ #ifdef ZTS if ((strcmp(sapi_module.name, "cgi")!=0) && (strcmp(sapi_module.name, "cli")!=0)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Not supported in multithreaded Web servers - use extension statements in your php.ini"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not supported in multithreaded Web servers - use extension statements in your php.ini"); + RETURN_FALSE; } #endif @@ -78,9 +79,9 @@ convert_to_string_ex(file); if (!PG(enable_dl)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Dynamically loaded extentions aren't enabled"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Dynamically loaded extentions aren't enabled"); } else if (PG(safe_mode)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Dynamically loaded extensions aren't allowed when running in Safe Mode"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Dynamically loaded extensions aren't allowed when running in Safe Mode"); } else { php_dl(*file, MODULE_TEMPORARY, return_value TSRMLS_CC); EG(full_tables_cleanup) = 1;
« previous php.dev (#89410) next »