They'll be posted within a couple of days. Zeev
At 07:42 11/12/2001, MindHunter wrote: >Where do we get the Windows Binaries? > >Cheers >MH > >Zeev Suraski <[EMAIL PROTECTED]> wrote in message >5.1.0.14.2.20011210234236.0516bec0@localhost">news:5.1.0.14.2.20011210234236.0516bec0@localhost... > > After a lengthy QA process, PHP 4.1.0 is finally out. Download at > > http://www.php.net/downloads.php ! > > > > PHP 4.1.0 includes several other key improvements: > > - A new input interface for improved security (read below) > > - Highly improved performance in general > > - Revolutionary performance and stability improvements under Windows. The > > multithreaded server modules under Windows (ISAPI, Apache, etc.) perform >as > > much as 30 times faster under load! We want to thank Brett Brewer and his > > team in Microsoft for working with us to improve PHP for Windows. > > - Versioning support for extensions. Right now it's barely being used, >but > > the infrastructure was put in place to support separate version numbers >for > > different extensions. The negative side effect is that loading extensions > > that were built against old versions of PHP will now result in a crash, > > instead of in a nice clear message. Make sure you only use extensions > > built with PHP 4.1.0. > > - Turn-key output compression support > > - *LOTS* of fixes and new functions > > > > As some of you may notice, this version is quite historical, as it's the > > first time in history we actually incremented the middle digit! :) The >two > > key reasons for this unprecedented change were the new input interface, >and > > the broken binary compatibility of modules due to the versioning support. > > > > Following is a description of the new input mechanism. For a full list of > > changes in PHP 4.1.0, scroll down to the end of this section. > > > > ----------------------------------- > > > > SECURITY: NEW INPUT MECHANISM > > > > First and foremost, it's important to stress that regardless of anything > > you may read in the following lines, PHP 4.1.0 *supports* the old input > > mechanisms from older versions. Old applications should go on working >fine > > without modification! > > > > Now that we have that behind us, let's move on :) > > > > For various reasons, PHP setups which rely on register_globals being on > > (i.e., on form, server and environment variables becoming a part of the > > global namespace, automatically) are very often exploitable to various > > degrees. For example, the piece of code: > > > > <?php > > if (authenticate_user()) { > > $authenticated = true; > > } > > ... > > ?> > > > > May be exploitable, as remote users can simply pass on 'authenticated' as >a > > form variable, and then even if authenticate_user() returns false, > > $authenticated will actually be set to true. While this looks like a > > simple example, in reality, quite a few PHP applications ended up being > > exploitable by things related to this misfeature. > > > > While it is quite possible to write secure code in PHP, we felt that the > > fact that PHP makes it too easy to write insecure code was bad, and we've > > decided to attempt a far-reaching change, and deprecate > > register_globals. Obviously, because the vast majority of the PHP code in > > the world relies on the existence of this feature, we have no plans to > > actually remove it from PHP anytime in the foreseeable future, but we've > > decided to encourage people to shut it off whenever possible. > > > > To help users build PHP applications with register_globals being off, >we've > > added several new special variables that can be used instead of the old > > global variables. There are 7 new special arrays: > > > > $_GET - contains form variables sent through GET > > $_POST - contains form variables sent through POST > > $_COOKIE - contains HTTP cookie variables > > $_SERVER - contains server variables (e.g., REMOTE_ADDR) > > $_ENV - contains the environment variables > > $_REQUEST - a merge of the GET variables, POST variables and Cookie > > variables. In other words - all the information that is coming from the > > user, and that from a security point of view, cannot be trusted. > > $_SESSION - contains HTTP variables registered by the session module > > > > Now, other than the fact that these variables contain this special > > information, they're also special in another way - they're automatically > > global in any scope. This means that you can access them anywhere, >without > > having to 'global' them first. For example: > > > > function example1() > > { > > print $_GET["name"]; // works, 'global $_GET;' is not necessary! > > } > > > > would work fine! We hope that this fact would ease the pain in migrating > > old code to new code a bit, and we're confident it's going to make writing > > new code easier. Another neat trick is that creating new entries in the > > $_SESSION array will automatically register them as session variables, as > > if you called session_register(). This trick is limited to the session > > module only - for example, setting new entries in $_ENV will *not* perform > > an implicit putenv(). > > > > PHP 4.1.0 still defaults to have register_globals set to on. It's a > > transitional version, and we encourage application authors, especially > > public ones which are used by a wide audience, to change their >applications > > to work in an environment where register_globals is set to off. Of >course, > > they should take advantage of the new features supplied in PHP 4.1.0 that > > make this transition much easier. > > > > As of the next semi-major version of PHP, new installations of PHP will > > default to having register_globals set to off. No worries! Existing > > installations, which already have a php.ini file that has register_globals > > set to on, will not be affected. Only when you install PHP on a brand new > > machine (typically, if you're a brand new user), will this affect you, and > > then too - you can turn it on if you choose to. > > > > Note: Some of these arrays had old names, e.g. $HTTP_GET_VARS. These > > names still work, but we encourage users to switch to the new shorter, and > > auto-global versions. > > > > Thanks go to Shaun Clowes ([EMAIL PROTECTED]) for pointing out > > this problem and for analyzing it. > > > > ------------------------------------- > > > > FULL LIST OF CHANGES > > > > 10 Dec 2001, Version 4.1.0 > > - Worked around a bug in the MySQL client library that could cause PHP to >hang > > when using unbuffered queries. (Zeev) > > - Fixed a bug which caused set_time_limit() to affect all subsequent >requests > > to running Apache child process. (Zeev) > > - Removed the sablotron extension in favor of the new XSLT extension. > > (Sterling) > > - Fixed a bug in WDDX deserialization that would sometimes corrupt the >root > > element if it was a scalar one. (Andrei) > > - Make ImageColorAt() and ImageColorsForIndex() work with TrueColor >images. > > (Rasmus) > > - Fixed a bug in preg_match_all() that would return results under improper > > indices in certain cases. (Andrei) > > - Fixed a crash in str_replace() that would happen if search parameter was >an > > array and one of the replacements resulted in subject string being >empty. > > (Andrei) > > - Fixed MySQL extension to work with MySQL 4.0. (Jani) > > - Fixed a crash bug within Cobalt systems. Patch by [EMAIL PROTECTED] >(Jani) > > - Bundled Dan Libby's xmlrpc-epi extension. > > - Introduced extension version numbers. (Stig) > > - Added version_compare() function. (Stig) > > - Fixed pg_last_notice() (could cause random crashes in PostgreSQL > > applications, even if they didn't use pg_last_notice()). (Zeev) > > - Fixed DOM-XML's error reporting, so E_WARNING errors are given instead >of > > E_ERROR error's, this allows you to trap errors thrown by DOMXML >functions. > > (Sterling) > > - Fixed a bug in the mcrypt extension, where list destructors were not > > properly being allocated. (Sterling) > > - Better Interbase blob, null and error handling. (Patch by Jeremy Bettis) > > - Fixed a crash bug in array_map() if the input arrays had string or > > non-sequential keys. Also modified it so that if a single array is >passed, > > its keys are preserved in the resulting array. (Andrei) > > - Fixed a crash in dbase_replace_record. (Patch by >[EMAIL PROTECTED]) > > - Fixed a crash in msql_result(). (Zeev) > > - Added support for single dimensional SafeArrays and Enumerations. > > Added an is_enum() function to check if a component implements an > > enumeration. (Alan, Harald) > > - Fixed a bug in dbase_get_record() and dbase_get_record_with_names(). > > boolean fields are now returned correctly. > > Patch by Lawrence E. Widman <[EMAIL PROTECTED]> (Jani) > > - Added --version option to php-config. (Stig) > > - Improved support for thttpd-2.21b by incorporating patches for all known > > bugs. (Sascha) > > - Added ircg_get_username, a roomkey argument to ircg_join, error fetching > > infrastructure, a tokenizer to speed up message processing, and fixed > > a lot of bugs in the IRCG extension. (Sascha) > > - Improved speed of the serializer/deserializer. (Thies, Sascha) > > - Floating point numbers are better detected when converting from strings. > > (Zeev, Zend Engine) > > - Replaced php.ini-optimized with php.ini-recommended. As the name >implies, > > it's warmly recommended to use this file as the basis for your PHP > > configuration, rather than php.ini-dist. (Zeev) > > - Restore xpath_eval() and php_xpathptr_eval() for 4.0.7. There > > are still some known leaks. (Joey) > > - Added import_request_variables(), to allow users to safely import form > > variables to the global scope (Zeev) > > - Introduced a new $_REQUEST array, which includes any GET, POST or COOKIE > > variables. Like the other new variables, this variable is also >available > > regardless of the context. (Andi & Zeev) > > - Introduced $_GET, $_POST, $_COOKIE, $_SERVER and $_ENV variables, which > > deprecate the old $HTTP_*_VARS arrays. In addition to be much shorter >to > > type - these variables are also available regardless of the scope, and > > there's no need to import them using the 'global' statement. (Andi & >Zeev) > > - Added vprintf() and vsprintf() functions that allow passing all >arguments > > after format as an array. (Andrei) > > - Added support for GD2 image type for ImageCreateFromString() (Jani) > > - Added ImageCreateFromGD(), ImageCreateFromGD2(), >ImageCreateFromGD2part(), > > ImageGD() and ImageGD2() functions (Jani) > > - addcslashes now warns when charlist is invalid. The returned string > > remained the same (Jeroen) > > - Added optional extra argument to gmp_init(). The extra argument > > indicates which number base gmp should use when converting a > > string to the gmp-number. (Troels) > > - Added the Cyrus-IMAP extension, which allows a direct interface to >Cyrus' > > more advanced capabilities. (Sterling) > > - Enhance read_exif_data() to support multiple comment tags (Rasmus) > > - Fixed a crash bug in array_map() when NULL callback was passed in. >(Andrei) > > - Change from E_ERROR to E_WARNING in the exif extension (Rasmus) > > - New pow() implementation, which returns an integer when possible, > > and warnings on wrong input (jeroen) > > - Added optional second parameter to trim, chop and ltrim. You can > > now specify which characters to trim (jeroen) > > - Hugely improved the performance of the thread-safe version of PHP, >especially > > under Windows (Andi & Zeev) > > - Improved request-shutdown performance significantly (Andi & Zeev, Zend > > Engine) > > - Added a few new math functions. (Jesus) > > - Bump bundled expat to 1.95.2 (Thies) > > - Improved the stability of OCIPlogon() after a database restart. (Thies) > > - Fixed __FILE__ in the CGI & Java servlet modes when used in the main >script. > > It only worked correctly in included files before this fix (Andi) > > - Improved the Zend hash table implementation to be much faster (Andi, >Zend > > Engine) > > - Updated PHP's file open function (used by include()) to check in the >calling > > script's directory in case the file can't be found in the include_path > > (Andi) > > - Fixed a corruption bug that could cause constants to become corrupted, >and > > possibly prevent resources from properly being cleaned up at the end of > > a request (Zeev) > > - Added optional use of Boyer-Moore algorithm to str_replace() (Sascha) > > - Fixed and improved shared-memory session storage module (Sascha) > > - Add config option (always_populate_raw_post_data) which when enabled > > will always populate $HTTP_RAW_POST_DATA regardless of the post mime > > type (Rasmus) > > - Added support for socket and popen file types to ftp_fput (Jason) > > - Fixed various memory leaks in the LDAP extension (Stig Venaas) > > - Improved interactive mode - it is now available in all builds of PHP, >without > > any significant slowdown (Zeev, Zend Engine) > > - Fixed crash in iptcparse() if the supplied data was bogus. (Thies) > > - Fixed return value for a failed snmpset() - now returns false (Rasmus) > > - Added hostname:port support to snmp functions ([EMAIL PROTECTED], >Rasmus) > > - Added fdf_set_encoding() function (Masaki YATSU, Rasmus) > > - Reversed the destruction-order of resources. This fixes the reported >OCI8 > > "failed to rollback outstanding transactions!" message (Thies, Zend >Engine) > > - Added option for returning XMLRPC fault packets. (Matt Allen, Sascha > > Schumann) > > - Improved range() function to support range('a','z') and range(9,0) types >of > > ranges. (Rasmus) > > - Added getmygid() and safe_mode_gid ini directive to allow safe mode to >do > > a gid check instead of a uid check. (James E. Flemer, Rasmus) > > - Made assert() accept the array(&$obj, 'methodname') syntax. (Thies) > > - Made sure that OCI8 outbound variables are always zero-terminated. >(Thies) > > - Fixed a bug that allowed users to spawn processes while using the 5th > > parameter to mail(). (Derick) > > - Added nl_langinfo() (when OS provides it) that returns locale. > > - Fixed a major memory corruption bug in the thread safe version. (Zeev) > > - Fixed a crash when using the CURLOPT_WRITEHEADER option. (Sterling) > > - Added optional suffix removal parameter to basename(). (Hartmut) > > - Added new parameter UDM_PARAM_VARDIR ha in Udm_Set_Agent_Param() >function to > > support alternative search data directory. This requires mnogoSearch >3.1.13 > > or later. > > - Fixed references in sessions. This doesn't work when using the WDDX > > session-serializer. Also improved speed of sessions. (Thies) > > - Added new experimental module pcntl (Process Control). (Jason) > > - Fixed a bug when com.allow_dcom is set to false. (phanto) > > - Added a further parameter to the constructor to load typelibs from file >when > > instantiating components (e.g. DCOM Components without local >registration). > > (phanto) > > - Added the possibility to specify typelibs by full name in the typelib >file > > (Alan Brown) > > - Renamed the ZZiplib extension to the Zip extension, function names have >also > > changed accordingly, functionality, has stayed constant. (Sterling) > > - Made the length argument (argument 2) to pg_loread() optional, if not > > specified data will be read in 1kb chunks. (Sterling) > > - Added a third argument to pg_lowrite() which is the length of the data >to > > write. (Sterling) > > - Added the CONNECTION_ABORTED, CONNECTION_TIMEOUT and CONNECTION_NORMAL > > constants. (Zak) > > - Assigning to a string offset beyond the end of the string now >automatically > > increases the string length by padding it with spaces, and performs the > > assignment. (Zeev, Zend Engine) > > - Added warnings in case an uninitialized string offset is read. (Zeev, >Zend > > Engine) > > - Fixed a couple of overflow bugs in case of very large negative integer > > numbers. (Zeev, Zend Engine) > > - Fixed a crash bug in the string-offsets implementation (Zeev, Zend >Engine) > > - Improved the implementation of parent::method_name() for classes which >use > > run-time inheritance. (Zeev, Zend Engine) > > - Added 'W' flag to date() function to return week number of year using >ISO > > 8601 standard. (Colin) > > - Made the PostgreSQL driver do internal row counting when iterating >through > > result sets. ([EMAIL PROTECTED]) > > - Updated ext/mysql/libmysql to version 3.23.39; Portability fixes, minor > > bug fixes. ([EMAIL PROTECTED]) > > - Added get_defined_constants() function to return an associative array of > > constants mapped to their values. (Sean) > > - New mailparse extension for parsing and manipulating MIME mail. (Wez) > > - Define HAVE_CONFIG_H when building standalone DSO extensions. (Stig) > > - Added the 'u' modifier to printf/sprintf which prints unsigned longs. > > (Derick) > > - Improved IRIX compatibility. (Sascha) > > - Fixed crash bug in bzopen() when specifying an invalid file. (Andi) > > - Fixed bugs in the mcrypt extension that caused crashes. (Derick) > > - Added the IMG_ARC_ROUNDED option for the ImageFilledArc() function, >which > > specified that the drawn curve should be rounded. (Sterling) > > - Updated the sockets extension to use resources instead of longs for the > > socket descriptors. The socket functions have been renamed to conform >with > > the PHP standard instead of their C counterparts. The sockets >extension is > > now usable under Win32. (Daniel) > > - Added disk_total_space() to return the total size of a filesystem. > > (Patch from Steven Bower) > > - Renamed diskfreespace() to disk_free_space() to conform to established > > naming conventions. (Jon) > > - Fixed #2181. Now zero is returned instead of an unset value for > > 7-bit encoding and plain text body type. (Vlad) > > - Fixed a bug in call_user_*() functions that would not allow calling > > functions/methods that accepted parameters by reference. (Andrei) > > - Added com_release($obj) and com_addref($obj) functions and the related >class > > members $obj->Release() and $obj->AddRef() to gain more control over >the > > used > > COM components. (phanto) > > - Added an additional parameter to dotnet_load to specify the codepage >(phanto) > > - Added peak memory logging. Use --enable-memory-limit to create a new >Apache > > 1.x logging directive "{mod_php_memory_usage}n" which will log the peak > > amount of memory used by the script. (Thies) > > - Made fstat() and stat() provide identical output by returning a >numerical and > > string indexed array. (Jason) > > - Fixed memory leak upon re-registering constants. (Sascha, Zend Engine) > > > > ----------------------------------- > > > > Zeev > > > > > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] >To contact the list administrators, e-mail: [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]