- Aligned copyright headers and text with 5.0
- Don't strip binaries on SuSE 9
- Formatting alignment with spec file in 5.0
- Run full test on "normal" binary, and less on "Max"
- Let test runs on "Max" identify the runs with "max" and "max+ps"
running queries
Bug#33976: buffer overflow of variable time_buff in function com_go()
An internal buffer was too short. Overextending could smash the
stack on some architectures and cause SEGVs. This is not a problem
that could be exploited to run arbitrary code.
To fix, I expanded one buffer to cover all the size that could be
written to (we know the abolute max).
Fix the code to get the "libgcc" file name so that the failure of Intel's ICC
to provide this information does not cause any problems.
This fixes bug#33536 Option "--print-libgcc-file" does not work with ICC compiler
Bug#31030 rpl000015.test fails if $MYSQL_TCP_PORT != 3306
Note:
This bug does not occur in MySQL 5.0 and up, because
ChangeSet 1.2328.2.1 2006/11/27 for MySQL 5.0 prevents this.
The 5.0 fix uses the environment variable DEFAULT_MASTER_PORT
which is set by mysql-test-run.pl.
mysql-test-run.pl in 4.1 does not set this variable.
There are two alternatives:
1) Backport the 5.0 fix for this test including modifications
to mysql-test-run.pl and mysql-test-run-shell.
This is a not acceptable impact on an old MySQL version.
2) Fix the problem different than in 5.0 like in the current
ChangeSet + do not apply these changes when upmerging to 5.0
Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
So we need to enable specific mode for them so IRIX will do use
software round to handle such numbers.
strmake() calls are easy to get wrong. Add checks in extra
debug mode to identify possible exploits.
Remove some dead code.
Remove some off-by-one errors identified with new checks.
SPATIAL key is fine actually, but the chk_key() function
mistakenly returns error. It tries to compare checksums
of btree and SPATIAL keys while the checksum for the SPATIAL isn't
calculated (always 0). Same thing with FULLTEXT keys is handled
using full_text_keys counter, so fixed by counting both
SPATIAL and FULLTEXT keys in that counter.
max_length parameter for BLOB-returning functions must be big enough
for any possible content. Otherwise the field created for a table
will be too small.
When we insert a record into MYISAM table which is almost 'full',
we first write record data in the free space inside a file, and then
check if we have enough space after the end of the file.
So if we don't have the space, table will left corrupted.
Similar error also happens when we updata MYISAM tables.
Fixed by modifying write_dynamic_record and update_dynamic_record functions
to check for free space before writing parts of a record
in mysql_creata_like_table() we 'downcase' the complete path to the
.frm file. It works fine in standalone case as there usually
we only have './' as a path to the datahome, but doesn't work in
the embedded server where we add the real path there, so if a
directory has uppercase letters in it's name, it won't be found.
Fixed by 'downcasing' only database/table pair.