Fix compiler warning: out of bound access

This commit is contained in:
Yang Tse 2009-05-29 13:19:51 +00:00
parent c9188e2260
commit bef1b140e9
2 changed files with 17 additions and 9 deletions

View File

@ -612,9 +612,14 @@ static void find_country_from_cname(const char *cname, struct in_addr addr)
printf("Name for country-number %d not found.\n", cnumber);
else
{
if (ver_1 && *(unsigned short*)&country->short_name != *(unsigned*)&ccode_A2)
printf("short-name mismatch; %s vs %s\n", country->short_name, ccode_A2);
if (ver_1)
{
if ((country->short_name[0] != ccode_A2[0]) ||
(country->short_name[1] != ccode_A2[1]) ||
(country->short_name[2] != ccode_A2[2]))
printf("short-name mismatch; %s vs %s\n",
country->short_name, ccode_A2);
}
printf("%s (%s), number %d.\n",
country->long_name, country->short_name, cnumber);
}

View File

@ -219,9 +219,10 @@ int main(int argc, char **argv)
if (strcmp(flags[i].name, optarg) == 0)
break;
}
if (i == nflags)
if (i < nflags)
options.flags |= flags[i].value;
else
usage();
options.flags |= flags[i].value;
break;
case 's':
@ -256,9 +257,10 @@ int main(int argc, char **argv)
if (strcasecmp(classes[i].name, optarg) == 0)
break;
}
if (i == nclasses)
if (i < nclasses)
dnsclass = classes[i].value;
else
usage();
dnsclass = classes[i].value;
break;
case 't':
@ -268,9 +270,10 @@ int main(int argc, char **argv)
if (strcasecmp(types[i].name, optarg) == 0)
break;
}
if (i == ntypes)
if (i < ntypes)
type = types[i].value;
else
usage();
type = types[i].value;
break;
case 'T':