X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fgetdata.c;h=2fc1f5f6a4738fda3e158ecbd78058d9eb2ee912;hb=ee35f8bb1f94b177675ab84b963a0fe61cd201eb;hp=ae3bc3862168404f24acf3bfa6225a595b05d50f;hpb=74aef1c34e31699595b4b198bcde5ac1af694260;p=debian%2Fdhcpd-pools.git diff --git a/src/getdata.c b/src/getdata.c index ae3bc38..2fc1f5f 100644 --- a/src/getdata.c +++ b/src/getdata.c @@ -1,5 +1,5 @@ /* -** Copyright (C) 2006- Sami Kerola < > +** Copyright (C) 2006- Sami Kerola ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by @@ -49,7 +49,6 @@ extern char *malloc(); #include #include #include -#include #include "dhcpd-pools.h" #include "defaults.h" @@ -147,9 +146,9 @@ int parse_leases(void) }; } - if ((num_leases > leasesmallocsize) || - (num_touches > touchesmallocsize) || - (num_backups > backupsmallocsize)) { + if ((leasesmallocsize < num_leases) || + (touchesmallocsize < num_touches) || + (backupsmallocsize < num_backups)) { printf("WARNING: running out of memory\n"); printf("\tlease/touch/backup = %lu/%lu/%lu\n", leasesmallocsize, touchesmallocsize, @@ -351,7 +350,7 @@ char *parse_config(int is_include, char *config_file, i++; /* Long word which is almost causing overflow. Not any of words * this program is looking for are this long. */ - if (i > MAXLEN) { + if (MAXLEN < i) { newclause = false; i = 0; continue; @@ -415,7 +414,7 @@ char *parse_config(int is_include, char *config_file, range_p->backups = 0; range_p->shared_net = shared_p; num_ranges++; - if (num_ranges > RANGES) { + if (RANGES < num_ranges) { eprintf ("parse_config: Range space full! Increase RANGES and recompile."); exit(EXIT_FAILURE); @@ -425,19 +424,19 @@ char *parse_config(int is_include, char *config_file, case 3: /* printf ("range 1nd ip: %s\n", word); */ range_p = ranges + num_ranges; - inet_aton(word, &inp); - range_p->first_ip = htonl(inp.s_addr) - 1; - if (range_p->first_ip == UINT_MAX) { + if (!(inet_aton(word, &inp))) { /* word was not ip, try again */ break; } + range_p->first_ip = htonl(inp.s_addr) - 1; argument = 2; break; case 4: /* printf ("include file: %s\n", word); */ argument = 0; next_free_shared_name = - parse_config(false, word, current_shared_name, + parse_config(false, word, + current_shared_name, next_free_shared_name, shared_p); newclause = true;