diff options
Diffstat (limited to 'src/networking.c')
-rw-r--r-- | src/networking.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/networking.c b/src/networking.c index bfaded9b4..2b8588094 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1309,6 +1309,10 @@ int processMultibulkBuffer(client *c) { addReplyError(c,"Protocol error: invalid multibulk length"); setProtocolError("invalid mbulk count",c); return C_ERR; + } else if (ll > 10 && server.requirepass && !c->authenticated) { + addReplyError(c, "Protocol error: unauthenticated multibulk length"); + setProtocolError("unauth mbulk count", c); + return C_ERR; } c->qb_pos = (newline-c->querybuf)+2; @@ -1354,6 +1358,10 @@ int processMultibulkBuffer(client *c) { addReplyError(c,"Protocol error: invalid bulk length"); setProtocolError("invalid bulk length",c); return C_ERR; + } else if (ll > 16384 && server.requirepass && !c->authenticated) { + addReplyError(c, "Protocol error: unauthenticated bulk length"); + setProtocolError("unauth bulk length", c); + return C_ERR; } c->qb_pos = newline-c->querybuf+2; |