Merge branch '2499-a-loc-record-with-a-invalid-direction-field-triggers-an-insist' into 'main'

Resolve "A LOC record with a invalid direction field triggers an INSIST"

Closes #2499

See merge request isc-projects/bind9!4704
This commit is contained in:
Mark Andrews
2021-02-18 22:37:41 +00:00
4 changed files with 8 additions and 1 deletions

View File

@@ -1,3 +1,6 @@
5586. [bug] An invalid direction field in a LOC record resulted in
an INSIST failure. [GL #2499]
5585. [func] Implementations of memory contexts and memory pools were
refactored to reduce lock contention for shared memory
contexts by replacing mutexes with atomic operations.

View File

@@ -48,3 +48,6 @@ Bug Fixes
of sending a proper response back. Rollback setting the IP_DONTFRAG on the
UDP sockets that we enabled during the DNS Flag Day 2020 to fix this issue.
[GL #2487]
- An invalid direction field (not one of 'N'/'S' or 'E'/'W') in a LOC record
triggered an INSIST failure. [GL #2499]

View File

@@ -242,7 +242,7 @@ loc_getcoordinate(isc_lex_t *lexer, unsigned long *dp, unsigned long *mp,
* Direction.
*/
RETERR(get_direction(lexer, &token, directions, &direction));
if (direction == -1) {
if (direction == 0) {
RETERR(DNS_R_SYNTAX);
}
done:

View File

@@ -2017,6 +2017,7 @@ loc(void **state) {
TEXT_INVALID("90 0 1 S 180 W 0"),
TEXT_INVALID("90 S 180 1 W 0"),
TEXT_INVALID("90 S 180 0 1 W 0"),
TEXT_INVALID("0 0 0.000 E 0 0 0.000 E -0.95m 1m 10000m 10m"),
TEXT_VALID("0 0 0.000 N 0 0 0.000 E -0.95m 1m 10000m 10m"),
TEXT_VALID("0 0 0.000 N 0 0 0.000 E -0.05m 1m 10000m 10m"),
TEXT_VALID("0 0 0.000 N 0 0 0.000 E -100000.00m 1m 10000m 10m"),