diff options
author | monty@tik.mysql.fi <> | 2002-04-06 18:47:54 +0300 |
---|---|---|
committer | monty@tik.mysql.fi <> | 2002-04-06 18:47:54 +0300 |
commit | e857f561fd2fc2e544cba9508884c539ee789b05 (patch) | |
tree | 3e5cd66c625da56736e12e3ad5fdd667c31f4149 | |
parent | 4cae9fe9b3606ac1f9324cdb457cbd210473193a (diff) | |
download | mariadb-git-e857f561fd2fc2e544cba9508884c539ee789b05.tar.gz |
Fix for INET_NTOA(N) when N >= 2^32
-rw-r--r-- | Docs/manual.texi | 36 | ||||
-rw-r--r-- | client/mysql.cc | 1 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 19 |
3 files changed, 30 insertions, 26 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 2f0ad4f4458..f1d730f5e04 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -10936,16 +10936,10 @@ CC=gcc CXX=gcc ./configure ... (options) @enumerate @item -For OpenServer 5.0.X you need to use GDS in Skunkware 95 (95q4c). This -is necessary because GNU @code{gcc} 2.7.2 in Skunkware 97 does not have -GNU @code{as}. You can also use @code{egcs} 1.1.2 or newer -@uref{http://www.egcs.com/}. If you are using @code{egcs} 1.1.2 you have -to execute the following command: - -@example -shell> cp -p /usr/include/pthread/stdtypes.h \ -/usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/egcs-2.91.66/include/pthread/ -@end example +For OpenServer 5.0.X you need to use gcc-2.95.2p1 or newer from the +Skunkware. http://www.caldera.com/skunkware/ and choose browser +OpenServer packages or by ftp to ftp2.caldera.com in the +pub/skunkware/osr5/devtools/gcc directory. @item You need the port of GCC 2.5.x for this product and the Development @@ -11031,7 +11025,6 @@ MySQL should automatically detect FSU Pthreads and link @code{mysqld} with @code{-lgthreads -lsocket -lgthreads}. @item - The Caldera (SCO) development libraries are re-entrant in FSU Pthreads. Caldera claim sthat its libraries' functions are re-entrant, so they must be reentrant with FSU Pthreads. FSU Pthreads on OpenServer tries to use @@ -11101,7 +11094,18 @@ CC=cc CXX=CC ./configure --prefix=/usr/local/mysql If you want to use @code{gcc}, you must use @code{gcc} 2.95.2 or newer. +Caldera provides libsocket.so.2 at +@uref{ftp://stage.caldera.com/pub/security/tools} for +pre-OSR506 security fixes. Also, the telnetd fix at +@url{ftp://stage.caldera.com/pub/security/openserver/CSSA-2001-SCO.10/} +as both libsocket.so.2 and libresolv.so.1 with instructions for +installing on pre-OSR506 systems. + +It's probably a good idea to install the above patches before trying to +compile/use MySQL. + @node OS/2, BeOS, Other Unix Notes, Operating System Specific Notes + @subsection OS/2 Notes MySQL uses quite a few open files. Because of this, you should add @@ -46660,7 +46664,7 @@ Many crashes of MySQL are caused by corrupted index / data files. MySQL will update the data on disk, with the @code{write()} system call, after every SQL statement and before the client is notified about the result. (This is not true if you are running -with @code{delayed_key_writes}, in which case only the data is written.) +with @code{delay_key_write}, in which case only the data is written.) This means that the data is safe even if @code{mysqld} crashes, as the OS will ensure that the not flushed data is written to disk. You can force MySQL to sync everything to disk after every SQL command by @@ -48945,6 +48949,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}. @appendixsubsec Changes in release 4.0.2 @itemize @bullet +§item +@code{INET_NTOA()} now returns @code{NULL} if you give it a too big argument. @item Don't give an error for @code{CREATE TABLE ...(... VARCHAR(0))}. @item @@ -49381,7 +49387,7 @@ not yet 100% confident in this code. @item Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}. @item -Fixed bug in character table converts. +Fixed bug in character table converts when used with big ( > 64K) strings. @end itemize @node News-3.23.50, News-3.23.49, News-3.23.51, News-3.23.x @@ -51278,7 +51284,7 @@ Put @code{CREATE TEMPORARY TABLE} commands in the update log. @item Fixed bug in handling of masked IP numbers in the privilege tables. @item -Fixed bug with @code{delayed_key_writes} tables and @code{CHECK TABLE}. +Fixed bug with @code{delay_key_write} tables and @code{CHECK TABLE}. @item Added @code{replicate-do-db} and @code{replicate-ignore-db} options to @code{mysqld}, to restrict which databases get replicated. @@ -51672,7 +51678,7 @@ threads are reading from the table. Added @code{max_write_lock_count} variable to @code{mysqld} to force a @code{READ} lock after a certain number of @code{WRITE} locks. @item -Inverted flag @code{delayed_key_write} on @code{show variables}. +Inverted flag @code{delay_key_write} on @code{show variables}. @item Renamed @code{concurrency} variable to @code{thread_concurrency}. @item diff --git a/client/mysql.cc b/client/mysql.cc index e97e349790e..c4ed46bde02 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -340,7 +340,6 @@ int main(int argc,char *argv[]) if (!status.batch) ignore_errors=1; // Don't abort monitor signal(SIGINT, mysql_end); // Catch SIGINT to clean up - signal(SIGQUIT, mysql_end); // Catch SIGQUIT to clean up /* ** Run in interactive mode like the ingres/postgres monitor diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 602cd7e38be..9d24ca19b4c 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1921,24 +1921,23 @@ String* Item_func_inet_ntoa::val_str(String* str) uchar buf[8], *p; ulonglong n = (ulonglong) args[0]->val_int(); char num[4]; + /* - we do not know if args[0] is NULL until we have called + We do not know if args[0] is NULL until we have called some val function on it if args[0] is not a constant! + + Also return null if n > 255.255.255.255 */ - if ((null_value=args[0]->null_value)) + if ((null_value= (args[0]->null_value || n > (ulonglong) LL(4294967295)))) return 0; // Null value str->length(0); - int8store(buf,n); + int4store(buf,n); - /* - Now we can assume little endian. - We handle the possibility of an 8-byte IP address however, we do - not want to confuse those who are just using 4 byte ones - */ - for (p= buf + 8; p > buf+4 && p[-1] == 0 ; p-- ) ; + /* Now we can assume little endian. */ + num[3]='.'; - while (p-- > buf) + for (p=buf+4 ; p-- > buf ; ) { uint c = *p; uint n1,n2; // Try to avoid divisions |