Commit Graph

273 Commits

Author SHA1 Message Date
Andrey Hristov
d53337bbe7 OOM stability fixes 2010-05-04 14:02:42 +00:00
Andrey Hristov
447c693b2d Add possibility to control the allocator in when PHP is compiled
with debug
2010-05-04 13:49:43 +00:00
Andrey Hristov
5ca71c00f5 Handle OOM in mysqlnd_res::store_result_fetch_data 2010-05-03 19:32:07 +00:00
Andrey Hristov
9c276eee6c Handle OOM in mysqlnd_fetch_row_buffered_c() 2010-05-03 19:09:45 +00:00
Andrey Hristov
2b00096004 Handle OOM in mysqlnd_fetch_row_unbuffered_c() 2010-05-03 19:02:48 +00:00
Andrey Hristov
2b18a3ff93 Handle OOM stemming from mysqlnd_result_init in the same
function and up the stack.
2010-05-03 18:50:47 +00:00
Andrey Hristov
7de2607c12 Handle gracefully OOM in mysqlnd_mempool_create and up the stack 2010-05-03 17:07:18 +00:00
Andrey Hristov
c32bae720c Handle OOM in block_alloc_get_chunk, and also in the caller
in mysqlnd_wireprotocol.c
2010-05-03 16:20:46 +00:00
Andrey Hristov
ec0fe858c6 Remove unused parameter 2010-05-03 16:09:05 +00:00
Andrey Hristov
57059d4e31 One more case to handle in case of OOM, in block_alloc_resize_chunk 2010-05-03 14:26:08 +00:00
Andrey Hristov
8e8348a4b0 Handle OOM when resizing blocks during data fetch 2010-05-03 14:16:04 +00:00
Andrey Hristov
2da3f5ba90 Fix compiler warnings - unused functions 2010-05-03 13:51:30 +00:00
Andrey Hristov
333581fcb4 Better handing of OOM in mysqlnd::set_client_option 2010-05-03 13:45:58 +00:00
Andrey Hristov
3010485d44 Handle OOM cases, in case of persistent connections this is real
and the Zend MM won't help.
2010-04-29 15:49:51 +00:00
Andrey Hristov
aec94a464b Fix valgrind warning, usage of nirvana memory 2010-04-29 15:17:44 +00:00
Andrey Hristov
ac172db01f Fix possible crashes in case of OOM, as well as a leak. 2010-04-29 13:13:41 +00:00
Andrey Hristov
6c1a2831f6 Fix crash if OOM and USE_ZEND_ALLOC=0 2010-04-29 11:49:08 +00:00
Andrey Hristov
6d88d1a75e Fixed few buffer overflows reported by Stefan Esser. 2010-04-28 15:35:52 +00:00
Andrey Hristov
16d5d5966e const-ify fields 2010-04-28 12:29:13 +00:00
Andrey Hristov
8546225b6e Fixed very rare memory leak in mysqlnd, when binding thousands of columns 2010-04-27 12:32:34 +00:00
Andrey Hristov
194444b293 Of course, 64*4 is 256, not 1024 2010-04-27 11:02:51 +00:00
Andrey Hristov
4b658e3ded Move the macro to mysqlnd_enum_n_def.h, because it can be reused
in other places. Also, premultiply the values by 4 and add some
reserve for future releases of the server.
2010-04-27 10:53:27 +00:00
Andrey Hristov
207a72ca0e Fixed buffer overflow in mysqlnd_change_user 2010-04-27 08:26:24 +00:00
Andrey Hristov
6f6909e582 Fixed possible buffer overflow in mysqlnd_conn__list_fields. 2010-04-27 08:02:08 +00:00
Kalle Sommer Nielsen
dd8e59da8f Removed safe_mode
* Removed ini options, safe_mode*
 * Removed --enable-safe-mode --with-exec-dir configure options on Unix
 * Updated extensions, SAPI's and core
 * php_get_current_user() is now declared in main.c, thrus no need to include safe_mode.h anymore
