Commit e857f561 authored by monty@tik.mysql.fi's avatar monty@tik.mysql.fi

Fix for INET_NTOA(N) when N >= 2^32

parent 4cae9fe9
......@@ -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
......@@ -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
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment