summaryrefslogtreecommitdiff
path: root/sql/net_serv.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2010-12-06 10:25:44 +0200
committerMichael Widenius <monty@askmonty.org>2010-12-06 10:25:44 +0200
commitb7b25dc666a8d331d16231f9fb658af8c05ac694 (patch)
tree0c7798c2d187db0da7837a70f306a789afc16521 /sql/net_serv.cc
parentab5e4eefd5d25c6e0755c2460dbb433a7a9e913b (diff)
parentb3c72b9a02e570a4a66ca0a64e94fe1116976c85 (diff)
downloadmariadb-git-b7b25dc666a8d331d16231f9fb658af8c05ac694.tar.gz
Merge with 5.1-release.
- Fixed problem with oqgraph and 'make dist' Note that after this merge we have a problem show in join_outer where we examine too many rows in one specific case (related to BUG#57024). This will be fixed when mwl#128 is merged into 5.3.
Diffstat (limited to 'sql/net_serv.cc')
-rw-r--r--sql/net_serv.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index 7cd2c13ee11..3441d1e120a 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -168,7 +168,17 @@ my_bool net_realloc(NET *net, size_t length)
DBUG_ENTER("net_realloc");
DBUG_PRINT("enter",("length: %lu", (ulong) length));
- if (length >= net->max_packet_size)
+ /*
+ When compression is off, net->where_b is always 0.
+ With compression turned on, net->where_b may indicate
+ that we still have a piece of the previous logical
+ packet in the buffer, unprocessed. Take it into account
+ when checking that max_allowed_packet is not exceeded.
+ This ensures that the client treats max_allowed_packet
+ limit identically, regardless of compression being on
+ or off.
+ */
+ if (length >= (net->max_packet_size + net->where_b))
{
DBUG_PRINT("error", ("Packet too large. Max size: %lu",
net->max_packet_size));