2010-04-26 23:53:30 +00:00
Andrey Hristov
3dbf6acd7b Change the way the allocator is called - through an abstraction
to give the possibility of pluggability. Thanks to the macros
already used the changes are not pervasive.
2010-04-22 16:28:50 +00:00
Andrey Hristov
e5dcac245c Fix problem spotted by Felipe. 2010-04-22 16:22:56 +00:00
Andrey Hristov
7c5259cca3 adding what last commit was missing 2010-04-22 15:14:45 +00:00
Andrey Hristov
1ed3da294b Remove dead code and add possibility to fine tune the size of
a mempool (used for result sets).
2010-04-22 15:07:40 +00:00
Andrey Hristov
12c9bde2e7 Add the posibility to switch off the compilation of statistics
collection, for those who want to optimize the last percent of their
binaries.
2010-04-22 13:03:44 +00:00
Andrey Hristov
6dec27d58b Hardening the reads of mysqlnd.
All packets but the row data packet are read into preallocated buffer,
either on the stack or on the heap (cmd_buffer). The size of the buffer
is always checked to skip buffer overruns. Only up to the size of the
buffer is stored into the buffer but packet->header.size has the size of
all data sent. In this case network layer bails.

This patch hardenes the reads, so if packets are malformed and shorter
than they should be there will be no further reads in the buffer.
In short, detection of malformed packets.
2010-04-20 20:02:32 +00:00
Andrey Hristov
f2d23c7f37 put the trigger in the right place 2010-04-20 19:09:56 +00:00
Andrey Hristov
eda9959e36 It is possible that change user tries an user who has old password.
Instead of error message that doesn't say much there is more information now.
2010-04-20 18:04:24 +00:00
Felipe Pena
6d951e2ded - Fix copyrights 2010-04-20 13:50:34 +00:00
Andrey Hristov
fb76a3f2db Last batch of int/uint comparison fixes 2010-04-15 15:58:26 +00:00
Andrey Hristov
7f43fc3b02 More int/uint comparison warning fixes 2010-04-15 15:53:58 +00:00
Andrey Hristov
f40779091c Fix some int/uint comparison warnings 2010-04-15 15:28:00 +00:00
Andrey Hristov
8912e8f04e Remove unused file 2010-04-15 15:22:56 +00:00
Andrey Hristov
6f0adc06fa more WS 2010-04-15 15:16:29 +00:00
Andrey Hristov
a9880e78c6 CS + WS changes 2010-04-15 12:55:04 +00:00
Andrey Hristov
c04f752625 Fix for bug#49234 method not found ssl_set
Patch was tested and compiles on Windows. (Thanks Kalle)
2010-04-15 11:01:30 +00:00
Andrey Hristov
c0531d8db0 Fixint INT_AND_FLOAT_AS native. It was working ok on 64bit but
because on 32bit SIZEOF_LONG is 4 and INT64 from MySQL is 8 everything
was converted to string, even if it was able to put it in a long.
This closes Request #50651 Native type cast returns wrong result
2010-04-08 13:20:37 +00:00
Andrey Hristov
92698a331f Fix the Windows build (void* arithmetic) as well as --disable-zlib
build.
2010-04-06 18:14:23 +00:00
Andrey Hristov
3cb852fe6b Stricly C 2010-04-06 14:33:55 +00:00
Andrey Hristov
b8484a2e89 Recommit with an Windows build fix:
Fix inconsistencies
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
  by it.
- add a mode to track memory usage (malloc/free)
2010-04-06 13:28:23 +00:00
Andrey Hristov
d339672e45 Fix inconsistencies
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
  by it.
- add a mode to track memory usage (malloc/free)
2010-04-01 13:26:41 +00:00
Andrey Hristov
ffb8df30ab Better fix for bug #51347 mysqli_close / connection memory leak 2010-04-01 12:46:21 +00:00
Andrey Hristov
4735c71283 Fixed bug #51347 mysqli_close / connection memory leak
Streams API registers every stream as resource, which lands then
in EG(regular_list), however doesn't clean that when the stream is
closed. At the end this is a para-leak. At the end of the script
all memory is cleaned, however this is a problem for long runnig
scripts that open connections. For every opened and closed connection
about 150 Bytes on 32bit and 250 Bytes on 64bit will be "lost",
according to memory_get_usage().
2010-04-01 11:50:24 +00:00
Andrey Hristov
4870cac70e Make it coupled - what is allocated with mnd_ should be freed
with mnd_ and vice versa.
Added mnd_pestrndup and mnd_pestrdup, which wrap the normal
calls to be able to track this calls.
Fixed some failing tests.
2010-03-29 17:04:16 +00:00
Andrey Hristov
7868bca437 Fix tests that fail when the MySQL's socket file is not /tmp/mysql.sock
as it is in when compiled from source and the default for mysqlnd.
SuSE for example uses /var/run/mysql/mysql.sock . Also, sql.safe_mode
(ext/mysql and ingres) needs the socket.
Fix possible crashes in mysqlnd. When packets are shorter, functions should
return error.
2010-03-26 16:58:25 +00:00