Commit graph

413 commits

Author SHA1 Message Date
Andrey Hristov
8fd0407b3a Fix compiler warnings - unused functions 2010-05-03 13:51:30 +00:00
Andrey Hristov
d0abd9510e Better handing of OOM in mysqlnd::set_client_option 2010-05-03 13:45:58 +00:00
Andrey Hristov
a3168a398c 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
2c38266536 Fix valgrind warning, usage of nirvana memory 2010-04-29 15:17:44 +00:00
Andrey Hristov
fa40847263 Fix possible crashes in case of OOM, as well as a leak. 2010-04-29 13:13:41 +00:00
Andrey Hristov
9b468d9577 Fix crash if OOM and USE_ZEND_ALLOC=0 2010-04-29 11:49:08 +00:00
Andrey Hristov
ad4b429633 Fixed few buffer overflows reported by Stefan Esser. 2010-04-28 15:35:52 +00:00
Andrey Hristov
1838fcc7b0 const-ify fields 2010-04-28 12:29:13 +00:00
Andrey Hristov
3d900d4cad Fixed very rare memory leak in mysqlnd, when binding thousands of columns 2010-04-27 12:32:34 +00:00
Andrey Hristov
eba793fa1f Of course, 64*4 is 256, not 1024 2010-04-27 11:02:51 +00:00
Andrey Hristov
be5920b3e9 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
5bb74e6562 Fixed buffer overflow in mysqlnd_change_user 2010-04-27 08:26:24 +00:00
Andrey Hristov
c92c788c85 Fixed possible buffer overflow in mysqlnd_conn__list_fields. 2010-04-27 08:02:08 +00:00
Kalle Sommer Nielsen
cb30330800 Merge safe_mode changes into extensions that are in sync in both branches 2010-04-26 23:55:03 +00:00
Andrey Hristov
4842f96e2d 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
5431f235db Fix problem spotted by Felipe. 2010-04-22 16:22:56 +00:00
Andrey Hristov
f71444c756 adding what last commit was missing 2010-04-22 15:14:45 +00:00
Andrey Hristov
34e56fea0b 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
2556733787 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
691522780f 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
efa0077e08 put the trigger in the right place 2010-04-20 19:09:56 +00:00
Andrey Hristov
804b950562 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
a175419f84 - Fix copyrights 2010-04-20 13:50:34 +00:00
Andrey Hristov
664b2389ca Last batch of int/uint comparison fixes 2010-04-15 15:58:26 +00:00
Andrey Hristov
76d64590b0 More int/uint comparison warning fixes 2010-04-15 15:53:58 +00:00
Andrey Hristov
cdac2b4ecf Fix some int/uint comparison warnings 2010-04-15 15:28:00 +00:00
Andrey Hristov
6cc57e0d0d Remove unused file 2010-04-15 15:22:56 +00:00
Andrey Hristov
48e413eb28 more WS 2010-04-15 15:16:29 +00:00
Andrey Hristov
6aa682f564 CS + WS changes 2010-04-15 12:55:04 +00:00
Andrey Hristov
dd9fc198ce 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
3bd2faff8c 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
798103d4e0 Fix the Windows build (void* arithmetic) as well as --disable-zlib
build.
2010-04-06 18:14:23 +00:00
Andrey Hristov
dda0320c5c Stricly C 2010-04-06 14:33:55 +00:00
Andrey Hristov
aa8f43fad9 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
Pierre Joye
96e2651fa2 - revert revision 297277, break the builds (declaration must go 1st, size of void * and other known situations). Also Johannes, can you check that commit pls? Thought we were in bugs fixing only for 5.3 2010-04-01 20:21:50 +00:00
Andrey Hristov
f534df710e 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
a712d9cefb Better fix for bug #51347 mysqli_close / connection memory leak 2010-04-01 12:46:21 +00:00
Andrey Hristov
311ab2c822 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
94cd357f5b 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
ec36ac1610 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
Andrey Hristov
9f20131311 fix build failure after recent commit by Kalle 2010-03-24 10:06:42 +00:00
Kalle Sommer Nielsen
c8b33a6a01 Fix declaring 2010-03-23 13:21:22 +00:00
Andrey Hristov
981ba00606 Fix for complaint from the Zend MM, efree of a NULL pointer. 2010-03-17 18:08:25 +00:00
Andrey Hristov
4941b23bcd Fix a bug that a statement that is reset doesn't clean
the wire properly (as it is done when the statement is closed).
If there is more that one result sets returned from the PS
(like a call to SP that returns at least one RSet next to the
status rset) then the line was blocked. PS Multi-Res is not supported
in any libmysql from a GA-ed MySQL.
2010-03-17 18:00:47 +00:00
Andrey Hristov
3ff193c05e fix valgrind warning introduced with the latest patch. The memory
should be calloc-ed, not malloced, because the code that uses the
stmt storage needs that.
2010-03-17 11:40:37 +00:00
Andrey Hristov
7496cc761e decouple the methods in MYSQLND_STMT from the data,
needed to move to a new structure MYSQLND_STMT. Makes
the code cleaner and less error-prone.
Also fix PDO/MySQL which directly touch mysqlnd internals
instead of using API calls.
2010-03-16 12:36:57 +00:00
Andrey Hristov
ccfd9cd744 allow persistency of PS 2010-03-12 13:03:46 +00:00
Adam Harvey
bdbb2e77ca Fixed bug #51242 (Empty mysql.default_port does not default to 3306 anymore, but 0). 2010-03-09 05:08:31 +00:00
Andrey Hristov
7db6387a7f Fix the text. Correct english and a bit shorter. 2010-02-24 21:16:04 +00:00
Andrey Hristov
f8eb9abf44 add better description to the problem 2010-02-24 18:00:01 +00:00