summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@tik.mysql.fi>2002-04-06 18:47:54 +0300
committerunknown <monty@tik.mysql.fi>2002-04-06 18:47:54 +0300
commit40a27740878e945bbdf667c3735a41727d343ed1 (patch)
tree3e5cd66c625da56736e12e3ad5fdd667c31f4149
parent1f38c3a93d2bd5c2d38d63eb283c62647be0343a (diff)
downloadmariadb-git-40a27740878e945bbdf667c3735a41727d343ed1.tar.gz
Fix for INET_NTOA(N) when N >= 2^32
Docs/manual.texi: SCO updates client/mysql.cc: Don't die on SIGQUIT
-rw-r--r--Docs/manual.texi36
-rw-r--r--client/mysql.cc1
-rw-r--r--sql/item_strfunc.cc19
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