Matt Stancliff c138631cd1 Fix maxclients error handling
Everywhere in the Redis code base, maxclients is treated
as an int with (int)maxclients or `maxclients = atoi(source)`,
so let's make maxclients an int.

This fixes a bug where someone could specify a negative maxclients
on startup and it would work (as well as set maxclients very high)
because:

    unsigned int maxclients;
    char *update = "-300";
    maxclients = atoi(update);
    if (maxclients < 1) goto fail;

But, (maxclients < 1) can only catch the case when maxclients
is exactly 0.  maxclients happily sets itself to -300, which isn't
-300, but rather 4294966996, which isn't < 1, so... everything
"worked."

maxclients config parsing checks for the case of < 1, but maxclients
CONFIG SET parsing was checking for case of < 0 (allowing
maxclients to be set to 0).  CONFIG SET parsing is now updated to
match config parsing of < 1.

It's tempting to add a MINIMUM_CLIENTS define, but... I didn't.

These changes were inspired by antirez#356, but this doesn't
fix that issue.
2014-03-24 10:17:33 -04:00
..
2012-04-13 17:52:33 -07:00
2013-01-19 10:59:44 +01:00
2013-01-19 10:59:44 +01:00
2014-03-20 16:20:37 +01:00
2014-03-24 10:17:33 -04:00
2013-01-19 10:59:44 +01:00
2014-03-20 16:20:37 +01:00
2013-05-14 11:23:16 +02:00
2013-01-19 10:59:44 +01:00
2014-02-28 16:00:00 +01:00
2013-12-13 13:10:05 +01:00
2014-03-20 16:20:37 +01:00
2013-01-19 10:59:44 +01:00
2014-03-24 12:00:20 +01:00
2014-03-24 10:17:33 -04:00
2013-01-19 10:59:44 +01:00
2014-01-22 09:54:55 +01:00
2013-07-16 15:43:36 +02:00
2013-08-12 11:38:21 +02:00
2013-01-19 10:59:44 +01:00
2013-07-24 18:59:54 +02:00
2013-07-02 12:08:07 +02:00
2011-07-06 15:22:00 +02:00
2013-05-27 11:44:04 +02:00
2013-09-03 15:15:51 +02:00