Ulf Wendel
73a32c52d2
Updating test to reflect the latest and more verbose mysqlnd error messages, updating mysqlnd error message as well.
2010-05-31 13:56:42 +00:00
Andrey Hristov
decdfeeeb2
Access memory which was really allocated
2010-05-25 22:34:47 +00:00
Andrey Hristov
faf4659295
Export MYSQLND_PROTOCOL methods
2010-05-14 13:32:27 +00:00
Andrey Hristov
dd85f9c2f2
OOM fixes
2010-05-14 13:04:33 +00:00
Andrey Hristov
d53337bbe7
OOM stability fixes
2010-05-04 14:02:42 +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
8e8348a4b0
Handle OOM when resizing blocks during data fetch
2010-05-03 14:16:04 +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
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
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
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
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
Andrey Hristov
564a1d07f8
allow persistency of PS
2010-03-12 13:03:46 +00:00
Andrey Hristov
0e71a58662
Fix second bug in that code, + instead of += thus not increasing
...
a pointer and mangling data. Again, ext/mysql and ext/mysqli doesn't
have access to this codepath.
2010-02-01 17:12:40 +00:00
Andrey Hristov
228b68bbab
Fix a bug in mysqlnd where a pointer was not incremented
...
and thus wrong data was saved MYSQLND_FIELD::db. However, this
wasn't caught because there is no code in mysql/mysqli/pdo_mysql
which reads that field of the structure. The problem was found
during code review.
2010-02-01 16:12:03 +00:00
Andrey Hristov
7ff1184be2
make mysqlnd's tracing API more reusable
2010-01-13 14:06:02 +00:00
Andrey Hristov
68cd1b8e86
more typedef cosmetics
2010-01-11 20:18:56 +00:00
Andrey Hristov
a449a371a8
cosmetics. typedef-ed types should be in capital case
2010-01-11 20:10:10 +00:00
Andrey Hristov
9939429f4e
remove extern defintion of a variable that is no more
...
used outside of the file where it is declared.
Also really export with PHPAPI the protocol init/deinit functions
2010-01-11 19:13:43 +00:00
Andrey Hristov
a98a67940a
improve the stats subsystem. Reduce the number of macro definitions
...
in half by smartly introducing 2 new macros. Make MYSQLND::stats a pointer
from being aggregated and add triggers.
2010-01-08 17:35:20 +00:00
Andrey Hristov
fcef58951b
add restart_psession and end_psession hooks
2010-01-08 13:47:03 +00:00
Andrey Hristov
81b0630f5a
Change of way the packet objects are created/initialised
...
If the protocol gets changed, ever, we can decide at runtime
easily which protocol to use by instantiating the right protocol
object. But this is restricted to the structure of the packets, not
the flow.
2010-01-07 19:44:59 +00:00
Andrey Hristov
a3e5d1852a
Move this function to MYSQLND_NET as it works on the
...
php stream
2009-12-21 16:52:10 +00:00
Andrey Hristov
3e3d0e0d88
magic numbers to macros
2009-12-21 16:17:31 +00:00
Andrey Hristov
f8dcfbc74f
refactoring : move more network related functions to
...
mysqlnd_net.c . Now communication is split on two levels:
- logical (functions send and receive)
- physical (functions network_read and network_write)
2009-12-17 13:29:46 +00:00
Andrey Hristov
60697e1876
During refactoring of the function mysqlnd_stream_write_w_header() it was
...
found that there is a bug in the way the data is sent, although a very rare
one which will only affect very large queries which have length 16777214. The
communication will hang. A way to test it is to execute the following:
./php -r '$c=mysqli_connect("127.0.0.1","root","root","test");
$q="insert into test.tblob values(\"".str_repeat("a",256*256*256-1-34)."\")";
$c->query($q);'
2009-12-17 12:30:58 +00:00
Andrey Hristov
6adc50b460
Remove unneeded dereferences
2009-12-16 14:05:35 +00:00
Andrey Hristov
9f21c91a08
move MYSQLND_NET code to a separate file.
...
mysqlnd_wireprotocol is about the protocol not the transport
layer
2009-12-16 12:59:38 +00:00
Andrey Hristov
1fc65ed8bb
Move code out of mysqlnd_conn::connect to mysqlnd_net::connect.
...
Thus mysqlnd_conn::connect() does less of what it should not do - think
about the transport level.
2009-12-15 17:33:06 +00:00
Andrey Hristov
e6e40722d9
refactor: move code that belongs to MYSQLND_NET out of MYSQLND
2009-12-15 13:13:51 +00:00
Pierre Joye
1ab58199a9
- fix build, come on, it is not that hard to test before commit, is it?
2009-12-11 16:35:42 +00:00
Andrey Hristov
b1d4cea57e
Make MYSQLND_NET dynamically allocated structure with allocator
...
and deallocator. More member functions will come.
2009-12-11 11:58:57 +00:00
Andrey Hristov
fd44827701
Remove the zval caching from mysqlnd. It was disabled versions ago
...
due to problems on windows, which were not debugged. Better have
code that is disabled not in the core.
2009-12-09 20:21:05 +00:00
Pierre Joye
80e5ef6fa5
- void is NaN, you can't do math ops on void. Declarations go first. Fix TS build
2009-11-30 10:56:01 +00:00
Andrey Hristov
0c6fa49fff
fix debug windows build as well as remove a compilation warning
...
(a header not included)
2009-11-26 11:10:47 +00:00
Andrey Hristov
7674c942c7
Compressed protocol support + extensibility for mysqlnd
2009-11-20 08:12:14 +00:00
Ulf Wendel
355a88f676
Fixing problems when calling connect (again and again) on a valid connection handle. Most of the patch comes from Andrey.
2009-10-15 15:49:40 +00:00
Andrey Hristov
2743c7a6df
Fix ZTS build
2009-09-30 23:34:56 +00:00
Andrey Hristov
4ac04d8936
Afix not included by the fix committed by Ulf.
...
pemalloc and then efree - too bad!
Sorry for committing in two passes, my big tree is already patched
with compressed.
2009-09-17 15:13:36 +00:00