Commit graph

40 commits

Author SHA1 Message Date
monty@mysql.com/narttu.mysql.fi
088e2395f1 WL#3817: Simplify string / memory area types and make things more consistent (first part)
The following type conversions was done:

- Changed byte to uchar
- Changed gptr to uchar*
- Change my_string to char *
- Change my_size_t to size_t
- Change size_s to size_t

Removed declaration of byte, gptr, my_string, my_size_t and size_s. 

Following function parameter changes was done:
- All string functions in mysys/strings was changed to use size_t
  instead of uint for string lengths.
- All read()/write() functions changed to use size_t (including vio).
- All protocoll functions changed to use size_t instead of uint
- Functions that used a pointer to a string length was changed to use size_t*
- Changed malloc(), free() and related functions from using gptr to use void *
  as this requires fewer casts in the code and is more in line with how the
  standard functions work.
- Added extra length argument to dirname_part() to return the length of the
  created string.
- Changed (at least) following functions to take uchar* as argument:
  - db_dump()
  - my_net_write()
  - net_write_command()
  - net_store_data()
  - DBUG_DUMP()
  - decimal2bin() & bin2decimal()
- Changed my_compress() and my_uncompress() to use size_t. Changed one
  argument to my_uncompress() from a pointer to a value as we only return
  one value (makes function easier to use).
- Changed type of 'pack_data' argument to packfrm() to avoid casts.
- Changed in readfrm() and writefrom(), ha_discover and handler::discover()
  the type for argument 'frmdata' to uchar** to avoid casts.
- Changed most Field functions to use uchar* instead of char* (reduced a lot of
  casts).
- Changed field->val_xxx(xxx, new_ptr) to take const pointers.

Other changes:
- Removed a lot of not needed casts
- Added a few new cast required by other changes
- Added some cast to my_multi_malloc() arguments for safety (as string lengths
  needs to be uint, not size_t).
- Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done
  explicitely as this conflict was often hided by casting the function to
  hash_get_key).
- Changed some buffers to memory regions to uchar* to avoid casts.
- Changed some string lengths from uint to size_t.
- Changed field->ptr to be uchar* instead of char*. This allowed us to
  get rid of a lot of casts.
- Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar
- Include zlib.h in some files as we needed declaration of crc32()
- Changed MY_FILE_ERROR to be (size_t) -1.
- Changed many variables to hold the result of my_read() / my_write() to be
  size_t. This was needed to properly detect errors (which are
  returned as (size_t) -1).
- Removed some very old VMS code
- Changed packfrm()/unpackfrm() to not be depending on uint size
  (portability fix)
- Removed windows specific code to restore cursor position as this
  causes slowdown on windows and we should not mix read() and pread()
  calls anyway as this is not thread safe. Updated function comment to
  reflect this. Changed function that depended on original behavior of
  my_pwrite() to itself restore the cursor position (one such case).
- Added some missing checking of return value of malloc().
- Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow.
- Changed type of table_def::m_size from my_size_t to ulong to reflect that
  m_size is the number of elements in the array, not a string/memory
  length.
