mirror of
git://git.code.sf.net/p/dhcpd-pools/code
synced 2025-12-15 23:36:59 +00:00
getdata: increase max number of shared networks
Anders & Thor Eivind reported dhcpd-pools to mess console and crash at the end of execution. Reason was missing boundary check. The fix this time is more of less just a increase to max numbers. That will work ot some extent. The memory allocations has to be made fully dynamic, but that is a little bit difficult with the way default.h and parse_config are working. Basically problem is globals gone crazy & re-entrant issue with parse function. The true fix to the issue will have to wait for complete redesign of internals of the command. Reported-by: Anders Lstad <ala@nextgentel.com> Reported-by: Thor Eivind Brantzeg <tbr@nextgentel.com> Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
d75927df39
commit
5cbe8d07fb
2 changed files with 11 additions and 4 deletions
|
|
@ -22,10 +22,10 @@
|
|||
static const int MAXLEN = 1024;
|
||||
|
||||
/* Total number of characters in all shared network names */
|
||||
static const int SHARED_NETWORKS_NAMES = 24576;
|
||||
static const int SHARED_NETWORKS_NAMES = 65536;
|
||||
|
||||
/* Maximum number of shared networks */
|
||||
static const int SHARED_NETWORKS = 1024;
|
||||
static const int SHARED_NETWORKS = 8192;
|
||||
|
||||
/* Maximum number of ranges */
|
||||
static const unsigned int RANGES = 65536;
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ char *parse_config(int is_include, char *config_file,
|
|||
num_ranges++;
|
||||
if (RANGES < num_ranges) {
|
||||
errx(EXIT_FAILURE,
|
||||
"parse_config: Range space full! Increase RANGES and recompile.");
|
||||
"parse_config: increase default.h RANGES and recompile.");
|
||||
}
|
||||
newclause = true;
|
||||
break;
|
||||
|
|
@ -427,8 +427,15 @@ char *parse_config(int is_include, char *config_file,
|
|||
* away by reallocationg
|
||||
* more space. */
|
||||
errx(EXIT_FAILURE,
|
||||
"parse_config: End of shared-network space, increase SHARED_NETWORKS_NAMES and recompile");
|
||||
"parse_config: increase default.h SHARED_NETWORKS_NAMES and recompile");
|
||||
}
|
||||
if (SHARED_NETWORKS < num_shared_networks) {
|
||||
/* FIXME: make this go
|
||||
* away by reallocationg
|
||||
* more space. */
|
||||
errx(EXIT_FAILURE,
|
||||
"parse_config: increase default.h SHARED_NETWORKS and recompile");
|
||||
}
|
||||
argument = 0;
|
||||
braces_shared = braces;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue