Just commit these.. --Jani
On Sat, 1 Mar 2003, Dave Hill wrote: >Hi all, I am back again.... > >Diff against php4-STABLE-200302241430 > (without the last patch I suggested) >Applies to 4.5.x and 5.x as well. >Affects any 64 bit OS. > >I ran into another problem after I turned optimization back on. Usually >these are hell to find, but Julien Soula (who I met through the >bug database) had encountered this already. > >This time I have a 64 bit issue with zend_parse_parameters(). >Luckily the problem is not the implementation, rather the usage. > >"s" -> needs a char *, int * >"l" -> needs a long * > >Passing the wrong type into this function will have .... unexpected >results... :-) In my case I was getting string lengths with random >values in the upper 32 bits making for strings a bit longer than >in reality. > >I did a code inspection (helped by cscope) of the 480 hits, >checking what the types were passed for s & l entries. I did this >regardless of if I actually use the code - it was just easier to >look at them all, but this does mean that I will not be compile >testing all of them.... I have 26 changed files. I hope the >diff will work against 4.5.x and later because that was a lot of >files to inspect :-p > >Where a type like size_t or an enum was used, I converted this to >a long. I did this because the function is defined as taking a >long, and in some cases (like enum) you may actually be getting >an int. Even in a case like size_t where you are probablly safe, >I have always found it to be safe then sorry. > >Interestingly enough I did find one coding error, in >ext/w32api/w32api.c there are two calls with "s|l" and only >two arguments passed into the function, so heaven help anyone >who tries to pass that optional long :-) I guess it is lucky >that I am using Apache/Unix :-) > >Per README.SUBMITTING_PATCH I am trying to copy all >of the extension owners. > >Files affected: > ./ext/domxml/php_domxml.c > ./ext/fdf/fdf.c > ./ext/ftp/php_ftp.c > ./ext/ldap/ldap.c > ./ext/mcrypt/mcrypt.c > ./ext/mhash/mhash.c > ./ext/pgsql/pgsql.c > ./ext/posix/posix.c > ./ext/dio/dio.c > ./ext/sockets/sockets.c > ./ext/standard/exec.c > ./ext/standard/file.c > ./ext/standard/fsock.c > ./ext/standard/head.c > ./ext/standard/html.c > ./ext/standard/metaphone.c > ./ext/standard/string.c > ./ext/sysvsem/sysvsem.c > ./ext/zlib/zlib.c > ./ext/bz2/bz2.c > ./ext/openssl/openssl.c > ./ext/rpc/com/com.c > ./ext/iconv/iconv.c > ./ext/mbstring/mbstring.c > ./ext/mbstring/php_mbregex.c > ./ext/zip/zip.c > ./main/output.c > > -- <- For Sale! -> -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php