unsigned long latitude;
unsigned long longitude;
unsigned long altitude;
+ bool ok;
REQUIRE(type == dns_rdatatype_loc);
if (s1 < 0 || s1 > 59) {
RETTOK(ISC_R_RANGE);
}
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
const char *l;
e++;
if ((tmp = decvalue(*e++)) < 0) {
RETTOK(DNS_R_SYNTAX);
}
+ ok = true;
s1 *= 10;
s1 += tmp;
}
} else {
s1 *= 1000;
}
+ if (!ok) {
+ RETTOK(DNS_R_SYNTAX);
+ }
if (d1 == 90 && s1 != 0) {
RETTOK(ISC_R_RANGE);
}
if (s2 < 0 || s2 > 59) {
RETTOK(ISC_R_RANGE);
}
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
const char *l;
e++;
if ((tmp = decvalue(*e++)) < 0) {
RETTOK(DNS_R_SYNTAX);
}
+ ok = true;
s2 *= 10;
s2 += tmp;
}
} else {
s2 *= 1000;
}
+ if (!ok) {
+ RETTOK(DNS_R_SYNTAX);
+ }
if (d2 == 180 && s2 != 0) {
RETTOK(ISC_R_RANGE);
}
RETTOK(ISC_R_RANGE);
}
cm = 0;
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
e++;
for (i = 0; i < 2; i++) {
if ((tmp = decvalue(*e++)) < 0) {
return (DNS_R_SYNTAX);
}
+ ok = true;
cm *= 10;
if (m < 0) {
cm -= tmp;
if (*e == 'm') {
e++;
}
- if (*e != 0) {
+ if (!ok || *e != 0) {
RETTOK(DNS_R_SYNTAX);
}
if (m == -100000 && cm != 0) {
RETTOK(ISC_R_RANGE);
}
cm = 0;
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
e++;
for (i = 0; i < 2; i++) {
if ((tmp = decvalue(*e++)) < 0) {
RETTOK(DNS_R_SYNTAX);
}
+ ok = true;
cm *= 10;
cm += tmp;
}
if (*e == 'm') {
e++;
}
- if (*e != 0) {
+ if (!ok || *e != 0) {
RETTOK(DNS_R_SYNTAX);
}
/*
RETTOK(ISC_R_RANGE);
}
cm = 0;
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
e++;
for (i = 0; i < 2; i++) {
if ((tmp = decvalue(*e++)) < 0) {
RETTOK(DNS_R_SYNTAX);
}
+ ok = true;
cm *= 10;
cm += tmp;
}
if (*e == 'm') {
e++;
}
- if (*e != 0) {
+ if (!ok || *e != 0) {
RETTOK(DNS_R_SYNTAX);
}
/*
RETTOK(ISC_R_RANGE);
}
cm = 0;
+ ok = e != DNS_AS_STR(token);
if (*e == '.') {
e++;
for (i = 0; i < 2; i++) {
if ((tmp = decvalue(*e++)) < 0) {
RETTOK(DNS_R_SYNTAX);
}
+ ok = true;
cm *= 10;
cm += tmp;
}
if (*e == 'm') {
e++;
}
- if (*e != 0) {
+ if (!ok || *e != 0) {
RETTOK(DNS_R_SYNTAX);
}
/*