- Moved THD::max_row_length() to table.cc (as it's not depending on THD).
  Inlined max_row_length_blob() into this function.
- More function comments
- Fixed some compiler warnings when compiled without partitions.
- Removed setting of LEX_STRING() arguments in declaration (portability fix).
- Some trivial indentation/variable name changes.
- Some trivial code simplifications:
  - Replaced some calls to alloc_root + memcpy to use
    strmake_root()/strdup_root().
  - Changed some calls from memdup() to strmake() (Safety fix)
  - Simpler loops in client-simple.c
2007-05-10 12:59:39 +03:00
msvensson@pilot.blaudden
7ddc33753e Use a temp variable "error" for storing return code of pclose
so the WEXITSTATUS macro can "fiddle" with it as it so pleases
2007-04-23 13:27:55 +02:00
msvensson@pilot.blaudden
714c36ce27 It's not possible to use the return value of fputs
to check if the creation of mysql_upgrade_info suceeded.
Instead use 'upgrade_already_done' to check that file was
created properly.
2007-04-23 13:07:49 +02:00
msvensson@pilot.blaudden
71e58855bf Remove comment 2007-04-20 07:20:26 +02:00
msvensson@pilot.blaudden
da93a36a0e mysql_upgrade portability fixes 2007-04-19 21:30:46 +02:00
msvensson@pilot.blaudden
41c41448b9 mysql_upgrade win fixes 2007-04-19 17:00:29 +02:00
msvensson@pilot.blaudden
4e84ab3f82 Remove the check for value_start(if any it should be *value_start) 2007-04-18 19:00:42 +02:00
msvensson@pilot.blaudden
453b6180d0 Use my_snprintf instead of snprintf 2007-04-18 18:40:22 +02:00
msvensson@pilot.blaudden
20e622dcf3 Bug#25452 mysql_upgrade access denied
- Improve mysql_upgrade and add comments describing it's logic
 - Don't look for mysql and mysqlcheck randomly, use dir where mysql_upgrade
  was started from
 - Don't look for mysql_fix_privilege_tables.sql randomly, compile
  in the mysql_fix_privilege_tables.sql file and use that to upgrade
  the system tables of MySQL
 - Check for any unexpected error returned from runnning the mysql_fix_privilege_tables SQL
 - Fix bug#26639, bug#24248 and bug#25405
2007-04-18 13:21:39 +02:00
msvensson@pilot.blaudden
f5778fc73e Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-03-01 18:12:56 +01:00
jani@ua141d10.elisa.omakaista.fi
bcbc0031eb Fixed compiler warnings. 2007-02-28 22:23:35 +02:00
msvensson@pilot.blaudden
cc7e77c5fd Bug #25074 mysql_upgrade test can't give consistent results
- Tell the programs executed by mysql_upgrade to only read
  from the defaults file generated by msyql_upgrade
 - Fix memory leaks
2007-02-28 21:05:39 +01:00
monty@mysql.com/narttu.mysql.fi
a04157fbb3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-01-22 14:04:40 +02:00
iggy@recycle.(none)
294af0a42e Merge recycle.(none):/src/bug22807/my50-bug22807
into  recycle.(none):/src/mysql-5.0-maint
2007-01-18 11:46:29 -05:00
iggy@recycle.(none)
ef5f757ac2 Bug#22807 mysql_upgrade fails when called with a basedir-path containing spaces
- Create space safe strings for system() calls in mysql_upgrade.exe
2007-01-18 11:38:05 -05:00
joerg@trift2.
cb5e2b3004 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0
2006-12-28 18:22:43 +01:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
df@kahlann.erinye.com
dc33e0f49d Merge kahlann.erinye.com:/home/df/mysql/build/mysql-5.0-build-24896
into  kahlann.erinye.com:/home/df/mysql/build/mysql-5.0-release
2006-12-20 10:40:05 +01:00
monty@mysql.com/narttu.mysql.fi
a6481aa4c7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-12-15 01:01:52 +02:00
monty@mysql.com/narttu.mysql.fi
88dd873de0 Fixed compiler warnings detected by option -Wshadow and -Wunused:
- Removed not used variables and functions
- Added #ifdef around code that is not used
- Renamed variables and functions to avoid conflicts
- Removed some not used arguments

Fixed some class/struct warnings in ndb
Added define IS_LONGDATA() to simplify code in libmysql.c

I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
2006-12-15 00:51:37 +02:00
df@kahlann.erinye.com
b9cce096a2 BUG#24896 magnus' suggestion 2006-12-12 15:47:02 +01:00
df@kahlann.erinye.com
8375e6684d BUG#24896 mysql_upgrade -p fix 2006-12-08 10:23:03 +01:00
msvensson@neptunus.(none)
c76adf6021 Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0-release
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-11-23 11:57:18 +01:00
msvensson@neptunus.(none)
176313a679 mysql_upgrade should look for .sql script also in share/ directory 2006-11-23 11:56:05 +01:00
msvensson@neptunus.(none)
2aa0d085e3 Build fixes for NetWare 2006-11-23 11:38:44 +01:00
msvensson@shellback.(none)
fc144204da Port mysql_upgrade to be tested on windows 2006-11-21 00:46:13 +01:00
msvensson@neptunus.(none)
bf8a9e544c Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-11-13 16:39:44 +01:00
msvensson@neptunus.(none)
5110d91ec3 Make it possible for .test suites to run "mysql_upgrade"
Add new test file mysql_upgrade.test
2006-11-13 13:39:49 +01:00
ted@ted.mysql.internal
bc9ca699fb Memory allocation bug fixed 2006-11-10 07:21:10 +03:00
msvensson@neptunus.(none)
f032a223b7 Fix warnings and NetWare compile failure 2006-11-09 00:17:22 +01:00
ted@ted.mysql.internal
3e6735e277 BUG#20100 fix: mysql_upgrade modified to also accept all
the communication parameters from the command line
and pass 'em correctly to both mysqlcheck and mysql
2006-11-08 05:45:50 +03:00
ted@ted.mysql.internal
cb08c534a0 Bug#21011 The [client] group header was overwritten by "password" option in upgrade_defaults file which confused mysqlcheck thus used to prevent the whole thing from running correctly when the "--password=" option is specified on mysql_upgrade command line with no corresponding "--user=" option 2006-09-15 04:01:47 +04:00
cmiller@zippy.cornsilk.net
73963de637 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/m50-maint-b21224
2006-08-23 10:47:46 -04:00
cmiller@zippy.cornsilk.net
d6b00b72eb Bug#21224: mysql_upgrade uses possibly insecure temporary files
We open for writing a known location, which is exploitable with a symlink
attack.  Now, use the EXCLusive flag, so that the presence of anything at 
that location causes a failure.  Try once to open safely, and if failure 
then remove that location and try again to open safely.  If both fail, then
raise an error.
2006-08-11 15:31:06 -04:00
holyfoot/hf@mysql.com/deer.(none)
6ebfbf561a Merge bk@192.168.21.1:mysql-5.0-kt
into  mysql.com:/home/hf/work/mysql-5.0.19452
2006-08-02 14:17:16 +05:00
holyfoot/hf@mysql.com/deer.(none)
1f064174a4 bug #20950 (mysql_upgrade looks for 'mysqlcheck' not for 'mysqlcheck.exe'
on Windows.

Code added to look for different names on Windows
2006-07-21 17:02:04 +05:00
holyfoot@deer.(none)
bfdc0cdcff bug #19452 (mysql_upgrade reads [client] section but doesn't handle [host] option 2006-07-03 14:22:39 +05:00
holyfoot@deer.(none)
aab0e9c24e Win build fix 2006-05-02 08:59:49 +05:00
holyfoot@deer.(none)
9b832153f9 Fix for Win build 2006-05-01 22:16:08 +05:00
holyfoot@deer.(none)
5a75f865c2 bug #18115 (mysql_upgrade on Windows)
pushed in 5.0
2006-04-28 09:07:25 +05:00